ESP32 WiFi Kết nối nhiều với mạng WiFi mạnh nhất

ESP32 WiFi Kết nối nhiều với mạng WiFi mạnh nhất

ESP32 WiFiMulti

Để thêm nhiều mạng (SSID / mật khẩu) trong các dự án của bạn, bạn sẽ được yêu cầu bao gồm một vài dòng mã trong bản phác thảo Arduino của mình. Chúng được hiển thị dưới đây:

  • Bước đầu tiên là đưa WiFi cũng như các thư viện WiFiMulti vào bản phác thảo. Điều này sẽ cho phép bo mạch ESP32 của chúng tôi kết nối với WiFi cũng như thêm nhiều mạng bên trong bản phác thảo của chúng tôi.

#include <WiFi.h>

#include <WiFiMulti.h>

  • Bước thứ hai là tạo một đối tượng của WiFiMulti

WiFiMulti wifiMulti;

  • Bước thứ ba là thêm các mạng WiFi khác nhau bằng SSID và mật khẩu của chúng. Điều này sẽ được thực hiện bằng phương thức addAP() trên đối tượng WiFiMulti. Ở đây chúng tôi sẽ chỉ định hai tham số. Tham số đầu tiên là SSID và tham số thứ hai là mật khẩu. Bạn có thể thêm bao nhiêu mạng tùy thích.

Hãy nhớ rằng bước này sẽ được thực hiện bên trong hàm setup().

wifiMulti.addAP("SSID1", "password1");

wifiMulti.addAP("SSID2", "password2");

wifiMulti.addAP("SSID3", "password3");

  • Bước cuối cùng là kết nối với WiFi. Chúng ta sẽ sử dụng phương thức run() trên đối tượng WiFimulti, để kết nối ESP32 với kết nối WiFi mạnh nhất. Thao tác này trả về trạng thái của kết nối WiFi.

Các dòng code sau đây sẽ được sử dụng trong hàm loop() để theo dõi xem ESP32 có được kết nối hay không. Trong khi kết nối bị mất, nó sẽ in 'WiFi không được kết nối!' trong màn hình nối tiếp và sẽ cố gắng kết nối với mạng mạnh nhất tiếp theo.

if(wifiMulti.run() != WL_CONNECTED) {

  Serial.println("WiFi not connected!);

  delay(1000);

}

ESP32 WiFiMulti Phác thảo

Thư viện WiFiMulti cung cấp một bản phác thảo ví dụ kết nối ESP32 với mạng WiFi mạnh nhất.

Mở Arduino IDE và đi tới Tệp > Ví dụ > WiFi > WifiMulti. Bản phác thảo bổ sung nhiều mạng WiFi cho bo mạch ESP32 để kết nối. ESP32 kết nối với WiFi mạnh nhất hiện có từ danh sách các mạng. Nếu kết nối bị mất, thì nó sẽ kết nối lại với tín hiệu WiFi mạnh nhất tiếp theo từ danh sách.

Chúng tôi sẽ sửa đổi bản phác thảo ví dụ đó để bao gồm cả cấp độ RSSI cho mỗi mạng. Chỉ báo cường độ tín hiệu nhận được (RSSI) của mạng WiFi sẽ hiển thị rõ ràng tín hiệu WiFi mạnh nhất. Hơn nữa, chúng tôi cũng sẽ quét tất cả các mạng lân cận có sẵn với các giá trị RSSI của chúng. Điều này sẽ được thực hiện bằng cách bao gồm mã ví dụ từ WiFiScan (File > Examples > WiFi > WiFiScan) bên trong bản phác thảo của chúng tôi.

#include <WiFi.h>

#include <WiFiMulti.h>

 

WiFiMulti wifiMulti;

 

const uint32_t connectTimeoutMs = 10000;

 

void setup(){

  Serial.begin(115200);

  delay(10);

  WiFi.mode(WIFI_STA);

  

  wifiMulti.addAP("ssid_from_AP_1", "your_password_for_AP_1");

  wifiMulti.addAP("ssid_from_AP_2", "your_password_for_AP_2");

  wifiMulti.addAP("ssid_from_AP_3", "your_password_for_AP_3");

 

  // WiFi.scanNetworks will return the number of networks found

  int n = WiFi.scanNetworks();

  Serial.println("scan done");

  if (n == 0) {

      Serial.println("no networks found");

  } 

  else {

    Serial.print(n);

    Serial.println(" networks found");

    for (int i = 0; i < n; ++i) {

      Serial.print(i + 1);

      Serial.print(": ");

      Serial.print(WiFi.SSID(i));

      Serial.print(" (");

      Serial.print(WiFi.RSSI(i));

      Serial.print(")");

      Serial.println();

      delay(10);

    }

  }

 

  Serial.println("Connecting Wifi...");

  if(wifiMulti.run() == WL_CONNECTED) {

    Serial.println("");

    Serial.println("Wi-Fi CONNECTED!");

    Serial.println("IP address: ");

    Serial.println(WiFi.localIP());

  }

}

 

void loop(){

  if (wifiMulti.run(connectTimeoutMs) == WL_CONNECTED) {

    Serial.print("Connected with: ");

    Serial.print(WiFi.SSID());

    Serial.print(" ");

    Serial.println(WiFi.RSSI());

  }

  else {

    Serial.println("WiFi not connected!");

  }

  delay(1000);

}

ESP32 WiFiTrình diễn đa dạng

Chọn đúng bảng và cổng COM trước khi tải mã của bạn lên bảng.
Đi tới Bảng > Công cụ và chọn Mô-đun Nhà phát triển ESP32.

Chọn bảng ESP32

Tiếp theo, đi tới Công cụ > Cổng và chọn cổng thích hợp mà qua đó bảng của bạn được kết nối.

Chọn COM PORT ESP32

Nhấp vào nút tải lên để tải mã lên bảng phát triển ESP32. Sau khi bạn đã tải mã của mình lên bảng phát triển ESP32, hãy nhấn nút ENABLE của nó.

Nút đặt lại bật ESP32

Trong Arduino IDE của bạn, hãy mở màn hình nối tiếp và đặt tốc độ truyền thành 115200. Đầu tiên, tất cả các mạng lân cận sẽ được quét. Bạn có thể xem rằng chúng tôi đã thu được 6 mạng. Mức RSSI của mỗi mạng cũng có thể được nhìn thấy. Sau một lúc, ESP32 kết nối với mạng WiFi mạnh nhất từ danh sách các mạng chúng tôi đã thêm vào bản phác thảo. Bạn sẽ có thể thấy địa chỉ IP của mô-đun ESP32 của mình sau khi nó kết nối với mạng WiFi mạnh nhất.

ESP32 WiFiNhiều bản demo

>>> 100+ Mã Sản Phẩm Dây Rút: https://mecsu.vn/san-pham/day-rut-nhua.5op

>>> 1000+ Mã Sản Phẩm Đầu Cosse: https://mecsu.vn/san-pham/dau-cosse.Q1j

Bài viết cùng chuyên mục

NHANH

NHANH

Vì Đổi mới liên tục nên Nhanh hơn

ĐÚNG

ĐÚNG

Coi trọng và ưu tiên việc làm Đúng

ĐỦ

ĐỦ

Tìm và mua Đủ Đơn hàng hơn

KỊP THỜI

KỊP THỜI

Hiệu suất tối ưu bởi Kịp Thời hơn