- ส่วนประกอบที่จำเป็นสำหรับโครงการระบบรดน้ำต้นไม้ Arduino
- คำอธิบายวงจร:
- คำอธิบายการทำงาน:
- คำอธิบายการเขียนโปรแกรม:
เมื่อใดก็ตามที่เราออกไปนอกเมืองสองสามวันเรามักจะกังวลเกี่ยวกับพืชของเราเนื่องจากพวกเขาต้องการน้ำเป็นประจำ ดังนั้นที่นี่เรากำลังสร้าง ระบบชลประทานอัตโนมัติโดยใช้ Arduinoซึ่งจะให้น้ำแก่พืชของคุณโดยอัตโนมัติและแจ้งให้คุณทราบโดยการส่งข้อความไปยังโทรศัพท์มือถือของคุณ
ในนี้ระบบรดน้ำพืช, ความชื้นในดินเซนเซอร์ตรวจสอบระดับความชุ่มชื้นในดินและถ้าระดับความชื้นที่อยู่ในระดับต่ำแล้ว Arduino สวิทช์ปั๊มน้ำเพื่อให้น้ำไปยังโรงงาน ปั๊มน้ำจะปิดโดยอัตโนมัติเมื่อระบบพบความชื้นในดินเพียงพอ เมื่อใดก็ตามที่ระบบเปิดหรือปิดปั๊มข้อความจะถูกส่งไปยังผู้ใช้ผ่านโมดูล GSMอัปเดตสถานะของปั๊มน้ำและความชื้นในดิน ระบบนี้มีประโยชน์มากในฟาร์มสวนบ้านและอื่น ๆระบบนี้เป็นระบบอัตโนมัติโดยสมบูรณ์และไม่จำเป็นต้องมีการแทรกแซงจากมนุษย์
ส่วนประกอบที่จำเป็นสำหรับโครงการระบบรดน้ำต้นไม้ Arduino
- Arduino Uno
- โมดูล GSM
- ทรานซิสเตอร์ BC547 (2)
- การเชื่อมต่อสายไฟ
- 16x2 LCD (อุปกรณ์เสริม)
- แหล่งจ่ายไฟ 12v 1A
- รีเลย์ 12v
- ปั๊มน้ำเย็น
- เซ็นเซอร์ความชื้นในดิน
- ตัวต้านทาน (1k, 10k)
- ตัวต้านทานแบบแปรผัน (10k, 100k)
- ขั้วต่อ
- ตัวควบคุมแรงดันไฟฟ้า IC LM317
โมดูล GSM:
ที่นี่เราใช้โมดูล TTL SIM800 GSM SIM800 เป็นโมดูล GSM / GPRS Quad-band ที่สมบูรณ์ซึ่งสามารถฝังได้อย่างง่ายดายโดยลูกค้าหรือมือสมัครเล่น โมดูล GSM SIM900 มีอินเทอร์เฟซมาตรฐานอุตสาหกรรม SIM800 มอบประสิทธิภาพ GSM / GPRS 850/900/1800 / 1900MHz สำหรับเสียง, SMS, ข้อมูลที่ใช้พลังงานต่ำ การออกแบบโมดูล GSM SIM800 นี้มีขนาดบางและกะทัดรัด สามารถหาซื้อได้ง่ายในตลาดหรือทางออนไลน์จาก eBay
- โมดูล GSM / GPRS แบบ Quad-band ขนาดเล็ก
- เปิดใช้ GPRS
- TTL เอาท์พุท
เรียนรู้เพิ่มเติมเกี่ยวกับโมดูล GSM และคำสั่ง AT ที่นี่ ตรวจสอบโครงการต่างๆของเราโดยใช้ GSM และ Arduino เพื่อทำความเข้าใจการเชื่อมต่ออย่างถูกต้อง
คำอธิบายวงจร:
ในระบบให้น้ำพืชนี้เราได้ใช้หัววัดเซนเซอร์ความชื้นในดินแบบโฮมเมดเพื่อตรวจจับระดับความชื้นในดิน ในการสร้างโพรบเราได้ตัดและฝังแผ่นทองแดงหุ้มตามภาพที่แสดงด้านล่าง ด้านหนึ่งของโพรบเชื่อมต่อโดยตรงกับ Vcc และขั้วต่อโพรบอื่นไปที่ฐานของทรานซิสเตอร์ BC547 โพเทนชิออมิเตอร์เชื่อมต่อกับฐานของทรานซิสเตอร์เพื่อปรับความไวของเซ็นเซอร์
Arduinoถูกนำมาใช้ในการควบคุมกระบวนการทั้งหมดของการนี้ระบบรดน้ำอัตโนมัติพืชเอาต์พุตของวงจรเซ็นเซอร์ดินเชื่อมต่อโดยตรงกับพินดิจิตอล D7 ของ Arduino LED ใช้ที่วงจรเซ็นเซอร์สถานะเปิดของ LED นี้บ่งชี้ว่ามีความชื้นในดินและสถานะปิดแสดงว่าไม่มีความชื้นในดิน
โมดูล GSMใช้สำหรับส่ง SMS ไปยังผู้ใช้ ที่นี่เราได้ใช้โมดูล TTL SIM800 GSMซึ่งให้และใช้ลอจิก TTL โดยตรง (ผู้ใช้อาจใช้โมดูล GSM ใดก็ได้) ตัวควบคุมแรงดันไฟฟ้า LM317ใช้เพื่อจ่ายไฟให้กับโมดูล SIM800 GSM LM317 มีความไวต่อระดับแรงดันไฟฟ้ามากและขอแนะนำให้อ่านเอกสารข้อมูลก่อนใช้งาน ระดับแรงดันไฟฟ้าที่ใช้งานคือ 3.8v ถึง 4.2v (โปรดใช้ 3.8v เพื่อใช้งาน) ด้านล่างนี้คือแผนภาพวงจรของแหล่งจ่ายไฟที่มอบให้กับโมดูล TTL sim800 GSM:
หากผู้ใช้ต้องการใช้โมดูล SIM900 TTL เขาควรใช้ 5V และหากผู้ใช้ต้องการใช้โมดูล SIM900 ให้ใช้ 12v ในช่องเสียบ DC Jack ของบอร์ด
12V Relayใช้ในการควบคุมปั๊มน้ำขนาดเล็ก 220VAC รีเลย์ขับเคลื่อนด้วยทรานซิสเตอร์ BC547 ซึ่งเชื่อมต่อกับพินดิจิตอล 11 ของ Arduino
นอกจากนี้ยังใช้LCDเสริมสำหรับแสดงสถานะและข้อความ พินควบคุมของ LCD, RS และ EN เชื่อมต่อกับพิน 14 และ 15 ของ Arduino และพินข้อมูลของ LCD D4-D7 เชื่อมต่อโดยตรงที่พิน 16, 17, 18 และ 19 ของ Arduino LCD ถูกใช้ในโหมด 4 บิตและขับเคลื่อนโดยไลบรารี LCD ในตัวของ Arduino
ด้านล่างนี้เป็นแผนภาพวงจรของระบบชลประทานพร้อม Arduino และเซ็นเซอร์ความชื้นในดิน:
คำอธิบายการทำงาน:
การทำงานของระบบให้น้ำพืชอัตโนมัตินี้ค่อนข้างง่าย ประการแรกมันเป็นระบบอัตโนมัติโดยสิ้นเชิงและไม่จำเป็นต้องมีกำลังคนในการควบคุมระบบ Arduino ใช้สำหรับควบคุมกระบวนการทั้งหมดและโมดูล GSM ใช้สำหรับส่งข้อความแจ้งเตือนไปยังผู้ใช้บนโทรศัพท์มือถือของเขา
หากความชื้นอยู่ในดินแสดงว่ามีการนำระหว่างโพรบทั้งสองของเซ็นเซอร์ความชื้นในดินและเนื่องจากการนำนี้ทรานซิสเตอร์ Q2 ยังคงอยู่ในสถานะทริกเกอร์ / เปิดและ Arduino Pin D7 ยังคงต่ำ เมื่อ Arduino อ่านสัญญาณ LOW ที่ D7 ระบบจะส่ง SMS ถึงผู้ใช้เกี่ยวกับ“ ความชื้นในดินเป็นเรื่องปกติ มอเตอร์ปิดอยู่” และปั๊มน้ำยังคงอยู่ในสถานะปิด
ตอนนี้ถ้าไม่มีความชื้นในดิน Transistor Q2 จะปิดและ Pin D7 จะสูง จากนั้น Arduino อ่าน Pin D7 และเปิดมอเตอร์น้ำและส่งข้อความถึงผู้ใช้เกี่ยวกับ“ ตรวจพบความชื้นในดินต่ำ มอเตอร์เปิดอยู่” มอเตอร์จะปิดโดยอัตโนมัติเมื่อมีความชื้นในดินเพียงพอ ตรวจสอบวิดีโอสาธิตและรหัสเพิ่มเติม (ให้ไว้ในตอนท้าย) เพื่อให้เข้าใจกระบวนการทำงานของโครงการได้ดีขึ้น
คำอธิบายการเขียนโปรแกรม:
รหัสสำหรับโปรแกรมนี้เข้าใจได้ง่าย ก่อนอื่นเราได้รวมไลบรารี SoftwareSerial เพื่อสร้างพิน 2 และ 3 เป็น Rx & Tx และยังรวม LiquidCrystal สำหรับ LCD จากนั้นเรากำหนดตัวแปรบางอย่างสำหรับมอเตอร์เซ็นเซอร์ความชื้นในดิน LED เป็นต้น
# รวม
จากนั้นในฟังก์ชัน void setup () การสื่อสารแบบอนุกรมจะเริ่มต้นที่ 9600 bps และกำหนดทิศทางไปยังพินต่างๆ ฟังก์ชัน gsmInit ถูกเรียกใช้สำหรับการเริ่มต้นโมดูล GSM
Serial1.begin (9600); Serial.begin (9600); PinMode (นำ, เอาท์พุท); PinMode (มอเตอร์เอาท์พุท); pinMode (เซ็นเซอร์, INPUT_PULLUP); lcd.print ("Water Irrigaton"); lcd.setCursor (4,1); ล่าช้า (2000); lcd.clear (); lcd.print ("วงจรย่อย"); lcd.setCursor (0,1); lcd.print ("ยินดีต้อนรับคุณ"); ล่าช้า (2000); gsmInit ();
จากนั้นเซ็นเซอร์จะอ่านในฟังก์ชัน void loop () และมอเตอร์จะเปิดหรือปิดตามสถานะของเซ็นเซอร์และ SMS จะถูกส่งไปยังผู้ใช้โดยใช้ฟังก์ชัน sendSMS ตรวจสอบฟังก์ชั่นต่างๆในรหัสเต็มที่ระบุไว้ตอนท้าย
ห่วงเป็นโมฆะ () {lcd.setCursor (0,0); lcd.print ("โหมดอัตโนมัติ"); ถ้า (digitalRead (เซ็นเซอร์) == 1 && flag == 0) {ล่าช้า (1000); ถ้า (digitalRead (เซ็นเซอร์) == 1) {digitalWrite (led, HIGH); sendSMS ("ตรวจพบความชื้นในดินต่ำมอเตอร์เปิดอยู่"); lcd.begin (16,2); lcd.setCursor (0,1);…………………
ที่นี่ ฟังก์ชัน gsmInit () มีความสำคัญและผู้ใช้ส่วนใหญ่พบว่ายากที่จะตั้งค่าอย่างถูกต้อง ใช้เพื่อเริ่มต้นโมดูล GSMโดยที่โมดูล GSM จะถูกตรวจสอบก่อนว่าเชื่อมต่ออยู่หรือไม่โดยส่งคำสั่ง 'AT' ไปยังโมดูล GSM หากได้รับคำตอบตกลงแสดงว่าพร้อมแล้ว ระบบจะตรวจสอบโมดูลจนกว่าจะพร้อมหรือจนกว่าจะได้รับ 'OK' จากนั้น ECHO จะปิดโดยส่งคำสั่ง ATE0 มิฉะนั้นโมดูล GSM จะสะท้อนคำสั่งทั้งหมด จากนั้นในที่สุดความพร้อมใช้งานของเครือข่ายจะถูกตรวจสอบผ่าน 'AT + CPIN?' คำสั่งหากใส่การ์ดเป็นซิมการ์ดและมี PIN อยู่จะให้การตอบสนองพร้อม นอกจากนี้ยังตรวจสอบซ้ำ ๆ จนกว่าจะพบเครือข่าย สิ่งนี้สามารถเข้าใจได้อย่างชัดเจนจากวิดีโอด้านล่าง
เป็นโมฆะ gsmInit () {lcd.clear (); lcd.print ("โมดูลการค้นหา.. "); บูลีน at_flag = 1; ในขณะที่ (at_flag) {Serial1.println ("AT"); ในขณะที่ (Serial1.available ()> 0) {ถ้า (Serial1.find ("ตกลง")) at_flag = 0; } ล่าช้า (1,000); }……………….
ดังนั้นด้วยระบบชลประทานอัตโนมัตินี้คุณไม่ต้องกังวลเกี่ยวกับพืชของคุณเมื่อคุณไม่อยู่บ้าน สามารถปรับปรุงเพิ่มเติมเพื่อดำเนินการและตรวจสอบผ่านทางอินเทอร์เน็ต