Chương trình kiểm tra nhiệt độ và độ ẩm hiển thị lên web server của nodemcu

0
326

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

#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

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

WiFiServer server(80);

Tạo xong rồi ta thực hiện kết nối ESP8266 vào mạng

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
WiFiClient client = server.available(); 

đồng thời đọc nhiệt độ và độ ẩm

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)

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

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à đã song cảm ơn các bạn đã đọc

Trao đổi học tập

Comments