Các bạn kết nối như hình :
đây là đoạn chương trình để chúng ta đo nhiệt độ và độ ẩm để hiển thị lên màn hình serial của máy tính
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <DHT.h> #define DHTPIN D4// chan vat ly #define DHTTYPE DHT11//bat ctr +shif +m hien thi man hinh DHT dht(DHTPIN,DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); } void loop() { float h = dht.readHumidity(); float t = dht.readTemperature(); Serial.println(); Serial.print("Do am la: "); Serial.println(h); Serial.print(" Nhiet do la: "); Serial.println(t); Serial.println("----------------------"); delay(1000); } |
Theo dõi nhiệt độ độ ẩm qua mạng Wifi
Ta đã đọc được nhiệt độ và độ ẩm rồi thì làm thế nào để gửi nó lên mạng wifi trong nhà. Thật may mắn là ESP8266 có thể tạo ra một server và web ở trên địa chỉ sẵn có của nó, ta chỉ cần đăng nhập vào địa chỉ là có thông tin về nhiệt độ, độ ẩm rồi. Vậy cách làm thế nào, mình sẽ giải thích một số ý chính trong code dưới đây
1 2 |
const char *ssid ="Thanh Hang"; //tên wifi const char *password = "khcpass";//pass wifi |
Tiếp tục là tạo một web server với port là 80 bằng lệnh
1 |
WiFiServer server(80); |
Tạo xong rồi ta thực hiện kết nối ESP8266 vào mạng
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password);// khoi tao wifi while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Sau đó là khởi động server và in địa chỉ IP ra server.begin(); Serial.println("Server started"); Serial.print("Use this URL to connect: "); Serial.print("http://"); Serial.print(WiFi.localIP()); Serial.println("/"); |
Trong vòng lặp vô tận chúng ta sẽ thực hiện kiểm tra có client nào kết nối tới không bằng lệnh
1 |
WiFiClient client = server.available(); |
Đồng thời đọc nhiệt độ và độ ẩm
1 2 |
float h = dht.readHumidity(); //doc do am float t = dht.readTemperature();//doc nhiet do |
Tiếp tục chờ yêu cầu (request) từ client (máy tính hoặc điện thoại khác cùng mạng wifi)
1 2 3 4 5 6 7 8 |
WiFiClient client = server.available(); if (!client) { return; } Serial.println("new client"); while(!client.available()){ delay(1); } |
Coi như đã xong bước nhận yêu cầu, giờ là chuẩn bị câu trả lời cho yêu cầu từ client, ở đây ta sẽ tạo ra một trang web HTML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(""); client.println("<!DOCTYPE HTML>"); client.println("<html>"); client.println("<head><title> YASUO </title></head>"); client.println("<body>"); client.println("<H5>Thong tin nhiet do va do am :</H5>"); client.println("<H3 style='color:#339966'>Nhiet do la :"); client.println(t); client.println("*C"); client.println("</H3>"); client.println("<H3 style='color:#339966'>Do am la: "); client.println(h); client.println("%"); client.println("</H3>"); client.println("</body>"); client.println("</html>"); delay(20); Serial.println("Client disonnected"); Serial.println(""); |
Thế là đã xong!
Cảm ơn các bạn đã quan tâm !