Skip to content

ESP8266 – WiFi Access Point

ESP8266 – WiFi Access Point

ESP8266 hoạt động ở chế độ Access Point

ESP8266 có khả năng cho phép các thiết bị khác (Station – STA) truy cập vào và hoạt động như là 1 Access Point, có thể tự thiết lập 1 mạng WiFi nội bộ, với khả năng khởi động DHCP Client và cung cấp được IP cho các Client kết nối tới. Do giới hạn về RAM, nên số lượng tối đa các STA có thể kết nối đến một ESP8266 hiện tại là 5.

Khởi tạo mạng

Đầu tiên bạn cần include <ESP8266WiFi.h>, thư viện này chứa hàm softAP dùng để cấu hình Access Point mềm (soft AP) để khởi tạo một mạng WiFi.

Một mạng WiFi đơn giản nhất chỉ cần cung cấp tên SSID và không mật khẩu WiFi.softAP(ssid). Phức tạp hơn, bạn cung cấp mật khẩu cho mạng WiFi WiFi.softAP(ssid, password), hoặc chi tiết WiFi.softAP(ssid, password, channel, hidden) khi cung cấp chính xác kênh truyền (1..13), mặc định 1 và ẩn nó đi, không hiển thị ra khi hidden = true

Nhớ rằng ssid sử dụng chuỗi ký tự không quá 63, và mật khẩu (có thể không cần) với tối thiểu 8 ký tự cho mạng WPA2-PSK

Hàm softAP sẽ trả về true nếu khởi tạo thành công mạng WiFi

Lưu ý rằng, mạng WiFi khởi tạo bởi hàm softAP sẽ sử dụng địa chỉ IP mặc định là 192.168.4.1, và chạy 1 DHCP Server cung cấp dải IP cho client kết nối tới là 192.168.1.x. Bạn có thể thay đổi địa chỉ IP mặc định này bằng hàm softAPConfig. Ngoài ra, ESP8266 có thể chạy được song song 2 chế độ Station và Access Point, nhưng lưu ý, chỉ được 1 channel, và channel của softAP sử dụng bởi channel của Station.

WiFi.softAPConfig (local_ip, gateway, subnet) dùng để cấu hình IP cho Access Point

Cấu hình địa chỉ IP cho ESP8266 AP là 192.168.4.22
IPAddress local_IP(192,168,4,22);
IPAddress gateway(192,168,4,9);
IPAddress subnet(255,255,255,0);
WiFi.softAPConfig(local_IP, gateway, subnet)

WiFi.softAPgetStationNum() sẽ trả về số lượng client đang kết nối tới Access Point

Khởi tạo mạng WiFi sử dụng ESP8266

Với đoạn code này, bạn có thể tạo ra một mạng WiFi cục bộ có SSID là AP-XXXXXX và có thể dùng máy tính để kết nối trực tiếp vào với password là password

#include <ESP8266WiFi.h>

const char *password = "password";

void setup() {
  Serial.begin(115200);
  Serial.print("Configuring access point...");
  char ssid[64];
  sprintf(ssid, "AP-%06X", ESP.getChipId());
  WiFi.softAP(ssid, password);

  IPAddress myIP = WiFi.softAPIP();
  Serial.print("AP IP address: ");
  Serial.println(myIP);
}

void loop() {
  Serial.printf("Stations connected = %d\n", WiFi.softAPgetStationNum());
  delay(3000);
}

Nạp chương trình cho board NodeMCU và xem kết quả hiển trị trên màn hình Monitor. Lúc này, bạn có thể tìm thấy SSID do board NodeMCU phát ra bằng bất kỳ thiết bị có thể kết nối Internet nào.

WiFiAccesspoint
Hình 1. Khi khởi động 1 WiFiAccesspoint

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 *