โครงงาน เครื่องเตือนภัยน้ำท่วมผ่าน SMS
เสนอต่อ
มูลนิธิเทคโนโลยีสารสนเทศตามพระราชดำริ
สมเด็จพระเทพรัตนราชสุดา ฯ สยามบรมราชกุมารี
ได้รับการสนับสนุนทุนทำโครงงาน
ในโครงงานสนับสนุนทำโครงงานของนักเรียนในชนทบ
ประจำปีการศึกษา ๒๕๖๐
โดย
สามเณร นันทวัฒน์ คำสาสินธ์ ระดับชั้นมัธยมศึกษาปีที่ ๖
สามเณร อนุชา ตุลาการ ระดับชั้นมัธยมศึกษาปีที่ ๓
อาจารย์ที่ปรึกษา
อาจารย์ ศิวรรจน์ สวัจฉัตว์
อาจารย์ สุนินาท พุฒจันทร์
โรงเรียนพระปริยัติธรรมเกียรติแก้ววิทยา
ตำบลศรีแก้ว อำเภอศรีรัตนะ จังหวัดศรีสะเกษ
บทคัดย่อ
โครงงาน เรื่อง เครื่องเตือนภัยน้ำท่วมผ่าน SMS นี้จัดทำขึ้นเพื่อต้องการศึกษาค้นคว้าเกี่ยวกับความสามารถของระบบเซนเซอร์และ NodeMCU ว่าสามารถนำมาประยุกต์ในรูปแบบใดได้บ้าง ซึ่งคณะผู้จัดทำโครงงานได้ปรึกษากับอาจารย์ที่ปรึกษาเกี่ยวปัญหาน้ำท่วมนาข้าวของผู้ปกครองและญาติโยมในหมู่บ้านจึงเสนอแนวคิดในการป้อวกันความเสียหายที่เกิดจากภัยน้ำท่วมนาข้าว โดยเฉพาะการเพิ่มขึ้นของระดับในนาข้าวทำให้เกิดการคิดค้น เครื่องเตือนภัยน้ำท่วมผ่าน SMS ที่ช่วยลดปัญหาน้ำท่วมนาข้าว ซึ่งเป็นการนำระบบเซนเซอร์และ NodeMCU มาประยุกต์ใช้ในการแก้ไขปัญหาดังกล่าว เครื่องเตือนภัยน้ำท่วมผ่าน SMS สามารถปรับระดับตามความสูงของต้นข้าว ได้ 3 ระดับ คือ ระดับที่ 1 เตือนเมื่อมีน้ำเข้านาข้าวแล้ว ในระดับนี้ยังไม่เป็นอันตรายต่อข้าว ระดับที่ 2 เตือนเมื่อน้ำเพิ่มระดับสูงขึ้นอาจเป็นอันตรายต่อต้นข้าวแล้ว รีบระวังป้อง ระดับที่ 3 เมื่อน้ำเพิ่มระดับสูงขึ้นต่อเนื่องจำเป็นที่จะต้องระบายน้ำออกจากน้ำข้าว การทำงานของระบบเครื่องเตือนภัยน้ำท่วมผ่าน SMS สามารถทำงานได้เป็นอย่างดี แต่ยังมีข้อบกพร่องเล็กซึ่งสามารถพัฒนาต่อยอดให้ดียิ่งขึ้นในลำดับต่อไป
ที่มาและความสำคัญ
ภัยน้ำท่วมเป็นภัยธรรมชาติที่รุนแรงขึ้นทุกทีในภูมิภาคของบ้านเราโดยปกติภัยน้ำท่วมเกิดจากการฝนตกหนักน้ำป่าไหลหลาก ซึ่งอาจมีสาเหตุจากพยุหมุนเขตร้อนลมรสกำลังแรงร่องความกดอากาศแปรปรวน
ในปีที่ผ่านมาได้เกิดน้ำท่วมครั้งใหญ่ในแทบภาคอีสานทำให้พืชผลทางการเกษตรเสียหายเป็นอย่างมาก โดยเฉพาะนาข้าวที่ผู้ปกครองของกลุ่มผู้จัดทำก็ได้รับผลกระทบกับเรื่องนี้ด้วย สมาชิกในกลุ่มโครงงานจึงมีความสนใจที่หาแนวทางป้องกันความเสียหายที่เกิดจากภัยน้ำท่วมโดยเฉพาะอย่างยิ่งการเพิ่มขึ้นของระดับน้ำทุ่งนาทำให้เกิดการคิดค้นอุปกรณ์และเครื่องมือที่ใช้ในการช่วยลดปัญหาน้ำท่วม ผนวกกับรู้ที่ได้รับการอบรม ค่ายอิคคิวซัง ภายใต้มูลนิธิเทคโนโลยีสารสนเทศตามพระราชดำริสมเด็จพระเทพรัตนราชสุดา ฯ สยามบรมราชกุมารี เรื่องของการใช้ระบบสมองกลฝังตัว ระบบเซนเซอร์ รีเลย์ ต่างๆคณะผู้จัดทำจึงได้ปรึกษากับอาจารย์ที่ปรึกษาในการจัดทำโครงงานเครื่องเตือนภัยน้ำท่วมนาข้าว แจ้งเตือนผ่าน SMS LINE 3 ระดับ โดยมีหลักการทำงาน คือ เมื่อระดับน้ำเพิ่มขึ้นจนถึงเซนเชอร์ตัวที่ 1 ระบบจะทำการแจ้งเตือนผ่าน Application LINE ไปยัง LINE ของเจ้าของนาข้าวว่ามีระดับน้ำเพิ่มขึ้นแล้วแต่ยังไม่เป็นอันตรายต่อนาข้าว ระดับเพิ่มขึ้นเรื่อยๆจนถึงเซนเซอร์ตัวที่ 2 ระบบจะทำการแจ้งเตือนผ่าน Application LINE ไปยัง LINE ของเจ้าของนาข้าว ว่ามีระดับน้ำสูงมากแล้วอาจจะเป็นอันตรายต่อนาข้าว ให้เจ้าของนาข้าวรีบระบายออกจากทุ่งนา และเมื่อระดับน้ำเพิ่มขึ้นเรื่อยๆจนถึงเซนเซอร์ตัวที่ 3 ระบบจะทำการแจ้งเตือนผ่าน Application LINE ไปยัง LINE ของเจ้าของนาข้าว ว่าน้ำท่วมนาข้าวแล้วให้ทำการระบายน้ำออกจากน้ำข้าวอย่างเร่งด่วน ซึ่งการทำงานของเครื่องจำเป็นที่จะต้องเชื่อมต่อกับ WIFI อาจจะมีปัญหาสำหรับพื้นที่ๆห่างไกลแต่หากมีการเชื่อมต่อกับระบบก็จะสามารถทำงานได้
ดังนั้นการเตือนภัยน้ำท่วมผ่าน SMS LINE ในรูปแบบของสิ่งประดิษฐ์ที่คิดดันขึ้นมาโดยคำนึงถึงการเตือนภัยอย่างมีประสิทธิภาพลดความเสียหายลงได้จึงมีความจำเป็นอย่างเร่งด่วนที่จะต้องมีการประดิษฐ์คิดดันเครื่องมือนี้ขึ้นมาเพื่อช่วยเพื่อเตือนภัยซึ่งจะช่วยลดความเสียหายต่อชีวิตและทรัพย์สินมนุษย์ได้
วัตถุประสงค์
- เพื่อสร้างเครื่องเตือนภัยน้ำท่วมป้องความเสียหายจากระดับน้ำและสามารถแก้ไขปัญหาได้ทันที
- เพื่อศึกษาและประยุกต์ใช้หลักการทำงานของระบบสมองกลได้อย่างมีประสิทธิภาพ
สมมุติฐาน
เครื่องเตือนภัยน้ำท่วมสามารถลดอัตราที่อาจจะก่อให้เกิดความเสียหายแก่ชาวนาได้
ประโยชน์ที่คาดว่าจะได้รับ
- ได้สร้างเครื่องเตือนภัยน้ำท่วมป้องความเสียหายจากระดับน้ำและสามารถแก้ไขปัญหาได้ทันที
- ได้ศึกษาและประยุกต์ใช้หลักการทำงานของระบบสมองกลได้อย่างมีประสิทธิภาพ
ขั้นตอนการทำและดำเนินงาน
1.วางแผนการการทำงานและเรียนรู้การต่อวงจร
2.ศึกษาอุปกรณ์
3.ศึกษา code
4.ทดสอบเครื่องเตือนภัยน้ำท่วมผ่าน sms
5.บันทึกผลการทดสอบ ระบุปัญหา
6.สรุปผล
หลักการทำงาน
ทำการเชื่อมต่อไปยัง NodeMCU กับ WIFI โดยการเขียนชื่อและรหัสผ่านไว้ที่โค้ดแล้วแซ็ตเข้าเครื่องจากนั้นเชื่อมต่อกับLineโดยเชื่อมต่อที่Line Notify แล้ว Coby โค้ดจาก Line Notify มาเขียนใส่ที่โค้ดหลัก เพื่อให้ NodeMCU ส่งข้อความที่เราต้องการมายังเครื่องของเรา เป็นข้อความที่เรากำหนดได้ตามความต้องการ จากนั้น เมื่อระดับน้ำเพิ่มขึ้นจนถึงเซนเชอร์ตัวที่ 1 ระบบจะทำการแจ้งเตือนผ่าน Application LINE ไปยัง LINE ของเจ้าของนาข้าวว่ามีระดับน้ำเพิ่มขึ้นแล้วแต่ยังไม่เป็นอันตรายต่อนาข้าว ระดับเพิ่มขึ้นเรื่อยๆจนถึงเซนเซอร์ตัวที่ 2 ระบบจะทำการแจ้งเตือนผ่าน Application LINE ไปยัง LINE ของเจ้าของนาข้าว ว่ามีระดับน้ำสูงมากแล้วอาจจะเป็นอันตรายต่อนาข้าว ให้เจ้าของนาข้าวรีบระบายออกจากทุ่งนา และเมื่อระดับน้ำเพิ่มขึ้นเรื่อยๆจนถึงเซนเซอร์ตัวที่ 3 ระบบจะทำการแจ้งเตือนผ่าน Application LINE ไปยัง LINE ของเจ้าของนาข้าว ว่าน้ำท่วมนาข้าวแล้วให้ทำการระบายน้ำออกจากน้ำข้าวอย่างเร่งด่วน
สรุปผล
โครงานเครื่องเตือนภัยน้ำท่วมผ่าน sms ทำงานได้ตามเป้าหมายที่คณะผู้จัดทำตั้งไว้ เครื่องสามารถเตือนภัยน้ำท่วมได้ 3 ระดับ ส่งข้อความการเตือนเข้า Application LINE ไปยัง LINE ของเจ้าของนาได้ ตามที่หวังไว้ แต่ยังข้อจัดกัดเกี่ยวกับเรื่องของการเชื่อมต่อ ซึ่งไม่สามารถนำไปวางยังตำแหน่งที่ไม่มีสัญญามือถือ นี้คือข้อตัดที่ยังต้องพัฒนาต่อไป
ข้อเสนอแนะ
โครงงานนี้ยังมีข้อจำกัดในการติดตั้ง อีกทั้งการเชื่อมต่อยังเป็นข้อจำกัดเช่นกัน เพราะไม่สามารถนำไปว่างยังตำแหน่งที่ต้องการได้ ดังนั้นในพัฒนาต่อยอดโครงงานดังกล่าว ควรพัฒนาการติดตั้งใหม่พัฒนาให้สามารถติดตั้งได้ง่าย ควรเพิ่มอุปกรณ์ที่สามารถเชื่อมต่อกับสัญญานมือถือได้ตลอดเวลา
วัสดุอปกรณ์
1.Breadboard
2.nodeMCU
3.jumper
4.ท่อ pvc 4 นิ้ว
5.ท่อ pvc 1.5 นิ้ว
ภาคผนวก
ภาพกิจกรรม
|
|
|
|
|
|
|
|
|
|
Code
void Line_Notify(String message) ;
#include <ESP8266WiFi.h>
const int sen1Pin = D1;; const int sen2Pin = D2; const int sen3Pin = D3;
// Config connect WiFi #define WIFI_SSID “nubia M2 lite” #define WIFI_PASSWORD “ee2c812e8c24”
// Line config #define LINE_TOKEN “lt47wTJ5Eu0G4JMjsa5Gnpim4IvjIQb4lYzbolHgOZp”
String messageL1 = “%E0%B8%A3%E0%B8%B0%E0%B8%94%E0%B8%B1%E0%B8%9A%201”; String messageL2 = “%E0%B8%A3%E0%B8%B0%E0%B8%94%E0%B8%B1%E0%B8%9A%202”; String messageL3 = “%E0%B8%A3%E0%B8%B0%E0%B8%94%E0%B8%B1%E0%B8%9A%203”;
void setup() { pinMode(sen1Pin, INPUT); pinMode(sen2Pin, INPUT); pinMode(sen3Pin, INPUT);
Serial.begin(9600);
WiFi.mode(WIFI_STA); // connect to wifi. WiFi.begin(WIFI_SSID, WIFI_PASSWORD); Serial.print(“connecting”);
int i = 0; do{ Serial.print(“.”); delay(500); i++; Serial.print(i); } while ((WiFi.status() != WL_CONNECTED) && (i < 10));
Serial.println(); Serial.print(“connected: “); Serial.println(WiFi.localIP());
}
void loop() { int value;
if(digitalRead(sen1Pin) == LOW) { Line_Notify(messageL1); delay(2000); }
if(digitalRead(sen2Pin) == LOW) { Line_Notify(messageL2); delay(2000); }
if(digitalRead(sen3Pin) == LOW) { Line_Notify(messageL3); delay(2000); }
}
void Line_Notify(String message) { WiFiClientSecure client;
if (!client.connect(“notify-api.line.me”, 443)) { Serial.println(“connection failed”); return; }
String req = “”; req += “POST /api/notify HTTP/1.1\r\n”; req += “Host: notify-api.line.me\r\n”; req += “Authorization: Bearer ” + String(LINE_TOKEN) + “\r\n”; req += “Cache-Control: no-cache\r\n”; req += “User-Agent: ESP8266\r\n”; req += “Connection: close\r\n”; req += “Content-Type: application/x-www-form-urlencoded\r\n”; req += “Content-Length: ” + String(String(“message=” + message).length()) + “\r\n”; req += “\r\n”; req += “message=” + message; // Serial.println(req); client.print(req);
delay(20);
// Serial.println(“————-“); while(client.connected()) { String line = client.readStringUntil(‘\n’); if (line == “\r”) { break; } //Serial.println(line); } // Serial.println(“————-“); } |