Cách kết nối với mạng WiFi bằng Arduino

Các thiết bị điện tử bạn xây dựng bằng Arduino bắt đầu trở nên rất tuyệt khi bạn kết nối chúng với mạng.

Hãy xem cách kết nối Arduino với mạng WiFi.

Arduino phải có kết nối WiFi, ví dụ:Arduino MKR WiFi 1010, là cái tôi sử dụng, hoặc cáiArduino Uno WiFi Rev2và những người khác.

Chúng ta sẽ sử dụng thư việnWiFiNINA. Thư viện này siêu tiện dụng và cho phép chúng tôi kết nối với mạng WiFi, nhưng cũng có thể tạo mạng WiFi nếu chúng tôi muốn.

Bắt đầu bản phác thảo Arduino của bạn bằng cách sử dụng:

#include <SPI.h>
#include <WiFiNINA.h>

CácThư viện SPIđược sử dụng bởi thư viện WiFiNINA, vì vậy hãy tải nó. SPI là viết tắt củaGiao diện ngoại vi nối tiếp

CácWiFiNINAthư viện cung cấp cho chúng tôi quyền truy cập, trong số những thứ khác, vàoWiFiđối tượng mà chúng tôi sẽ sử dụng.

Bây giờ chúng ta hãy làm việc trên phần thân củasetup()chức năng, chức năng cốt lõi Arduino duy nhất mà chúng tôi sẽ triển khai (chúng tôi sẽ để lạiloop()trống).

void setup() {

}

Đầu tiên, chúng ta sẽ xác định 2 chuỗi để giữ tên mạng, SSID và mật khẩu mạng.

tôi sử dụngArduino Tạo, vì vậy tôi chỉ sử dụng các hằng số mà tôi sẽ điền riêng vàoSecretchuyển hướng:

char ssid[] = SECRET_SSID;
char pass[] = SECRET_PASS;

Tiếp theo, chúng ta sẽ khởi tạo giao diện Serial để truyền thông tin từ Arduino trở lại Arduino Create:

Serial.begin(9600);

Và chúng tôi đợi cho đến khi nó sẵn sàng bằng cách sử dụng

while (!Serial);

Tiếp theo, chúng tôi đặt WiFi.begin () bên trong một vòng lặp để kiểm tra xem giá trị trả về của nó cóWL_CONNECTEDvà tiếp tục thử lại sau mỗi 2 giây cho đến khi:

int status = WL_IDLE_STATUS;
while (status != WL_CONNECTED) {
  Serial.print("Connecting to ");
  Serial.println(ssid);
  status = WiFi.begin(ssid, pass);
  delay(2000);
}

Đầu tiên chúng tôi khởi tạo nó thànhWL_IDLE_STATUS, một hằng số khác của WiFiNINA, nhưng chúng tôi cũng có thể khởi tạo nó thành một chuỗi trống.

Khi chúng tôi kết thúc vòng lặp này, chúng tôi đã kết nối và chúng tôi có thể gọiWiFi.localIP()phương pháp để lấy địa chỉ IP của thiết bị và in nó ra chuỗi:

Serial.print("IP address: ");
Serial.println(WiFi.localIP());

Đây là toàn bộ chương trình:

#include <SPI.h>
#include <WiFiNINA.h>

void setup() {
  char ssid[] = SECRET_SSID;
  char pass[] = SECRET_PASS;

Serial.begin(9600); while (!Serial);

int status = WL_IDLE_STATUS; while (status != WL_CONNECTED) { Serial.print("Connecting to "); Serial.println(ssid); status = WiFi.begin(ssid, pass); delay(5000); }

Serial.print("IP address: "); Serial.println(WiFi.localIP()); }

void loop() {

}

Bây giờ bạn có quyền truy cập vào thông tin khác, chẳng hạn như SSID mạng vớiWiFi.SSID()và cường độ tín hiệu sử dụngWiFi.RSSI():

Serial.print("Signal strength in dBm: ");
Serial.print(WiFi.RSSI());

Tại thời điểm này, bạn đã kết nối và bạn có thể chuyển sang các nhiệm vụ khác.

Lưu ý: bạn có thể có sẵn bản nâng cấp chương trình cơ sở NINA. Thêm séc này vào chương trình của bạn:

if (WiFi.firmwareVersion() < WIFI_FIRMWARE_LATEST_VERSION) {
  Serial.println("Firmware upgrade available");
}

để biết có phải như vậy không. Nếu vậy, bằng cách sử dụng Arduino IDE (tôi không thể thấy cách thực hiện việc này từ Arduino Create) kết nối với bảng sau đó tải bản phác thảo ví dụFile -> Examples -> WiFiNINA -> Tools -> FirmwareUpdater

Sau đó, mởTools -> WiFi101 / WiFiNINA Firmware Updaterthực đơn:

và nhấnUpdate Firmwarecái nút:


Các hướng dẫn về điện tử khác: