Viet Dev

Cover image for ESP8266 - WiFi Access Point
Tuan for Unicloud Group

Posted on

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)
Enter fullscreen mode Exit fullscreen mode

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);
}
Enter fullscreen mode Exit fullscreen mode

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.

Khi khởi động 1<br>
WiFiAccesspoint

Oldest comments (0)