สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: มันทำงานอย่างไร
- ขั้นตอนที่ 2: ซอฟต์แวร์
- ขั้นตอนที่ 3: เค้าโครงวงจร
- ขั้นตอนที่ 4: ประดิษฐ์
- ขั้นตอนที่ 5: ยุง
- ขั้นตอนที่ 6: Arduino IDE
- ขั้นตอนที่ 7: Ngrok
- ขั้นตอนที่ 8: Node-RED
- ขั้นตอนที่ 9: สรุป
วีดีโอ: เครื่องให้อาหารสัตว์เลี้ยงอัจฉริยะ: 9 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
คุณมีสัตว์เลี้ยงหรือไม่?
- ไม่: รับหนึ่ง! (และกลับมาที่คำแนะนำนี้)
- ใช่: ทำได้ดีมาก!
คงจะดีไม่น้อยถ้าคุณสามารถให้อาหารและให้น้ำแก่คนที่คุณรักโดยไม่ยกเลิกแผนเพื่อกลับบ้านตรงเวลา เราว่าไม่ต้องกังวลอีกต่อไป
ในโครงการนี้ เราได้จัดทำเครื่องจ่ายอาหารและน้ำจากระยะไกล (ผ่านเว็บ)
คุณสามารถดูข้อมูลและควบคุมเครื่องจ่ายผ่านแดชบอร์ดออนไลน์ได้:
- ดูระดับอาหารและน้ำในถัง
- ดูระดับอาหารและน้ำในชาม
- สัตว์กินหรือดื่มในเวลานี้หรือไม่?
- กำหนดเวลาให้อาหาร (อุปกรณ์จะไม่จ่ายอาหารหากมีอาหารเพียงพอในชาม)
- จ่ายน้ำอัตโนมัติเมื่อชามหมด
- จ่ายอาหาร/น้ำด้วยการกดปุ่ม
- รับการแจ้งเตือนแบบพุชไปยังโทรศัพท์ของคุณ (โดยแอพ Telegram)
พวกเราคือใคร?
สร้างโดย Tom Kaufman และ Katya Fichman นักศึกษาสาขาวิทยาการคอมพิวเตอร์ที่ IDC Herzliya
โครงการนี้จัดทำขึ้นสำหรับหลักสูตร IOT
เสบียง
อิเล็กทรอนิกส์
- 2 X ESP8266 (Wemos d1 มินิ)
- สายจัมเปอร์.
- 2 X เขียงหั่นขนม
- 4 X เซ็นเซอร์อัลตราโซนิก
- 2 X โหลดเซลล์
- 2 X เครื่องขยายเสียงโหลดเซลล์ (HX711)
- เซอร์โว (180 องศา)
- เซอร์โว (หมุนต่อเนื่อง)
- แหล่งจ่ายไฟ 2 X 6V
อะไหล่
- เครื่องจ่ายคอร์นเฟลก (ลิงค์ Amazon)
- กรวยจ่ายอาหารแบบพิมพ์ 3 มิติ (https://www.thingiverse.com/thing:3998805)
- สิ่งที่แนบมากับเซอร์โวของเครื่องจ่ายอาหารแบบพิมพ์ 3 มิติ (https://www.thingiverse.com/thing:3269637)
- ขาตั้งเครื่องจ่ายอาหารแบบพิมพ์ 3 มิติ (ออกแบบมาสำหรับโครงการนี้:
- ฐานโหลดเซลล์และแท่นพิมพ์แบบ 3 มิติ (ออกแบบมาสำหรับโครงการนี้:
- ตู้กดน้ำ (อเมซอนเชื่อมโยงกับสิ่งที่คล้ายกัน)
- ลวด (เพื่อเชื่อมต่อลูกบิดของตู้น้ำกับเซอร์โว)
- ขาตั้งเซ็นเซอร์อัลตราโซนิก 3 X
ขั้นตอนที่ 1: มันทำงานอย่างไร
บอร์ด ESP8266 ส่งการอ่านของเซ็นเซอร์ไปยัง Node-RED ผ่าน Mosquitto (โบรกเกอร์ MQTT)
Node-RED ประมวลผลข้อมูล ดำเนินการตามนั้น (ส่งคำสั่งจ่ายไปยังบอร์ด ESP8266 ผ่าน Mosquitto) และแสดงข้อมูลบนแดชบอร์ด
การคำนวณทั้งหมดดำเนินการใน Node-RED ดังนั้นจึงง่ายต่อการทำซ้ำโครงการนี้และเปลี่ยนการประมวลผลข้อมูลตามการตั้งค่าและความชอบของคุณโดยไม่ทำให้มือของคุณสกปรกด้วยการเข้ารหัส
ขั้นตอนที่ 2: ซอฟต์แวร์
Arduino IDE
ดาวน์โหลดและติดตั้ง (ลิงค์:
ยุง
ดาวน์โหลดและติดตั้ง (ลิงค์:
Node.js
ดาวน์โหลดและติดตั้ง (ลิงค์:
โหนด-RED
ทำตามคำแนะนำ:
งรก
ดาวน์โหลด:
โทรเลข
ติดตั้งแอพบนสมาร์ทโฟนของคุณ
ขั้นตอนที่ 3: เค้าโครงวงจร
* อุปกรณ์ทั้งสองมีวงจรเหมือนกัน
ตู้กดน้ำ
-
เซ็นเซอร์อัลตราโซนิก (สำหรับถังเก็บน้ำ)
- GND - G
- VCC - 5V
- เสียงสะท้อน - D5
- ทริกเกอร์ - D0
-
เซ็นเซอร์อัลตราโซนิก (สำหรับระยะห่างของสัตว์เลี้ยงจากชาม)
- GND - G
- VCC - 5V
- เสียงสะท้อน - D6
- ทริกเกอร์ - D7
-
โหลดเซลล์
- สีเขียว - A+ (HX711)
- สีขาว - เอ- (HX711)
- สีดำ - E- (HX711)
- สีแดง - E+ (HX711)
-
HX711 (เครื่องขยายเสียงโหลดเซลล์)
- GND - G
- VCC - 5V
- DT - D4
- SCK - D3
-
เซอร์โว (180°)
- GND - G
- VCC - 5V
เครื่องจ่ายอาหาร
-
เซ็นเซอร์อัลตราโซนิก (สำหรับถังอาหาร)
- GND - G
- VCC - 5V
- เสียงสะท้อน - D5
- ทริกเกอร์ - D0
-
เซ็นเซอร์อัลตราโซนิก (สำหรับระยะห่างของสัตว์เลี้ยงจากชาม)
- GND - G
- VCC - 5V
- เสียงสะท้อน - D6
- ทริกเกอร์ - D7
-
โหลดเซลล์
- สีเขียว - A+ (HX711)
- สีขาว - A- (HX711)
- สีดำ - E- (HX711)
- สีแดง - E+ (HX711)
-
HX711 (เครื่องขยายเสียงโหลดเซลล์)
- GND - G
- VCC - 5V
- DT - D4
- SCK - D3
-
เซอร์โว (หมุนต่อเนื่อง)
- GND - G
- VCC - 5V
- ควบคุม - D8
ขั้นตอนที่ 4: ประดิษฐ์
ตู้กดน้ำ
- กาวเซอร์โวที่ด้านบนของส่วนล่างของเครื่องจ่าย (ดังแสดงในภาพ)
- เจาะรูเล็กๆ ที่ลูกบิดของตู้กดน้ำ
- ต่อหัวเซอร์โวเข้ากับปุ่มด้วยลวด (ตรวจสอบให้แน่ใจว่าหัวเซอร์โวอยู่ที่ตำแหน่ง 0 และตรวจสอบให้แน่ใจว่าลวดแน่น)
- กาวเซ็นเซอร์อัลตราโซนิกหนึ่งตัวที่ด้านในของถังใกล้ด้านบน (เซ็นเซอร์คว่ำหน้าลง)
- กาวเซ็นเซอร์อัลตราโซนิกหนึ่งตัวด้านล่างลูกบิดน้ำไปทางด้านนอก (ตรวจสอบให้แน่ใจว่าสูงพอที่ชามน้ำจะไม่ส่งผลต่อการอ่าน)
เครื่องจ่ายอาหาร
- ขันสกรูเซอร์โวเข้ากับที่ยึด (ส่วนที่พิมพ์ 3 มิติ)
- กาวกรวย (ส่วนที่พิมพ์ 3 มิติ) เข้ากับที่ยึดถัง (ส่วนที่พิมพ์ 3 มิติ)
- เชื่อมต่อที่ยึดถังกับขาตั้งของเครื่องจ่าย (ส่วนที่พิมพ์ 3 มิติ) แล้ววางถังให้เข้าที่
- ใส่ส่วนที่หมุนได้ (พิมพ์ 3 มิติ) เข้าที่และผ่านส่วนยางหมุนของเครื่องจ่าย
- ขันสกรูส่วนที่ยึดเซอร์โวเข้ากับขาตั้งของเครื่องจ่าย
- กาวเซ็นเซอร์อัลตราโซนิกหนึ่งตัวที่ด้านในของฝาถัง (เซ็นเซอร์คว่ำหน้าลง)
- กาวเซ็นเซอร์อัลตราโซนิกหนึ่งตัวที่ด้านข้างของที่วางถังโดยหันไปทางสถานที่ที่สัตว์เลี้ยงของคุณจะกิน
โหลดเซลล์
กาวโหลดเซลล์แต่ละอันเข้ากับฐานและเพลตที่พิมพ์ 3 มิติ (ลูกศรของโหลดเซลล์คว่ำลง)
ขั้นตอนที่ 5: ยุง
เปิด Mosquitto (ผู้ใช้ windows: ไปที่โฟลเดอร์ Mosquitto เปิด cmd แล้วป้อน: "mosquitto -v")
* หากต้องการรับที่อยู่ IP ภายในของคอมพิวเตอร์ ให้เรียกใช้ cmd แล้วป้อน "ipconfig"
ขั้นตอนที่ 6: Arduino IDE
เปิด Arduino IDE และทำตามส่วน "ติดตั้งโปรแกรมเสริม ESP8266 ใน Arduino IDE" ของคู่มือนี้:
ไปที่ Tools->Board และเลือก "LOLIN(WEMOS) D1 R2 & mini"
ไปที่ Sketch->Include Library->Add. ZIP Library… และเพิ่ม 3 ไลบรารี่ในไฟล์ "Libraries.rar"
เปิดภาพร่าง "HX711Calibration" อัปโหลดไปยัง ESP8266 ทั้งสอง เรียกใช้และปฏิบัติตามคำแนะนำ (ในตอนต้นของโค้ดและในมอนิเตอร์แบบอนุกรม) เพื่อปรับเทียบโหลดเซลล์ (ตรวจสอบให้แน่ใจว่าได้ตั้งค่าอัตรารับส่งข้อมูลของจอภาพอนุกรมเป็น 115200บอด).
* เขียนปัจจัยการสอบเทียบและค่าชดเชยศูนย์ (สำหรับใช้ในภายหลัง)
เปิด "FoodDispenser" และ "WaterDispenser" ร่างภาพผ่าน IDE และเปลี่ยนตัวแปรต่อไปนี้ด้วยการตั้งค่าของคุณ (ในไฟล์ "Settings.h"):
- WIFI_SSID
- WIFI_PASSWORD
- MQTT_SERVER
- LOAD_CELL_CALIBRATION_FACTOR
- LOAD_CELL_ZERO_OFFSET
* ใน MQTT_SERVER ให้ป้อนที่อยู่ IP ภายในจากขั้นตอน "ยุง"
อัปโหลดภาพร่างไปยัง ESP8266 สองตัวของคุณ (หนึ่งรหัสต่อแต่ละบอร์ด)
* ขอให้สังเกตว่าเราใช้ไลบรารี "AsyncMqttClient" และไม่ใช่ไลบรารี "pubsubclient" ทั่วไปเนื่องจาก esp8266 ขัดข้องเมื่อรวมกับไลบรารี "HX711"
* หากคุณเลือกเปลี่ยนแปลงโค้ด โปรดอย่าใช้ฟังก์ชัน "delay" และ "yield" ภายในฟังก์ชันเรียกกลับ เพราะจะทำให้เกิดปัญหาได้
ขั้นตอนที่ 7: Ngrok
แตกไฟล์ที่ดาวน์โหลดมา (จากลิงค์ในขั้นตอน "ซอฟต์แวร์")
เปิด "ngrok.exe" และเรียกใช้คำสั่ง "ngrok http 1880"
* คุณสามารถเลือกภูมิภาคที่ใกล้เคียงที่สุดกับคุณ (au, eu, ap, us, jp, in, sa) ค่าเริ่มต้นคือเรา
ตัวอย่างเช่น การรันคำสั่ง: "ngrok http --region=eu 1880" (ตั้งค่าภูมิภาคเป็นยุโรป)
ตอนนี้ คุณจะเห็นที่อยู่เว็บของคุณสำหรับการใช้งานภายนอก (เราจะเรียกที่อยู่นี้เป็น YOUR_NGROK_ADDRESS)
ขั้นตอนที่ 8: Node-RED
เปิด Node-RED (ผู้ใช้ windows: เปิด cmd แล้วป้อน "node-red") แล้วไปที่ https://localhost:1880 (หากไม่ได้ผล ให้ค้นหาที่อยู่ในหน้าต่าง cmd ที่เขียนว่า "Server now" วิ่งที่")
เปิดเมนู (ที่มุมบนขวา) แล้วกด "จัดการจานสี"
ไปที่แท็บ "ติดตั้ง" ค้นหาและติดตั้งโมดูลเหล่านี้:
- โหนด-red-contrib-persist
- node-red-contrib-cron-plus
- node-red-contrib-ui-led
- โหนด-สีแดง-แดชบอร์ด
- node-red-contrib-โทรเลขให้ใคร
ไปที่เมนู -> นำเข้าและอัปโหลดไฟล์โฟลว์ (แตกไฟล์ RAR ที่แนบมาและอัปโหลดไฟล์ json)
ดูภาพที่แนบมาสำหรับคำอธิบายเกี่ยวกับการไหล
คุณจะต้องแก้ไขโหนดเหล่านี้ด้วยการตั้งค่าของคุณ:
- อัปเดตโปรไฟล์ของโหนด "ผู้ส่งโทรเลข" ด้วยชื่อผู้ใช้และโทเค็นของบอท (ใช้คำแนะนำนี้:
- ที่ด้านล่างของโฟลว์ให้เปลี่ยนเพย์โหลดของโหนด "Ngrok Address" และ "Telegram Chat Id" (รับ ID แชทของคุณโดยใช้คู่มือ Telegram ในลิงก์ด้านบน)
-
ที่ด้านล่างของโฟลว์จะมีโหนดการตั้งค่า - แก้ไขตามความต้องการของคุณ:
- เปิดใช้งานสัตว์เลี้ยงกำลังกิน/ดื่มการแจ้งเตือน
- กำหนดระยะห่างสำหรับการเปิดใช้งานการเตือนการกิน/ดื่ม
- กำหนดการประมวลผลข้อมูลโบลิ่งและแทงค์
- แก้ไขครั้งการจ่ายยา (ระยะเวลาการจ่ายยาเกิดขึ้น - โหมดอัตโนมัติและการกดปุ่ม)
- กำหนดเปอร์เซ็นต์เกณฑ์การล้นชามอาหาร (ยกเลิกการจ่ายอาหารอัตโนมัติหากมีอาหารเพียงพอในชาม)
ปรับใช้โฟลว์ (ที่ด้านบนขวา)
* เฉพาะในการปรับใช้ครั้งแรก คุณจะเห็นคำเตือนในหน้าต่างแก้ไขข้อบกพร่องเกี่ยวกับไฟล์ 'persistance.json' ที่หายไป ไม่ต้องกังวล เพราะในขณะนี้คุณจะตั้งเวลาให้อาหารหรือเปลี่ยนสวิตช์น้ำอัตโนมัติ มันจะเริ่มต้นไฟล์นี้และคุณจะไม่ได้รับคำเตือนนี้อีกต่อไป
คุณสามารถดูแดชบอร์ดของคุณได้ที่ https://NODE-RED_PC'S_INTERNAL_IP_ADDRESS:1880/ui (หากคุณเชื่อมต่อกับ LAN เดียวกันกับเซิร์ฟเวอร์) หรือ YOUR_NGROK_ADDRESS/ui (จากทุกที่)
ขั้นตอนที่ 9: สรุป
เราหวังว่าบทช่วยสอนนี้จะให้ข้อมูลและง่ายต่อการอ่าน ทำความเข้าใจ และนำไปใช้
อย่าลังเลที่จะถามอะไรเรา
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
เครื่องให้อาหารสัตว์เลี้ยงอัจฉริยะ: 11 ขั้นตอน
Smart Pet Feeder: ฉันเป็นนักเรียนที่ Howest Kortrijk Academy ในเบลเยียม ฉันทำเครื่องให้อาหารโดยเฉพาะสำหรับแมวและสุนัข ฉันทำโครงการนี้สำหรับสุนัขของฉัน หลายครั้งฉันไม่ได้อยู่บ้านเพื่อเลี้ยงสุนัขของฉันในตอนเย็น เพราะการที่สุนัขของฉันต้องรอเพื่อรับอาหารของมัน กับเ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)