Chúng ta có thể áp dụng sản xuất hàng để bán. Sản phẩm phù hợp với cả ngành công nghiệp và trong đời sống hàng ngày.
Để phát triển thêm có thể làm kết nối với cảnh báo hoặc vòi bơm nước, để xả nước khi quá nhiều hoặc bơm tự động khi mực nước quá thấp. Cũng có thể kiểm tra các thùng nhiên liệu để biết nhiều ít một cách an toàn.
KẾT LUẬN
Hệ thống thông báo mức nước qua mạng viễn thông đã được áp dụng khá rộng dãi trong đời sống và các ngành trong xã hội, điều đó cho thấy sự cần thiết cũng như phổ biến, lợi ích mà hệ thống mang lại là tốt.
DANH MỤC TÀI LIỆU KHAM KHẢO
Tham khảo Arduino nào có thể gửi mail:
ESP8266 – Wikipedia tiếng Việt
Tham khảo Cảm biến siêu âm là gì :
Cảm biến siêu âm là gì? Cấu tạo và nguyên lý hoạt động? | huphaco.vn (donghodoapsuat.vn)
Tham khảo cách đo mực nước bằng cảm biến siêu âm:
Arduino | Hướng dẫn sử dụng CHI TIẾT cảm biến Siêu Âm HY-SRF05 - YouTube
Mạch đo và hiển thị mực nước sử dụng arduino (dientutuonglai.com) [Arduino Basic #21] Cảm biến siêu âm HC-SR04 - YouTube
Tìm chi tiết sơ đồ chân esp8266:
Sơ đồ chân ESP8266 - Nên sử dụng chân nào (dientutuonglai.com)
Tham khảo cách gửi email từ ESP 8266:
IoT webserver- Gửi thông báo bằng email từ ESP8266 không dùng IFTTT - Lưu và chia sẻ kiến thức robocon, IoT, Embedded... (luuvachiase.net)
ESP8266 NodeMCU Gửi email bằng Máy chủ SMTP: HTML, Văn bản và Tệp đính kèm (Arduino) - Điều khiển & Tự động hoá (hatinh.tech)
Esp8266 send email part 2 / Gửi email đính kèm file các loại - YouTube Esp8266 send email - YouTube
PHỤ LỤC Code:
const int trig = 14; // D5 chân trig của HC-SR04 const int echo = 12; // D6 chân echo của HC-SR04
int gui = 1800000; //30 phút gửi mail 1 lần /Thời gian để gửi mail 1 lần int het = 10;
#include <Wire.h>
#include <LiquidCrystal_I2C.h> //Thêm thư viện đi kèm trong thư mục đi kèm
LiquidCrystal_I2C lcd(0x27,20,4); #include "Arduino.h"
#include <EMailSender.h> #include <ESP8266WiFi.h> int but = D3; //Nút nhấn gửi mail
const char* ssid = "TMQ"; //Tên Wifi
const char* password = "quyetnew123"; //Mật khẩu Wifi long times;
uint8_t connection_state = 0;
uint16_t reconnect_interval = 10000;
EMailSender emailSend("hungdaoduy0703@gmail.com", "Hung0703"); //Mail và mật khẩu mail Gửi tin nhắn.
{
static uint16_t attempt = 0; Serial.print("Connecting to "); if(nSSID) { WiFi.begin(nSSID, nPassword); Serial.println(nSSID); } uint8_t i = 0;
while(WiFi.status()!= WL_CONNECTED && i++ < 50) { delay(200); Serial.print("."); } ++attempt; Serial.println(""); if(i == 51) {
Serial.print("Connection: TIMEOUT on attempt: "); Serial.println(attempt);
if(attempt % 2 == 0)
Serial.println("Check if access point available or SSID and Password\r\n");
return false; }
Serial.print("Got IP address: "); Serial.println(WiFi.localIP()); return true; } void Awaits() { uint32_t ts = millis(); while(!connection_state) { delay(50);
if(millis() > (ts + reconnect_interval) && !connection_state){ connection_state = WiFiConnect(); ts = millis(); } } } void setup() {
Serial.begin(9600); // giao tiếp Serial với baudrate 9600 lcd.init();
lcd.backlight(); times = millis();
pinMode(trig,OUTPUT); // chân trig sẽ phát tín hiệu pinMode(echo,INPUT); // chân echo sẽ nhận tín hiệu pinMode(but,INPUT_PULLUP);
lcd.setCursor(2,0);
lcd.print("DO MUC NUOC");
connection_state = WiFiConnect(ssid, password); if(!connection_state) // nếu không kết nối với WIFI Awaits(); // sẵn sàng thử lại kết nối
Serial.println("Sending status: ");
}
void loop() {
unsigned long duration; // biến đo thời gian int distance; // biến lưu khoảng cách
digitalWrite(trig,1); // phát xung từ chân trig
delayMicroseconds(5); // xung có độ dài 5 microSeconds digitalWrite(trig,0); // tắt chân trig
/* Tính toán thời gian */
// Đo độ rộng xung HIGH ở chân echo. duration = pulseIn(echo,HIGH);
// Tính khoảng cách đến vật. distance = int(duration/2/29.412);
/* In kết quả ra Serial Monitor */ Serial.print(distance); Serial.println("cm"); lcd.setCursor(0,1); lcd.print("T: Cm"); lcd.setCursor(3,1); lcd.print(distance); delay(200);
if(millis()- times == gui){
EMailSender::EMailMessage message;
message.message = String("MUC NUOC HIEN TAI LA: ") + String(distance) + String(" Cm ") ;
EMailSender::Response resp =
emailSend.send("tranminhquyet20@gmail.com", message); ///Mail nhận tin nhắn
times = millis(); }
if(digitalRead(but) == 0){ delay(300);
Serial.println("DA GUI MAIL");
EMailSender::EMailMessage message;
message.subject = "HE THONG DO MUC NUOC";
message.message = String("NUT NHAN DUOC NHAN <br> MUC NUOC HIEN TAI LA: ") + String(distance) + String(" Cm ") ;//<br>
EMailSender::Response resp =
emailSend.send("tranminhquyet20@gmail.com", message); }
else{}; }