Điều khiển LED bằng WebServer sử dụng NodeMCU ESP8266
Trong nội dung bài viết hôm nay mình sẽ chia sẽ cho các bạn các tạo một bảng điều khiển trên Webpage sử dụng NodeMCU ESP8266.
Chúng ta bắt đầu nhé…
Nạp code Esp8266 và kiểm tra kết nối Wifi
Bước đầu tiên chúng ta cần nạp code vào NodeMCU ESP8266 và kiểm tra xem đã kết nối được với Wifi chưa.
Sau khi đã kết nối thành công sẽ xuất hiện địa chỉ IP của Wifi, các bạn copy địa chỉ IP này paste trên một trình duyệt bất kỳ để có thể điều khiển Bật/Tắt Led nhé.
Đây là phần giao diện trên Web.
Dữ liệu trả về Serial khi chúng ta bật tắt trên Website.
Sơ đồ nguyên lý
Linh kiện cần thiết cho dự án
Tên linh kiện | Số lượng | Shopee |
NodeMCU ESP8266 | 1 | Mua ngay |
Dây cắm (Đực – Đực) | 1 | Mua ngay |
Breadboard | 1 | Mua ngay |
LED | 1 | Mua ngay |
Code
#include <ESP8266WiFi.h> const char* ssid = "Phamson"; const char* password = "phamtheson"; int LED = 16; // GPIO16 (D0) WiFiServer server(80); void setup(){ Serial.begin(115200); pinMode(LED, OUTPUT); digitalWrite(LED, HIGH); Serial.print("Connecting to the Newtork"); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("WiFi connected"); server.begin(); Serial.println("Server started"); Serial.print("IP Address of network: "); // will IP address on Serial Monitor Serial.println(WiFi.localIP()); Serial.print("Copy and paste the following URL: https://"); Serial.print(WiFi.localIP()); Serial.println("/"); } void loop(){ WiFiClient client = server.available(); if (!client){ return;} Serial.println("Waiting for new client"); while(!client.available()) { delay(1); } String request = client.readStringUntil('\r'); Serial.println(request); client.flush(); int value = HIGH; if(request.indexOf("/LED=ON") != -1){ digitalWrite(LED, LOW); // Turn LED ON value = LOW; } if(request.indexOf("/LED=OFF") != -1){ digitalWrite(LED, HIGH); // Turn LED OFF value = HIGH; } //*------------------HTML Page Code---------------------*// client.println("HTTP/1.1 200 OK"); // client.println("Content-Type: text/html"); client.println(""); client.println("<!DOCTYPE HTML>"); client.println("<html>"); client.print(" CONTROL LED: "); if(value == HIGH){ client.print("OFF"); } else { client.print("ON"); } client.println("<br><br>"); client.println("<a href=\"/LED=ON\"\"><button>ON</button></a>"); client.println("<a href=\"/LED=OFF\"\"><button>OFF</button></a><br />"); client.println("</html>"); delay(1); Serial.println("Client disonnected"); Serial.println(""); }
Lời kết
Tham gia cộng đồng Arduino KIT Để nhận được nhiều kiến thức bổ ích, các bạn Đăng ký để nhận thông báo khi có bài viết mới nhé. Tham gia Cộng đồng Arduino KIT để cùng nhau thảo luận và chia sẽ kiến thức về lập trình Arduino. Nếu các bạn thấy bài viết bổ ích nhớ Like và Share cho mọi người cùng học nhé. |
Bài viết liên quan
- Điều khiển thiết bị bằng giọng nói thông qua Google Assitant sử dụng ESP8266, Adafruit, IFTTT
- Điều khiển thiết bị bằng giọng nói thông qua Google Assistant Tiếng Viết sử dụng ESP8266, Blynk và IFTTT
- Hướng dẫn chi tiết điều khiển thiết bị Sonoff thông qua Google Assistant Tiếng Việt 2019
- Giám sát nhiệt độ, độ ẩm bằng App Blynk sử dụng NodeMCU ESP8266
- LED RGB sử dụng NodeMCU ESP8266 thay đổi màu sắc trên App Blynk
Good
bord chạy ra server 176.16.101.111 nhưng mình vào lại không được ad