สารบัญ:

การตรวจสอบโรงงานด้วย SMS Alert: 5 ขั้นตอน
การตรวจสอบโรงงานด้วย SMS Alert: 5 ขั้นตอน

วีดีโอ: การตรวจสอบโรงงานด้วย SMS Alert: 5 ขั้นตอน

วีดีโอ: การตรวจสอบโรงงานด้วย SMS Alert: 5 ขั้นตอน
วีดีโอ: บริการแจ้งเตือนอัตโนมัติผ่านโทรศัพท์มือถือ KTB SMS Alert 2024, กรกฎาคม
Anonim
ตรวจสอบโรงงานด้วย SMS Alert
ตรวจสอบโรงงานด้วย SMS Alert

ที่นี่ฉันสร้างการตรวจสอบโรงงานด้วยการแจ้งเตือนทาง 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); } }

แนะนำ: