Chế độ WiFi Station

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() {}

 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Fill out this field
Fill out this field
Vui lòng nhập địa chỉ email hợp lệ.
You need to agree with the terms to proceed

1 Bình luận.

  • Đây là khóa học IoT với Arduino phần nâng cao, giúp các bạn làm quen với các khái niệm về phần truyền và nhận dữ liệu lên Internet thông qua kết nối WiFi và nhiều phương thức (protocol) khác nhau.

Menu