Как подключиться к сети Wi-Fi с помощью Arduino

Электронные устройства, которые вы создаете с помощью Arduino, становятся очень крутыми, когда вы подключаете их к сети.

Давайте посмотрим, как подключить Arduino к сети Wi-Fi.

Arduino должен иметь подключение к Wi-Fi, напримерArduino MKR WiFi 1010, который я использую, илиArduino Uno WiFi Rev2и другие.

Мы собираемся использовать библиотекуWiFiNINA. Эта библиотека очень удобна и позволяет нам подключаться к сети Wi-Fi, а также создавать сеть Wi-Fi, если мы хотим.

Начните свой скетч Arduino, используя:

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

ВБиблиотека SPIиспользуется библиотекой WiFiNINA, поэтому загрузите и ее. SPI означаетПоследовательный периферийный интерфейс

ВWiFiNINAбиблиотека дает нам доступ, среди прочего, кWiFiобъект, который мы собираемся использовать.

Теперь поработаем над корпусомsetup()функция, единственная основная функция Arduino, которую мы собираемся реализовать (оставимloop()пустой).

void setup() {

}

Во-первых, мы собираемся определить 2 строки для хранения имени сети, SSID и сетевого пароля.

я используюArduino Create, поэтому я просто использую константы, которые я заполняю отдельно вSecretвкладка:

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

Затем мы собираемся инициализировать последовательный интерфейс для передачи информации из Arduino обратно в Arduino Create:

Serial.begin(9600);

И ждем, пока он не будет готов

while (!Serial);

Затем мы помещаем WiFi.begin () в цикл, который проверяет, является ли его возвращаемое значениеWL_CONNECTED, и повторяет попытки каждые 2 секунды, пока не будет:

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

Сначала инициализируем егоWL_IDLE_STATUS, еще одна константа WiFiNINA, но мы также можем инициализировать ее пустой строкой.

Как только мы закончим этот цикл, мы подключены и можем вызватьWiFi.localIP()метод, чтобы получить IP-адрес устройства и распечатать его на серийный номер:

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

Вот полная программа:

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

}

Теперь у вас есть доступ к другой информации, например к SSID сети сWiFi.SSID()и мощность сигнала с помощьюWiFi.RSSI():

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

На этом этапе вы подключены и можете переходить к другим задачам.

Примечание: у вас может быть доступно обновление прошивки NINA. Добавьте эту проверку в свою программу:

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

чтобы знать, так ли это. Если это так, подключитесь к плате с помощью Arduino IDE (я не вижу, как это сделать в Arduino Create), а затем загрузите пример скетча.File -> Examples -> WiFiNINA -> Tools -> FirmwareUpdater

Затем откройтеTools -> WiFi101 / WiFiNINA Firmware Updaterменю:

и нажмитеUpdate Firmwareкнопка:


Дополнительные уроки по электронике: