สารบัญ:
- ขั้นตอนที่ 1: บล็อกไดอะแกรมของระบบ
- ขั้นตอนที่ 2: รายละเอียดส่วนประกอบ
- ขั้นตอนที่ 3: แผนภาพวงจร
- ขั้นตอนที่ 4: ไฟล์วิดีโอและโค้ดที่ใช้งานได้
- ขั้นตอนที่ 5: รหัสของ Programe
วีดีโอ: การตรวจสอบโรงงานด้วย SMS Alert: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
ที่นี่ฉันสร้างการตรวจสอบโรงงานด้วยการแจ้งเตือนทาง SMS เซิร์ฟเวอร์ไม่จำเป็นสำหรับระบบแจ้งเตือนนี้ เป็นโครงการราคาถูกและน่าเชื่อถือมาก
ขั้นตอนที่ 1: บล็อกไดอะแกรมของระบบ
ในโรงเรือนทุกวันนี้ จำเป็นต้องมีการวัดค่าพารามิเตอร์จำนวนมาก
เพื่อติดตามและควบคุมคุณภาพและผลผลิตที่ดีของพืช แต่เพื่อให้ได้ผลลัพธ์ตามที่ต้องการ มีปัจจัยสำคัญบางอย่างที่เกี่ยวข้อง เช่น อุณหภูมิ ความชื้น แสง และดินที่ดี ซึ่งจำเป็นสำหรับการเจริญเติบโตของพืชที่ดีขึ้น โดยคำนึงถึงพารามิเตอร์เหล่านี้ ฉันได้สร้างระบบตรวจสอบโรงงานอัตโนมัติผ่านโมดูล GSM โดยใช้ Arduino ระบบนี้มีประสิทธิภาพมากในการปลูกพืชคุณภาพดี ส่วนสำคัญอื่น ๆ ของโครงการนี้คือการทำงานอัตโนมัติเต็มรูปแบบและทำงานบนแรงดันไฟฟ้าต่ำเช่น แหล่งจ่ายไฟ DC 5-12V
ปัจจุบัน GSM Module ใช้กันอย่างแพร่หลายในการส่งสถานะ SMS ของข้อมูลทุกประเภท ในโครงการนี้โดยใช้โมดูล SIM900A GSM เราสามารถเก็บข้อมูลเกี่ยวกับผลกระทบของสภาพอากาศต่อพืชได้ ระบบจะต้องแสดงให้เห็นการเปลี่ยนแปลงสภาพภูมิอากาศซึ่งส่งผลกระทบต่อโรงงานในด้านผลผลิตและคุณภาพ ฯลฯ วัตถุประสงค์หลักของการมากับโครงการนี้คือการสร้างการตรวจสอบโรงงานอัตโนมัติซึ่งโมดูล GSM ส่งข้อมูลเกี่ยวกับอุณหภูมิ ความชื้น ความเข้มแสง ดิน ความชื้น.
เนื่องจากฉันเป็นพลเมืองอินเดีย จึงใช้โมดูล SIM900A (A ย่อมาจาก Asian Network) แต่คุณสามารถใช้โมดูล SIM ประเภทต่างๆ ในประเทศของคุณได้ รหัส AT อาจแตกต่างกัน
ขั้นตอนที่ 2: รายละเอียดส่วนประกอบ
------------------ ฉันวัดพารามิเตอร์สี่ประเภทที่กำลังจะเกิดขึ้น
เพื่อหารือด้านล่าง: ------------------
อุณหภูมิและความชื้น
เซ็นเซอร์ DHT11 ใช้สำหรับตรวจจับอุณหภูมิและความชื้น เมื่ออุณหภูมิและความชื้นสูง รากของพืชก็เสียหายและเจริญเติบโตได้ไม่ดี
ความเข้มของแสง
ความเข้มของแสงเป็นปัจจัยสำคัญสำหรับการเจริญเติบโตของพืช สำหรับการตรวจจับความเข้มแสง LDR (ตัวต้านทานที่ขึ้นกับแสง) จะใช้ ความเข้มของแสงวัดเป็น LUX ดังนั้นสำหรับการสาธิตจะใช้แสง 100 LUX เป็นระดับที่กำหนดไว้หรือระดับเกณฑ์
ความชื้นในดิน
ความชื้นในดินมีความสำคัญมากต่อการเจริญเติบโตของพืช ที่นี่ใช้เซ็นเซอร์ดินเพื่อวัดความชื้นในดิน เมื่อใช้เซ็นเซอร์นี้ เราสามารถวัดข้อมูลดินได้ทั้งสองแบบ ทั้งแบบอนาล็อกและแบบดิจิทัล
การแจ้งเตือนทาง SMS:
เมื่อค่าของพารามิเตอร์ใด ๆ ข้างต้นเกินจากระดับที่กำหนดหรือระดับวิกฤต ระบบจะส่ง SMS ไปยังเจ้าของหรือผู้ดำเนินการโดยอัตโนมัติพร้อมข้อมูลพารามิเตอร์ที่เกี่ยวข้อง และเมื่อค่ามาอยู่ในช่วงปกติหรือต่ำกว่าระดับที่กำหนด ระบบจะส่งอีกครั้งโดยอัตโนมัติ ส่ง SMS ถึงเจ้าของหรือผู้ให้บริการพร้อมข้อมูลที่เกี่ยวข้อง
การแจ้งเตือนจะส่งเพียงครั้งเดียวจนกว่าเงื่อนไขจะไม่เปลี่ยนแปลง ดังนั้นเจ้าของหรือผู้ให้บริการจึงไม่ได้รับ SMS บ่อย ดังนั้นต้องใช้แพ็ก SMS ที่ต่ำกว่า
ขั้นตอนที่ 3: แผนภาพวงจร
ชิ้นส่วนทั้งหมดเหล่านี้หาได้ง่ายที่เว็บไซต์ช้อปปิ้งออนไลน์ทุกแห่ง
หรือกับตัวแทนจำหน่ายอะไหล่อิเล็คทรอนิคส์ที่มีชื่อเสียง แผ่นข้อมูลส่วนประกอบทั้งหมดมีอยู่บนเว็บ หากมีปัญหาใด ๆ โปรดติดต่อที่อีเมลของฉัน
ขั้นตอนที่ 4: ไฟล์วิดีโอและโค้ดที่ใช้งานได้
วิดีโอการทำงานขั้นสุดท้ายของโครงการ
ขั้นตอนที่ 5: รหัสของ Programe
#รวม
#รวม
LiquidCrystal LCD (2, 3, 4, 5, 6, 7);
ดีเอชที ดีเอชที; #กำหนด dht_dpin A1 #กำหนด LUX A0 #กำหนดดิน A3
โฟลตโวลต์, ลักซ์, ค่า; int output_value; อุณหภูมิภายใน, ความชื้น; int lightflag = 0; int ฮัมแฟลก = 0; int ธงดิน = 0; int tempflag = 0; ตรวจสอบภายใน; การทดสอบภายใน, การทดสอบ1; องศาไบต์ [8] = { 0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000 };
การตั้งค่าเป็นโมฆะ ()
{ Serial.begin(9600); //เริ่มต้นซีเรียลเพื่อสื่อสารกับโมเด็ม GSM lcd.begin (16, 2); pinMode(ดิน, INPUT); lcd.createChar(1, องศา); lcd.setCursor(0, 0); lcd.print("สุขภาพพืช"); lcd.setCursor(0, 1); lcd.print("การตรวจสอบ"); ล่าช้า (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("โครงการ AGRI"); lcd.setCursor(0, 1); lcd.print("โดย SK CHHAYA"); ล่าช้า (1000); lcd.clear(); } วงเป็นโมฆะ () { output_value = analogRead (ดิน); output_value = แผนที่ (output_value, 550, 0, 0, 100); ค่า = analogRead (LUX); โวลต์ = (ค่า / 1023.0) * 5; ลักซ์ = ((2500 / โวลต์) - 500) / 3.3; ล่าช้า (10000); //ให้เวลาเพียงพอสำหรับ GSM ในการลงทะเบียนบนเครือข่าย DHT.read11(dht_dpin); lcd.clear(); lcd.setCursor(0, 0); lcd.print ("อุณหภูมิ"); lcd.setCursor(0, 1); lcd.print(อุณหภูมิ = DHT.อุณหภูมิ); // ข้อมูลอุณหภูมิบน LCD lcd.write (1); lcd.print (" C"); ล่าช้า (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("ความชื้น"); lcd.setCursor(0, 1); lcd.print(ความชื้น = DHT.ความชื้น); // ข้อมูลความชื้นบน LCD lcd.print(" %"); ล่าช้า (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("แสง"); lcd.setCursor(0, 1); lcd.print(ลักซ์); // ข้อมูลแสงบน LCD lcd.print (" LUM"); ล่าช้า (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("ความชื้น"); lcd.setCursor(0, 1); lcd.print(output_value); // ข้อมูลดินบน LCD lcd.print(" %"); ล่าช้า (1000); lcd.clear();
ถ้า (อุณหภูมิ 40) { SendSMS (); // SMS สำหรับอุณหภูมิสูง } ถ้า (ความชื้น 40) { SendSMS2 (); // SMS สำหรับความชื้นสูง } ถ้า (ลักซ์ 100) { SendSMS4 (); // SMS สำหรับ Light high } ถ้า (output_value == 950) { SendSMS7 (); // SMS สำหรับดินแห้ง } else if (output_value != 950) { SendSMS6(); // SMS สำหรับดินเปียก } } ถือเป็นโมฆะ SendSMS () { if (tempflag == 0) { Serial.println ("AT+CMGF=1"); ล่าช้า (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); ล่าช้า (500); Serial.print("อุณหภูมิสูง"); Serial.print("ชั่วคราว"); Serial.print(อุณหภูมิ); Serial.println (" องศา C"); Serial.println((ถ่าน)26); lcd.setCursor(0, 0); lcd.print("อุณหภูมิสูง"); ล่าช้า (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("อุณหภูมิ"); lcd.setCursor(0, 1); lcd.print (อุณหภูมิ); lcd.write(1); lcd.print ("C"); ล่าช้า (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("กำลังส่ง SMS"); ล่าช้า (1000); lcd.clear(); tempflag = 1; ตรวจสอบ = 0; ทดสอบ = 0; ล่าช้า(10); } } ถือเป็นโมฆะ SendSMS1() { if (tempflag == 1) { Serial.println("AT+CMGF=1"); ล่าช้า (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); ล่าช้า (500); Serial.print("อุณหภูมิต่ำ, "); Serial.print("ชั่วคราว"); Serial.print(อุณหภูมิ); Serial.println (" องศา C"); Serial.println((ถ่าน)26); lcd.setCursor(0, 0); lcd.print("อุณหภูมิต่ำ"); ล่าช้า (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("อุณหภูมิ"); lcd.setCursor(0, 1); lcd.print (อุณหภูมิ); lcd.write(1); lcd.print ("C"); ล่าช้า (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("กำลังส่ง SMS"); ล่าช้า (1000); lcd.clear(); tempflag = 0; ตรวจสอบ = 0; ทดสอบ = 0; ล่าช้า(10); } } ถือเป็นโมฆะ SendSMS2() { if (humflag == 0) { Serial.println("AT+CMGF=1"); ล่าช้า (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); ล่าช้า (500); Serial.print("ความชื้นสูง"); Serial.print(ความชื้น); Serial.println(" %"); Serial.println((ถ่าน)26); lcd.setCursor(0, 0); lcd.print("ความชื้นสูง"); ล่าช้า (1000); lcd.setCursor(0, 1); lcd.print("ความชื้น"); lcd.print(ความชื้น); lcd.print(" %"); ล่าช้า (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("กำลังส่ง SMS"); ล่าช้า (1000); lcd.clear(); ฮัมแฟลก = 1; ตรวจสอบ = 0; ทดสอบ = 0; ล่าช้า(10); } }
เป็นโมฆะ SendSMS3 () { ถ้า (humflag == 1) { Serial.println ("AT + CMGF = 1"); ล่าช้า (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); ล่าช้า (500); Serial.print("ความชื้นต่ำ, "); Serial.print (" ความชื้น "); Serial.print(ความชื้น); Serial.println(" %"); Serial.println((ถ่าน)26); lcd.setCursor(0, 0); lcd.print("ความชื้นต่ำ"); ล่าช้า (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("ความชื้น"); lcd.setCursor(0, 1); lcd.print(ความชื้น); lcd.print(" %"); ล่าช้า (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("กำลังส่ง SMS"); ล่าช้า (1000); lcd.clear(); ฮัมแฟลก = 0; ตรวจสอบ = 0; ทดสอบ = 0; ล่าช้า(10); } } ถือเป็นโมฆะ SendSMS4() { if (lightflag == 0) { Serial.println("AT+CMGF=1"); // ในการส่ง SMS ในโหมดข้อความล่าช้า (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); //เปลี่ยนเป็นหมายเลขโทรศัพท์ปลายทางล่าช้า (500); Serial.print("แสงดี"); Serial.print (" ความเข้ม "); Serial.print(ลักซ์); Serial.println (" LUX"); Serial.println((ถ่าน)26); //อักขระหยุด Ctrl+Z lcd.setCursor(0, 0); lcd.print("แสงดี"); ล่าช้า (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print ("ความเข้ม"); lcd.setCursor(0, 1); lcd.print(ลักซ์); lcd.print(" LUX"); ล่าช้า (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("กำลังส่ง SMS"); ล่าช้า (1000); lcd.clear(); แฟลกไฟ = 1; ตรวจสอบ = 0; ทดสอบ = 0; ล่าช้า(10); } } ถือเป็นโมฆะ SendSMS5() { if (lightflag == 1) { Serial.println("AT+CMGF=1"); ล่าช้า (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); ล่าช้า (500); Serial.print("แสงน้อย"); Serial.print (" ความเข้ม "); Serial.print(ลักซ์); Serial.println (" LUX"); Serial.println((ถ่าน)26); lcd.setCursor(0, 0); lcd.print("แสงน้อย"); ล่าช้า (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print ("ความเข้ม"); lcd.setCursor(0, 1); lcd.print(ลักซ์); lcd.print(" LUX"); ล่าช้า (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("กำลังส่ง SMS"); ล่าช้า (1000); lcd.clear(); แฟลกไฟ = 0; ตรวจสอบ = 0; ทดสอบ = 0; ล่าช้า(10); } } ถือเป็นโมฆะ SendSMS6() { if (soilflag == 0) { Serial.println("AT+CMGF=1"); ล่าช้า (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); ล่าช้า (500); Serial.print("ดินแห้ง"); Serial.print (" ความชื้น "); Serial.print(output_value); Serial.println(" %"); Serial.println((ถ่าน)26); lcd.setCursor(0, 0); lcd.print("ดินแห้ง"); ล่าช้า (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("ความชื้น"); lcd.setCursor(0, 1); lcd.print(output_value); lcd.print(" %"); ล่าช้า (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("กำลังส่ง SMS"); ล่าช้า (1000); lcd.clear(); ธงดิน = 1; ตรวจสอบ = 0; ทดสอบ = 0; ล่าช้า(10); } } ถือเป็นโมฆะ SendSMS7() { if (soilflag == 1) { Serial.println("AT+CMGF=1"); ล่าช้า (500); Serial.println("AT+CMGS=\"+919979897404\"\r"); ล่าช้า (500); Serial.print("ดินเปียก"); Serial.print (" ความชื้น "); Serial.print(output_value); Serial.println(" %"); Serial.println((ถ่าน)26); lcd.clear(); lcd.setCursor(0, 0); lcd.print("ดินเปียก"); ล่าช้า (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("ความชื้น"); lcd.setCursor(0, 1); lcd.print(output_value); lcd.print(" %"); ล่าช้า (1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("กำลังส่ง SMS"); ล่าช้า (1000); lcd.clear(); ธงดิน = 0; ตรวจสอบ = 0; ทดสอบ = 0; ล่าช้า(10); } }
แนะนำ:
Doggo Boop Alert: 5 ขั้นตอน
Doggo Boop Alert: ลูกสาวของฉันต้องการนาฬิกาปลุกให้สุนัขของเธอดันเมื่อใดก็ตามที่มันต้องการจะออกไปอึ หากคุณเป็นสุนัขในอลาสก้า ตัวเลือกปูของคุณมีมากมายและทันที สุนัข Call of the Wild CGI อลาสก้าไม่ต้องการความผูกพันกับเจ้าของทุกวันอีกต่อไป เป่ย
วิธีใช้ SIM800L เพื่อส่ง SMS และรีเลย์ควบคุมทาง SMS: 3 ขั้นตอน
วิธีใช้ SIM800L เพื่อส่ง SMS และรีเลย์ควบคุมทาง SMS: คำอธิบาย: บทช่วยสอนนี้แสดงวิธีใช้ SIM800L เพื่อส่ง SMS และรับ SMS เพื่อควบคุมรีเลย์ โมดูล SIM800L มีขนาดเล็กและสามารถใช้เชื่อมต่อกับ Arduino เพื่อส่ง SMS, รับ SMS, โทร, รับสายและอื่น ๆ ในบทช่วยสอนนี้
Alert-using-ThingSpeak+ESP32-Wireless-Temp- Humidity-Sensor: 7 ขั้นตอน
Alert-using-ThingSpeak+ESP32-Wireless-Temp- Humidity-Sensor: ในบทช่วยสอนนี้ เราจะวัดข้อมูลอุณหภูมิและความชื้นต่างๆ โดยใช้เซ็นเซอร์อุณหภูมิและความชื้น คุณจะได้เรียนรู้วิธีการส่งข้อมูลนี้ไปยัง ThingSpeak เพื่อให้คุณสามารถสร้างการแจ้งเตือนชั่วคราวในอีเมลของคุณตามค่าที่กำหนด
Thirst Alert Plant Alarm: 13 ขั้นตอน
Thirst Alert Plant Alarm: ฉันต้องทำความสะอาด - ฉันเป็นพ่อแม่ที่น่ากลัว เป็นการดีที่จะเอาอันนั้นออกจากอกของฉัน ฉันไม่สามารถเข้าใจได้ ไม่ว่าจะเป็นการกระทบต่อการสังเคราะห์ด้วยแสงมากเกินไปหรือทำให้ H2O แบบเก่าสว่างขึ้น ดูเหมือนว่าฉันจะไม่ทำอะไรเลยที่จะเก็บเพื่อนเหล่านี้ไว้
Home Alert: Arduino + Cloud Messaging บนจอแสดงผลขนาดใหญ่: 14 ขั้นตอน (พร้อมรูปภาพ)
การแจ้งเตือนหน้าแรก: Arduino + Cloud Messaging บนจอแสดงผลขนาดใหญ่: ในยุคของโทรศัพท์มือถือ คุณคาดหวังว่าผู้คนจะตอบสนองต่อการโทรของคุณทุกวันตลอด 24 ชั่วโมง หรือ… ไม่. เมื่อภรรยาของฉันกลับถึงบ้าน โทรศัพท์ยังคงฝังอยู่ในกระเป๋าถือหรือแบตเตอรี่หมด เราไม่มีสายที่ดิน โทรหรือ