แรงบันดาลใจ:
ตั้งแต่ผมจบจากมหา'ลัยมาเนี่ย ก็ 24 ปีแล้วว่ะน้อง ยังไม่ได้อัพเดตความรู้เรื่องอิเล็กทรอนิกส์, การเขียนโปรแกรม หรือแอปพลิเคชันบนแพลตฟอร์ม Android เลยสักครั้ง อยากจะตามเทคโนโลยีให้ทัน เลยตัดสินใจทำโปรเจคนี้ขึ้นมา เป้าหมายคือได้ทั้งความรู้ และได้ของใช้ในบ้านที่ช่วยประหยัดน้ำ เป็นมิตรกับสิ่งแวดล้อมด้วย เลยออกแบบระบบรดน้ำต้นไม้ต้นทุนต่ำโดยใช้เทคโนโลยีโอเพ่นซอร์ส แรงบันดาลใจมาจากโปรเจคของ Mayooh Girish ที่โพสต์ไว้ในเว็บ Arduino นั่นแหละ
อุปสรรคหลักที่เจอ:
- ต้องบูรณาการบอร์ดอิเล็กทรอนิกส์, อุปกรณ์ต่างๆ, ซอฟต์แวร์ และฮาร์ดแวร์เข้าด้วยกัน โดยใช้งบน้อยที่สุด
- ทำให้ทุกขั้นตอนสนุกเหมือนได้เล่นใหม่ๆ เป็นงานอดิเรกชิ้นใหม่
- ออกแบบให้ปลอดภัยทั้งต่อคน, สิ่งแวดล้อม และตัวทรัพย์สินเองด้วย
มันทำงานยังไง?
ระบบรดน้ำนี้สามารถควบคุมได้จาก:
- ปุ่มกด (Push Button) แบบโลคัล
- คีย์แพด (Keypad) แบบโลคัล
- สมาร์ทโฟนผ่านแอป Android GUI
สามารถรันได้ในโหมด โลคัล, รีโมท และ แมนนวล, ออโต้
ถ้าเลือกโหมดโลคัล ก็สามารถเปิด/ปิดโซลินอยด์วาล์วจากปุ่มกดหรือคีย์แพดผ่านปุ่มที่กำหนดไว้ได้เลย หรือจะตั้งช่วงเวลา (นาที) ที่ต้องการให้รดน้ำ แล้วรีเซ็ตก็ได้ ถ้าชอบควบคุมเองแบบเรียลไทม์ก็เลือกโหมดแมนนวลไปเลย
พอสั่ง "เปิดวาล์ว" แล้ว ก็จะเห็นข้อมูลเกี่ยวกับอัตราการไหลและสถานะระบบบนจอ LCD นะ ผมติดตั้งโฟลว์มิเตอร์ราคาถูกในท่อ มันจะส่งพัลส์ไปที่อินพุตของบอร์ด Arduino
ทิปเด็ด: ก่อนจะกำหนดช่วงเวลาในคีย์แพดและโค้ด Arduino สิ่งที่สำคัญมากคือต้องทำการ "วัดอัตราการไหลคงที่ (static flow measurement)" ของแหล่งน้ำก่อน แนะนำให้ใช้ถังพลาสติกที่มีขีดบอกลิตร แล้วจับเวลาด้วยนาฬิกาหรือแอปจับเวลาบนมือถือเลย
สำหรับโหมดรีโมท ผมพัฒนาขึ้นมาเป็นแอปที่มี GUI เชื่อมต่อสมาร์ทโฟนกับโมดูลบลูทูธของ Arduino แอปนี้พัฒนาต่อยอดมาจากแอปตัวอย่างใน Android Studio ชื่อ BluetoothChat นั่นแหละ
จาก GUI นี้ น้องสามารถอ่านข้อมูล และเขียนคำสั่งเปิด/ปิด ไปยัง Arduino และต่อไปยัง Solenoid Valve ได้เลยจ้า ง่ายมั้ยล่า!
รุ่นพี่คนนี้จะมาสอนทางลัดสำคัญ ในการทดสอบการสื่อสารบลูทูธ โดยใช้แอปตัวอย่างจาก Android Studio ที่ชื่อว่า BluetoothChat ถ้าน้องลองใช้แอปคล้ายๆ กันกับโมดูล HC-05 วิดีโอนี้จะช่วยเซฟเวลาและแรงงานน้องไปได้เยอะเลยนะ ไว้ลองดู!
รายละเอียดเทคนิคแบบจัดเต็ม
Smart Botanical Life-Support suite
ระบบรดน้ำอัตโนมัติที่บาลานซ์ข้อมูลจากเซ็นเซอร์ในพื้นที่ กับการควบคุมจากสมาร์ทโฟนระยะไกล เพื่อรักษาระบบนิเวศในสวนให้สุขภาพดี
- Distributed Moisture Analytics: ใช้เซ็นเซอร์วัดความชื้นในดินหลายตัว เพื่อตรวจสอบ "โซน" ต่างๆ ของสวน Arduino จะระบุว่าโซนไหนต้องการน้ำ โดยอิงจากค่า "Wilting Point" ที่ผู้ใช้กำหนดไว้
- Bluetooth_Chat Command Hub: ใช้แอป Bluetooth Chat ที่ปรับแต่งเอง เพื่อให้ผู้ใช้สามารถควบคุมระบบด้วยมือได้ แอปจะแสดงเปอร์เซ็นต์ความชื้นในดินแบบเรียลไทม์ และอนุญาตให้ผู้ใช้เปิด Solenoid แต่ละตัวได้ด้วยคลิกเดียว
เรื่องของ Safety
- Anti-Seize Solenoid Cycle: มีรูทีนในเฟิร์มแวร์ที่สั่งให้วาล์วน้ำทำงานเป็นพัลส์ 1 วินาที ทุกๆ 24 ชั่วโมง (แม้ว่าความชื้นจะสูงอยู่แล้ว) เพื่อป้องกันการสะสมของแร่ธาตุและความล้มเหลวทางกลไก
โปรเจคนี้พัฒนามาจาก WBS นี้เลย:
พี่อธิบายไอเดียผลิตภัณฑ์แบบคร่าวๆ ให้ลูกชายฟัง เขาก็ออกแบบโลโก้ดราฟต์ให้กับต้นแบบของพี่ หลังจากนั้นพี่ก็ตัดสินใจจ้างดีไซเนอร์ เพราะในกระบวนการพัฒนาผลิตภัณฑ์ มันต้องการภาพและโลโก้ที่สื่อไอเดียได้ชัดเจน โลโก้สำหรับต้นแบบและแอปอยู่ด้านล่างนี้เลย
ขั้นตอนมีดังนี้:
ก่อนจะเริ่มลงมือทำโปรเจค น้องต้องมี Concept และการออกแบบทางวิศวกรรมพื้นฐานของโซลูชันก่อนนะ จะได้หลีกเลี่ยงข้อผิดพลาด อุบัติเหตุ และการเสียเงินฟรีๆ ในการจัดซื้อวัสดุ
ขั้นตอนที่ 1:
ซื้อและประกอบฮาร์ดแวร์ภาคสนามตามความต้องการของไซต์งานและการออกแบบทางวิศวกรรมของน้อง:
- สายยางและอุปกรณ์เสริม (ความยาวขึ้นอยู่กับจำนวนจุดจ่ายน้ำของน้อง)
- Flow meters (ตามจำนวนไลน์รดน้ำของน้อง)
- โซลินอยด์วาล์ว (หนึ่งตัวต่อหนึ่งโซน)
จำไว้เลยวาล์วพวกนี้มันทำงานด้วยอัตราการไหลและ/หรือความดันขั้นต่ำนะ อย่าไปใช้แบบมั่วๆ
- ท่อพีวีซีและอุปกรณ์ต่อพ่วงขนาด 1", 3/4" และ 1/2" – ถ้ามีหลายโซน พี่แนะนำให้สร้าง PVC แมนนิโฟลด์ แล้วติดตั้ง Inspection Box ไปเลย งานจะได้เป็นระเบียบ
- วาล์วตัดน้ำ (Cut Valve) ขนาด 3/4" เพื่อให้ง่ายต่อการแยกโซนสำหรับซ่อมบำรุงในอนาคต วาล์วนี้ควรติดตั้งอยู่ด้านหน้า (upstream) ของโซลินอยด์วาล์วแต่ละตัว
- ฟิลเตอร์เป็นสิ่งที่ต้องติดตั้งด้านหน้าโซลินอยด์วาล์ว ห้ามขาด!
- สปริงเกอร์ – จะใช้แบบพลาสติกธรรมดา, แบบโลหะ หรือระบบไมโครสเปรย์ก็ได้ ตามงบและความเหมาะสมของพื้นที่
ขั้นตอนที่ 2:
เพื่อให้การทดสอบในสนาม การติดตั้ง และการตรวจสอบระบบทำได้ง่ายขึ้น ให้ใช้แผง PCB มาตรฐาน บัดกรี และติดตั้ง LED, ตัวต้านทาน 220 โอห์ม, HC-05 แล้วเดินสายสัญญาณสำหรับ:
สถานะ:
- วาล์วเปิด/ปิด (บน PCB)
- โหมดควบคุมท้องถิ่น (โดยสวิตช์เลือกบน PCB)
- โหมดควบคุมระยะไกล (โดยสวิตช์เลือกบน PCB)
คำสั่ง:
- เปิดวาล์ว (ปุ่มกด & คีย์แพด & แอป)
- ปิดวาล์ว (ปุ่มกด & คีย์แพด & แอป)
- รีเซ็ตเวลา (ปุ่มกด & คีย์แพด & แอป)
- เวลารดน้ำอัตโนมัติ (คีย์แพด & แอป)
อินพุต/เอาต์พุตไฟเลี้ยง:
- +5V
- GND(-)
- เราใช้ Power Supply หนึ่งตัวสำหรับ Arduino และอีกหนึ่งตัวสำหรับฮาร์ดแวร์อื่นๆ
โมดูลบลูทูธ HC-05
- ขา Tx
- ขา Rx
- ขา Vdc
- ขา GND
น้องสามารถเก็บชุดฮาร์ดแวร์ทั้งหมดนี้ไว้บนเบรดบอร์ดตามที่แสดงในแผนภาพ Fritzing ก็ได้นะ ง่ายดี
ตัวแปรสำหรับโค้ด Arduino มีดังนี้:
รายงานการวัด:
- อัตราการไหลของการรดน้ำ (แสดงบน LCD และ Serial Monitor)
- เวลาของรอบการรดน้ำ (แสดงบน LCD และ Serial Monitor)
อินเตอร์ล็อค (ระบบล็อคความปลอดภัย):
- อินเตอร์ล็อคตรวจสอบการไหลในไลน์ก่อนรับคำสั่งเปิด
- อินเตอร์ล็อคลำดับการเชื่อมต่อไฟ AC
- อินเตอร์ล็อคค่าเริ่มต้นของฟิลด์เอาต์พุต
- อินเตอร์ล็อคการรีเซ็ตฟิลด์เอาต์พุตเมื่อ Arduino Board รีเซ็ต
จำเป็นต้องกำหนดตัวแปรสำหรับโค้ด Arduino ดังนี้:
รายงานการวัด:
- อัตราการไหลของการรดน้ำ (แสดงบน LCD และ Serial Monitor)
- เวลาของรอบการรดน้ำ (แสดงบน LCD และ Serial Monitor)
ทริกเกอร์ความปลอดภัยอัตโนมัติในโปรแกรม:
- คุณภาพของสัญญาณ
- โหมดการทำงานที่ไม่ได้กำหนด
- เวลารดน้ำเกินพารามิเตอร์ที่ตั้งไว้
- กลไกหยุดทำงานฉุกเฉิน
ขั้นตอนที่ 3: การเชื่อมต่อระบบ
เชื่อมต่อและบูรณาการฮาร์ดแวร์ไฟฟ้าและอิเล็กทรอนิกส์ทั้งหมด ทีละอุปกรณ์ แล้วเริ่มทดสอบแบบแยกส่วน คำแนะนำด้านความปลอดภัยมีดังนี้:
- ควรล็อคไม่ให้ส่งสัญญาณไปยังสนาม - น้ำต้องไม่ไหลเปลือง
- ควรล็อคไม่ให้อุปกรณ์ AC ทำงาน - ตรวจสอบให้ชัวร์ว่ามีไฟ/ไม่มีไฟ
- ข้อความบน Serial Monitor มีประโยชน์มากสำหรับการแก้ปัญหาและวินิจฉัยข้อบกพร่อง
- การใส่ดีเลย์หลังฟังก์ชันสำคัญๆ เป็นสิ่งสำคัญเพื่อติดตามการทำงานที่ถูกต้อง
- ต้องมีแผนสำรองชัดเจนก่อนอัปโหลดซอฟต์แวร์ลง Arduino เช่น ฟิวส์ AC, กลไกตัดการเชื่อมต่อฉุกเฉิน, ถังดับเพลิง, การตรวจสอบการต่อกราวด์ และอื่นๆ อย่าประมาท สู้งานนะน้อง!
ขั้นตอนที่ 4:
- คอมไพล์และอัปโหลดโค้ดลง Arduino ไปเลยวัยรุ่น
- เอาต์พุตไปยังภาคสนามต้องถูกบล็อกไว้ก่อน - น้ำต้องไม่ไหลเปลืองสักหยด
- ข้อความใน Serial Monitor ช่วยได้เวลาตามบั๊กหรือเช็คระบบเร็วๆ
- ใส่ Delay หลังฟังก์ชันสำคัญๆ บ้าง จะได้ตามงานง่ายๆ ว่ามันทำงานถูกต้องไหม
ขั้นตอนที่ 5:
ทดสอบและปรับแต่งฮาร์ดแวร์ภาคสนาม อิเล็กทรอนิกส์ และซอฟต์แวร์
ขั้นตอนที่ 6:
มาปรับแต่ง GUI ฝั่งจอแสดงผลกัน สนุกแน่ๆ
ขั้นตอนที่ 7:
พัฒนาแอปให้รองรับจำนวนโซน (Zone) ของระบบ แล้วอัปโหลดแอปจาก Android Studio ลงสมาร์ทโฟนของเรา ในเคสนี้เรามีแค่โซนเดียวให้ควบคุม แต่มันขยายไปถึง "n" โซนได้หมดเลย
ขั้นตอนที่ 8:
ทดสอบและปรับแต่งฮาร์ดแวร์ภาคสนาม อิเล็กทรอนิกส์ และซอฟต์แวร์ เทียบกับ GUI บนสมาร์ทโฟน คราวนี้แหละของจริง
ข้อมูล Frontmatter ดั้งเดิม
apps: - "1x bluetoothchat" - "1x ecoriego" author: "hbolanos2001" category: "Home & Automation" components: - "10x Resistor 221 ohm" - "1x Arduino Mega 2560" - "1x solenoid valve" - "1x Android device" - "1x Standard LCD - 16x2 White on Blue" - "1x Pushbutton switch 12mm" - "1x Soldering iron (generic)" description: "ใช้มือถือสั่งงานได้ชิลๆ จัดการสวนแบบไม่ต้องก้ม ไม่เมื่อยหลัง ประหยัดน้ำสุดๆ ระบบ Green-cheap ตึงๆ สำหรับวัยรุ่นสายบ้านๆ" difficulty: "Intermediate" documentationLinks: [] downloadableFiles: [] encryptedPayload: "U2FsdGVkX18oZN0Et7YjaXq1jqP6izrNvdiTZ7XyuQrSb0n965nDau8HyAMuKZXR+PxJzukVDbc7BPnYkSYAat4B7rHq7GQF7rj4BrkIqQiktkpQ8aZhJ9wOkLRaT92j" heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/integrated-home-irrigation-system-9783df_cover.jpg" lang: "en" likes: 15 passwordHash: "9d32067c0f760ce8fb3cec68a4eca25100593b5a9fc90d70b1b1bfbf3aabbb6e" price: 2450 seoDescription: "Build an Integrated HOME Irrigation System using smartPhone and Arduino. Save water and effort with this eco-friendly project." tags: - "home automation" - "sustainability" - "garden" title: "ระบบรดน้ำอัตโนมัติในบ้าน งานง่ายแต่หล่อ!" tools: [] videoLinks: - "https://www.youtube.com/embed/z1xUTJF3egU" - "https://www.youtube.com/embed/dznwe-MK1KQ" - "https://www.youtube.com/embed/z1xUTJF3egU" views: 10400