สารบัญ:

เครื่องให้อาหารสัตว์เลี้ยงอัจฉริยะ: 9 ขั้นตอน
เครื่องให้อาหารสัตว์เลี้ยงอัจฉริยะ: 9 ขั้นตอน

วีดีโอ: เครื่องให้อาหารสัตว์เลี้ยงอัจฉริยะ: 9 ขั้นตอน

วีดีโอ: เครื่องให้อาหารสัตว์เลี้ยงอัจฉริยะ: 9 ขั้นตอน
วีดีโอ: [รีวิว] การใช้งานเครื่องให้อาหารสัตว์ AUTOBOT Pet Food Feeder มีกล้องในตัว 2024, พฤศจิกายน
Anonim
Image
Image
เครื่องให้อาหารสัตว์เลี้ยงอัจฉริยะ
เครื่องให้อาหารสัตว์เลี้ยงอัจฉริยะ

คุณมีสัตว์เลี้ยงหรือไม่?

  • ไม่: รับหนึ่ง! (และกลับมาที่คำแนะนำนี้)
  • ใช่: ทำได้ดีมาก!

คงจะดีไม่น้อยถ้าคุณสามารถให้อาหารและให้น้ำแก่คนที่คุณรักโดยไม่ยกเลิกแผนเพื่อกลับบ้านตรงเวลา เราว่าไม่ต้องกังวลอีกต่อไป

ในโครงการนี้ เราได้จัดทำเครื่องจ่ายอาหารและน้ำจากระยะไกล (ผ่านเว็บ)

คุณสามารถดูข้อมูลและควบคุมเครื่องจ่ายผ่านแดชบอร์ดออนไลน์ได้:

  • ดูระดับอาหารและน้ำในถัง
  • ดูระดับอาหารและน้ำในชาม
  • สัตว์กินหรือดื่มในเวลานี้หรือไม่?
  • กำหนดเวลาให้อาหาร (อุปกรณ์จะไม่จ่ายอาหารหากมีอาหารเพียงพอในชาม)
  • จ่ายน้ำอัตโนมัติเมื่อชามหมด
  • จ่ายอาหาร/น้ำด้วยการกดปุ่ม
  • รับการแจ้งเตือนแบบพุชไปยังโทรศัพท์ของคุณ (โดยแอพ 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: ประดิษฐ์

หัตถกรรม
หัตถกรรม
หัตถกรรม
หัตถกรรม
หัตถกรรม
หัตถกรรม

ตู้กดน้ำ

  1. กาวเซอร์โวที่ด้านบนของส่วนล่างของเครื่องจ่าย (ดังแสดงในภาพ)
  2. เจาะรูเล็กๆ ที่ลูกบิดของตู้กดน้ำ
  3. ต่อหัวเซอร์โวเข้ากับปุ่มด้วยลวด (ตรวจสอบให้แน่ใจว่าหัวเซอร์โวอยู่ที่ตำแหน่ง 0 และตรวจสอบให้แน่ใจว่าลวดแน่น)
  4. กาวเซ็นเซอร์อัลตราโซนิกหนึ่งตัวที่ด้านในของถังใกล้ด้านบน (เซ็นเซอร์คว่ำหน้าลง)
  5. กาวเซ็นเซอร์อัลตราโซนิกหนึ่งตัวด้านล่างลูกบิดน้ำไปทางด้านนอก (ตรวจสอบให้แน่ใจว่าสูงพอที่ชามน้ำจะไม่ส่งผลต่อการอ่าน)

เครื่องจ่ายอาหาร

  1. ขันสกรูเซอร์โวเข้ากับที่ยึด (ส่วนที่พิมพ์ 3 มิติ)
  2. กาวกรวย (ส่วนที่พิมพ์ 3 มิติ) เข้ากับที่ยึดถัง (ส่วนที่พิมพ์ 3 มิติ)
  3. เชื่อมต่อที่ยึดถังกับขาตั้งของเครื่องจ่าย (ส่วนที่พิมพ์ 3 มิติ) แล้ววางถังให้เข้าที่
  4. ใส่ส่วนที่หมุนได้ (พิมพ์ 3 มิติ) เข้าที่และผ่านส่วนยางหมุนของเครื่องจ่าย
  5. ขันสกรูส่วนที่ยึดเซอร์โวเข้ากับขาตั้งของเครื่องจ่าย
  6. กาวเซ็นเซอร์อัลตราโซนิกหนึ่งตัวที่ด้านในของฝาถัง (เซ็นเซอร์คว่ำหน้าลง)
  7. กาวเซ็นเซอร์อัลตราโซนิกหนึ่งตัวที่ด้านข้างของที่วางถังโดยหันไปทางสถานที่ที่สัตว์เลี้ยงของคุณจะกิน

โหลดเซลล์

กาวโหลดเซลล์แต่ละอันเข้ากับฐานและเพลตที่พิมพ์ 3 มิติ (ลูกศรของโหลดเซลล์คว่ำลง)

ขั้นตอนที่ 5: ยุง

ยุง
ยุง

เปิด Mosquitto (ผู้ใช้ windows: ไปที่โฟลเดอร์ Mosquitto เปิด cmd แล้วป้อน: "mosquitto -v")

* หากต้องการรับที่อยู่ IP ภายในของคอมพิวเตอร์ ให้เรียกใช้ cmd แล้วป้อน "ipconfig"

ขั้นตอนที่ 6: Arduino IDE

Arduino IDE
Arduino IDE
Arduino IDE
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

โหนด-RED
โหนด-RED
โหนด-RED
โหนด-RED
โหนด-RED
โหนด-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: สรุป

สรุป
สรุป

เราหวังว่าบทช่วยสอนนี้จะให้ข้อมูลและง่ายต่อการอ่าน ทำความเข้าใจ และนำไปใช้

อย่าลังเลที่จะถามอะไรเรา

แนะนำ: