ESP8266 Làm Web Server - Lập Trình Arduino Kết Nối Wifi - OhStem

Trong bài này chúng ta sẽ biết cách thiết lập máy chủ web HTTP trên Node Wifi và cách thực hiện một số truy vấn với phương thức GET bằng trình duyệt web.

Thiết bị cần chuẩn bị

  • 1 x Node WiFi

Chương Trình

Khai báo các thư viện cần thiết:

#include <ESP8266WiFi.h> // Thư viện dùng để kết nối WiFi của ESP8266 #include <ESP8266WebServer.h> // Thư viện dùng để chạy web server

Để sử dụng thư viện ESP8266WebServer ta cần khởi tạo một đối tượng tên là server chạy trên port 80 (80 là port mặc định của web server)

ESP8266WebServer server(80);

Đối với phương thức GET, server dựa vào URI của truy vấn để xử lý và trả kết quả. Ví dụ trong trường hợp người dùng chỉ truy vấn trang chủ (URL = “/”) thì hàm handleRoot sẽ được gọi.

server.on("/", handleRoot); void handleRoot() { server.send(200, "text/plain", "Hello world"); }

Cuối cùng chúng ta cần gọi phương thức server.handleClient() trong vòng lặp chính để lắng nghe các truy vấn từ client.

void loop() { server.handleClient(); }

Bạn dùng Arduino IDE để nạp chương trình sau:

#include <ESP8266WiFi.h> // Thư viện dùng để kết nối WiFi của ESP8266 #include "ESP8266WebServer.h" const char* ssid = "Blocky AP"; // Tên của mạng WiFi mà bạn muốn kết nối đến const char* password = "password_ap"; // Mật khẩu của mạng WiFi const int led = 2; ESP8266WebServer server(80); void setup() { Serial.begin(115200); pinMode(led, OUTPUT); WiFi.begin(ssid, password); // Kết nối vào mạng WiFi Serial.print("Connecting to "); Serial.print(ssid); // Chờ kết nối WiFi được thiết lập while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.print("."); } Serial.println("\n"); Serial.println("Connection established!"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); // Gởi địa chỉ IP đến máy tinh server.on("/", handleRoot); // Gọi hàm handleRoot khi nhận được truy vấn GET cho URI = "/" server.begin(); // Khởi tại web server Serial.println("Server listening"); } void loop() { server.handleClient(); // Lắng nghe các truy vấn từ người dùng } void handleRoot() { server.send(200, "text/plain", "Hello world"); }

Sau khi nạp code thành công, bạn mở Serial Monitor để biết được địa chỉ IP của server. Sau đó dùng trình duyệt thử truy cập đến các đường dẫn sau:

  • http://serverIP: Bạn sẽ nhận được nội dung “Hello world
  • http://serverIP/xyz: Bạn sẽ nhận được lỗi “Not found: /xyz

Từ khóa » Thư Viện Esp8266webserver.h