Lập Trình Arduino Kết Nối Wifi → Chế độ WiFi Station - OhStem

Trong bài viết này chúng ta sẽ kết nối một board ESP8266 vào mạng Wifi nhà bạn. Trường hợp này ESP8266 đóng vai trò là một station (trạm).

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

  • 1 x Node WiFi

Chương Trình

Chương trình có sử dụng một thư viện là ESP8266WiFi. Nó giúp chúng ta thiết lập kết nối WiFi một cách dễ dàng.

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

Lệnh kết nối WiFi rất đơn giản, chỉ cần truyền vào SSID (tên Access Point) và mật khẩu:

WiFi.begin(ssid, password);

Hàm để kiểm tra WiFi đã kết nối chưa: WiFi.status(). Hàm này sẽ trả về kết quả là WL_CONNECTED nếu đã kết nối thành công. Bạn có thể xem các trạng thái khác ở đây

Hàm để lấy địa chỉ IP của thiết bị sau khi kết nối thành công: WiFi.localIP()

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

Chú ý: Đối với Node WiFi bạn nhớ chọn board là NodeMCU 1.0 (ESP-12E Module) trên menu Arduino IDE > Tools > Board

#include <ESP8266WiFi.h>  // Thư viện dùng để kết nối WiFi của ESP8266 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 void setup() { Serial.begin(115200); // Khởi tạo kết nối Serial để truyền dữ liệu đến máy tính 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 } void loop() {}

Sau khi nạp code thành công, bạn mở Serial Monitor từ menu Arduino IDE > Tool. Sau đó chọn tốc độ baud 115200 như đoạn code trong phần setup ở trên

Nhấn nút Reset trên board Node WiFi, Serial Monitor thông báo kết quả kết nối thành công.

Nâng Cấp

Chương trình trên chỉ có áp dụng cho một mạng WiFi nhất định. Nhưng nếu bạn có nhiều mạng WiFi, hoặc đơn giản bạn muốn nó hoạt động trong mạng WiFi ở nhà và cả ở công ty thì phải làm sao? Để giải quyết vấn đề này, chúng ta sẽ sử dụng thư viện ESP8266WiFiMulti. Bạn có thể thêm bao nhiêu mạng WiFi tùy ý và nó sẽ tự động kết nối đến mạng có tín hiệu mạnh nhất.

#include <ESP8266WiFi.h>  // Thư viện dùng để kết nối WiFi của ESP8266 #include <ESP8266WiFiMulti.h> // Thư viện dùng để kết nối WiFi đa cấu hình của ESP8266 ESP8266WiFiMulti wifiMulti; // Khởi tạo đối tượng wifiMulti từ ESP8266WiFiMulti void setup() { Serial.begin(115200); // Khởi tạo kết nối Serial để truyền dữ liệu đến máy tính wifiMulti.addAP("Blocky AP Home", "password_ap1"); // Kết nối vào mạng WiFi ở nhà wifiMulti.addAP("Blocky AP Company", "password_ap2"); // Kết nối vào mạng WiFi ở công ty Serial.println("Connecting ..."); // Chờ kết nối WiFi được thiết lập. Quét tìm mạng WiFi và kết nối với mạng mạnh nhất. while (wifiMulti.run() != WL_CONNECTED) { delay(1000); Serial.print("."); } Serial.println("\n"); Serial.print("Connected to "); Serial.println(WiFi.SSID()); // Cho biết tên mạng WiFi đã kết nối thành công Serial.print("IP address: "); Serial.println(WiFi.localIP()); // Gởi địa chỉ IP đến máy tinh } void loop() {}

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