ชื่อโปรเจกต์: เครื่องให้อาหารสัตว์เลี้ยงสร้างง่าย
นิวแมติกส์เชิงเวลา: เครื่องให้อาหารสัตว์เลี้ยงอัตโนมัติ
"เครื่องให้อาหารสัตว์เลี้ยงสร้างง่าย" นี้แปลงตรรกะ Arduino เชิงทฤษฎีให้เป็นเครื่องจักรทางกายภาพที่สามารถหล่อเลี้ยงสิ่งมีชีวิตได้โดยตรง! โปรเจกต์การจัดการฮาร์ดแวร์พื้นฐานนี้เชื่อมโยง UNIX timestamp เชิงเวลาที่แม่นยำเข้ากับอาร์เรย์การเคลื่อนที่เชิงพื้นที่ทางกายภาพโดยตรง มันบังคับให้ C++ state-machine ที่แข็งแกร่งประเมินว่าเมื่อใดที่ชั่วโมงที่กำหนดจะทำงานอย่างแม่นยำ โดยจะขับเคลื่อน Servo Motor ที่ทนทานให้เปิดช่องทางกลไกอย่างรุนแรง เพื่อเทอาหารเป็นเวลา 60 วินาทีลงสู่สภาพแวดล้อมภายในบ้าน

DS3231 เมทริกซ์แจ้งเตือนที่แม่นยำ
คุณไม่สามารถใช้ delay(86400000) (24 ชั่วโมง) ได้ หากไฟกระพริบเพียง 1 วินาที Arduino จะรีบูต ตัวจับเวลาจะรีเซ็ตเป็นศูนย์ทั้งหมด และแมวอาจอดอาหารตายได้จริง
- รากฐานที่สำคัญอย่างยิ่งคือ DS3231 Real Time Clock Engine ที่ใช้ I2C (
A4 / A5) - RTC จะรักษาเวลาได้อย่างแม่นยำโดยใช้แบตเตอรี่ CR2032 ในตัว แม้ว่า Uno จะสูญเสียไฟ 5V USB ไปก็ตาม
- ลูปประเมินสถานะ:
DateTime now = rtc.now(); // สอบถามชิปฮาร์ดแวร์จริงขนาดใหญ่ตลอดเวลา!
// ถึงเวลา 8:00 AM เป๊ะหรือไม่? และรอบการทำงานยังไม่เคยทำงานในวันนี้ใช่ไหม?
if (now.hour() == 8 && now.minute() == 0 && now.second() == 0 && !fedToday) {
executeFoodDrop(); // หมุนช่อง Servo อย่างรุนแรง!
fedToday = true; // ล็อกระบบเพื่อไม่ให้ให้อาหารอย่างต่อเนื่อง!
}
// รีเซ็ตตัวแปรล็อกตรงเที่ยงคืนเพื่อเตรียมพร้อมสำหรับวันพรุ่งนี้!
if (now.hour() == 0 && now.minute() == 0 && now.second() == 0) {
fedToday = false;
}
การสร้างการกวาดจ่ายอาหารที่ซับซ้อน (SG90)
หาก Servo หมุนไปที่ 90 Degrees และค้างไว้ อาหารแมวแห้งจะติดอยู่ในท่อ PVC เหมือนก้อนหิน
- ฟังก์ชันตรรกะ
executeFoodDrop()จะต้องทำการกวาดอย่างรุนแรงเพื่อขจัดสิ่งอุดตัน! - Uno ใช้ลูป
forเพื่อเคลื่อนที่จาก0ไป180และย้อนกลับสิบครั้งอย่างรุนแรง! for (pos = 0; pos <= 180; pos += 5) { foodServo.write(pos); delay(15); }การสั่นสะเทือนทางกลไกที่ต่อเนื่องและรุนแรงนี้จะทำลายโครงสร้างอาหารเม็ด ทำให้ปริมาณทางกายภาพที่สม่ำเสมอถูกบังคับลงในชามอย่างแม่นยำ จนกระทั่ง Uno บังคับให้ช่องเปิดปิดลงอย่างสมบูรณ์ที่pos = 0
กลไกฮาร์ดแวร์ของเครื่องให้อาหาร
- Arduino Uno/Nano (ความเร็วในการประมวลผลมาตรฐานเพียงพออย่างสมบูรณ์)
- DS3231 I2C RTC Module (ไม่สามารถสร้างได้หากไม่มีโมดูลเฉพาะที่มีแบตเตอรี่สำรองนี้; ตัวจับเวลาซอฟต์แวร์ไม่น่าเชื่อถือโดยทั่วไป)
- SG90 หรือ MG996R Servo Motor ที่ทนทาน (SG90 สามารถหมุนแผ่นพลาสติกขนาดเล็กได้ แต่ MG996R Metal Gear servo สามารถหมุนชุดประกอบท่อ PVC ทั้งหมดที่บรรจุอาหารแห้งหนัก 5 ปอนด์ได้โดยไม่ละลาย!)
- โครงสร้างจากกระดาษแข็งหรือ PVC (มักจะรวมเข้ากับกรวยขวดน้ำหรือข้อต่อสามทาง PVC ขนาด 3 นิ้ว!)