ระบบเปิดปิดประตูเล้าไก่อัตโนมัติ
บทนำ
เพื่อปกป้องไก่ใหม่ของเราจากสัตว์นักล่าต่างๆ จึงจำเป็นต้องมีประตูอัตโนมัติ เราได้สำรวจโซลูชันที่มีอยู่ในตลาดแล้ว แต่ไม่มีโซลูชันใดตรงตามความต้องการของเรา:
- การเฝ้าระวังและควบคุมจากระยะไกลโดยใช้ app
- ความเป็นไปได้ในการเพิ่ม sensors และ actors เพิ่มเติมเพื่อวัด temperature หรือแจ้งเตือนด้วย buzzer
- ราคาไม่แพงเกินไป
มันคงจะสนุกกว่ามากที่จะสร้างมันด้วยตัวเอง นี่จึงเป็นจุดเริ่มต้นของโปรเจกต์ microcontroller ชิ้นแรกของผม
แนวคิด
แผ่น aluminium เรียบๆ พร้อมรางนำทางจะทำหน้าที่เป็นประตู มันถูกยึดเข้ากับ DC motor โดยใช้ nylon wire ตัว DC motor มี gearbox ซึ่งทำให้เกิดความเร็ว 200 rpm ที่ 12V DC มอเตอร์ที่ใช้มี hall sensor encoder ในตัว เพื่อให้ประตูอยู่ในตำแหน่ง "ขึ้น" ไม่จำเป็นต้องให้มอเตอร์ทำงาน ดังนั้น การใช้พลังงานจึงต่ำมาก

module ควบคุมที่ผมใช้คือ Arduino MKR1000 มันมี WiFi ในตัวและ I/O จำนวนมาก ผมได้ติดตั้ง WiFi Access Point ไว้ในโรงเก็บของในสวน ดังนั้นการรับสัญญาณ WiFi จึงสมบูรณ์แบบภายในเล้าไก่ของผม
หลังจาก booting หรือ restarting Arduino ขั้นตอนแรกคือการ "calibrate" ค่า encoder สำหรับตำแหน่งขึ้นและลงของประตู app จะขอให้สั่ง Up หรือยืนยันว่าประตูอยู่ในตำแหน่ง Up แล้ว เมื่อเสร็จสิ้น ค่า encoder จะถูกตั้งเป็นศูนย์
สำหรับขั้นตอนต่อไป app จะขอให้สั่ง Close และยืนยันการ Close ค่า encoder ณ เวลานั้นจะถูกเก็บไว้ใน variable จากนี้ไป เราสามารถควบคุมประตูให้อยู่ระหว่างค่า encoder เป็นศูนย์และค่า encoder เมื่อปิดประตู
ในการควบคุมประตูโดยอัตโนมัติ ผมใช้ photoresistor ราคาถูก ค่า Threshold สำหรับ daylight และ sunset ถูกตั้งค่าไว้ล่วงหน้าภายใน Blynk dashboard เช่นเดียวกับ operating mode: manual หรือ automatic
DHT22 temperature & humidity sensor ใช้สำหรับ monitor ค่าทั้งสองเท่านั้น


ปัญหา
1. โซลูชันนี้ทำงานได้ไม่น่าเชื่อถือมากนัก หลังจากผ่านไปสองสามวัน การเคลื่อนที่ของประตูหรือการอ่านค่า sensor ก็หยุดทำงาน การค้นหาข้อมูลบน internet แสดงให้เห็นว่ามีผู้คนจำนวนมากประสบปัญหาเดียวกันกับ MKR1000 ร่วมกับ web service - ต้องวิเคราะห์ดูว่าจะสามารถแก้ไขปัญหานี้ได้หรือไม่
*UPDATE V1*
code ใหม่มีการตรวจสอบความถูกต้องของการเชื่อมต่อกับ Blynk เฉพาะเมื่อการเชื่อมต่อพร้อมใช้งานเท่านั้น blynk.run จึงจะถูก execute หากการเชื่อมต่อล่ม ระบบจะพยายาม reconnect ก่อน
การแลกเปลี่ยนข้อมูลกับ Blynk ได้ถูกลดระยะเวลาลงเหลือ 1 นาทีสำหรับค่าที่มีการเปลี่ยนแปลงช้า เช่น Temperature, lux, humidity เป็นต้น encoder (ซึ่งมีการเปลี่ยนแปลงเร็ว) จะส่งค่าของมันทุกๆ วินาทีในกรณีที่มีการเปลี่ยนแปลง (เช่น ประตูกำลังเคลื่อนที่) หากประตูหยุดนิ่ง ระบบก็จะส่งข้อมูลทุกนาทีเพื่อให้แน่ใจว่า Supergraph ใน Blynk แสดงค่าทางประวัติศาสตร์ได้อย่างถูกต้อง ข้อมูล Setup ถูกกำหนดค่าใน PULL mode และจะ refresh ทุก 10 วินาทีเท่านั้นเมื่อ app เปิดอยู่บน smartphone ของคุณ
==>> ด้วยการแก้ไขเหล่านี้ setup ทำงานได้เป็นเวลา 3 สัปดาห์โดยไม่มีการหยุดชะงัก ของ functionality เลย ผม วัดได้ว่ามี การ reconnect กับ Blynk 4 ครั้ง โดยไม่ ส่งผลกระทบ ต่อ ความน่าเชื่อถือ ของมัน
การปรับปรุงในอนาคต
1. ติดตั้ง magnetic reed switches เพื่อใช้ในการวัดตำแหน่งที่น่าเชื่อถือ และเพื่อสร้าง position alarms ในกรณีที่ประตูไม่ถึงตำแหน่งที่ต้องการตามเวลาที่กำหนด
2. ติดตั้ง IR camera เพื่อ monitor ว่าไก่ทุกตัวได้เข้าไปในเล้าก่อนที่ประตูจะปิดหรือไม่ อาจใช้เพื่อเฝ้าดูรังไข่ หรือ monitor ภายนอกในเวลากลางคืน
3. ติดตั้ง Motion sensor ที่มี buzzer หรือ strobo light เพื่อไล่สัตว์นักล่าที่เข้ามาใกล้เล้าไก่มากเกินไป
รายละเอียดทางเทคนิคเพิ่มเติม
โหนดระบบอัตโนมัติทางการเกษตร
ระบบอัตโนมัติ่นี้ช่วยให้มั่นใจในความปลอดภัยและสุขภาพของปศุสัตว์ ในขณะที่ลดงานที่ต้องใช้แรงงานคนของเกษตรกร
- Smart Door Control: ใช้ Stepper Motor หรือ high-torque servo เพื่อเปิดและปิดประตูเล้าไก่ในเวลาที่กำหนด (โดยใช้ RTC) หรือตามระดับแสง (โดยใช้ LDR) เพื่อปกป้องไก่จากสัตว์นักล่าในเวลากลางคืน
- Climate Monitoring: ใช้ DHT11 หรือ DHT22 เพื่อวัด temperature และ humidity หากเล้าไก่ร้อนเกินไป Arduino จะเปิด brushless DC fan เพื่อระบายอากาศ
การจัดการระยะไกล
- Blynk Cloud Dashboard: สถานะของประตู, temperature และระดับน้ำ (วัดโดย float sensor) จะถูก streaming ไปยัง smartphone ผ่าน WiFi
- Alert System: หากประตูไม่ปิดตามเวลาที่กำหนด ระบบจะส่ง emergency push notification ไปยังผู้ใช้ เพื่อให้สามารถเข้าแก้ไขจากระยะไกลได้ทันที