Hướng phát triển

Một phần của tài liệu DA2-N5_DHDT12A3HN-HTQSMNQMVT (Trang 36 - 46)

Để 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.

uint8_t WiFiConnect(const char* nSSID = nullptr, const char* nPassword = nullptr)

{

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");

Serial.println("Connection: ESTABLISHED"); 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();

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

/* Phát xung từ chân trig */

digitalWrite(trig,0); // tắt chân trig delayMicroseconds(2);

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.subject = "HE THONG DO MUC NUOC";

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{}; }

Một phần của tài liệu DA2-N5_DHDT12A3HN-HTQSMNQMVT (Trang 36 - 46)

Tải bản đầy đủ (PDF)

(46 trang)