Comment se connecter à un réseau WiFi à l'aide d'un Arduino

Les appareils électroniques que vous construisez avec Arduino commencent à devenir très cool lorsque vous les connectez au réseau.

Voyons comment connecter un Arduino à un réseau WiFi.

L'Arduino doit avoir une connectivité WiFi, par exemple leArduino MKR WiFi 1010, qui est celui que j'utilise, ou leArduino Uno WiFi Rev2et d'autres.

Nous allons utiliser la bibliothèqueWiFiNINA. Cette bibliothèque est super pratique et nous permet de nous connecter à un réseau WiFi, mais aussi de créer un réseau WiFi si nous le voulons.

Démarrez votre esquisse Arduino en utilisant:

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

LeBibliothèque SPIest utilisé par la bibliothèque WiFiNINA, donc chargez-le également. SPI signifieInterface périphérique série

LeWiFiNINAla bibliothèque nous donne accès, entre autres, à laWiFiobjet que nous allons utiliser.

Maintenant, travaillons sur le corps dusetup()fonction, la seule fonction centrale Arduino que nous allons implémenter (nous laisseronsloop()vider).

void setup() {

}

Tout d'abord, nous allons définir 2 chaînes pour contenir le nom du réseau, le SSID et le mot de passe du réseau.

j'utiliseCréer Arduino, donc j'utilise juste des constantes que je remplirai séparément dans leSecretlanguette:

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

Ensuite, nous allons initialiser l'interface série pour communiquer les informations de l'Arduino à Arduino Create:

Serial.begin(9600);

Et nous attendons qu'il soit prêt en utilisant

while (!Serial);

Ensuite, nous mettons WiFi.begin () dans une boucle qui vérifie si sa valeur de retour estWL_CONNECTED, et continue de réessayer toutes les 2 secondes jusqu'à ce que ce soit:

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

Nous l'initialisons d'abord pourWL_IDLE_STATUS, une autre constante de WiFiNINA, mais nous pourrions également l'initialiser avec une chaîne vide.

Une fois que nous avons terminé cette boucle, nous sommes connectés et nous pouvons appeler leWiFi.localIP()méthode pour obtenir l'adresse IP de l'appareil et l'imprimer sur le numéro de série:

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

Voici le programme complet:

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

}

Vous avez désormais accès à d'autres informations, comme le SSID du réseau avecWiFi.SSID()et la force du signal en utilisantWiFi.RSSI():

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

À ce stade, vous êtes connecté et vous pouvez passer à d'autres tâches.

Remarque: une mise à niveau du micrologiciel NINA est peut-être disponible. Ajoutez ce chèque à votre programme:

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

pour savoir si c'est le cas. Si tel est le cas, à l'aide de l'IDE Arduino (je ne vois pas comment faire cela à partir d'Arduino Create) connectez-vous à la carte puis chargez l'exemple de croquisFile -> Examples -> WiFiNINA -> Tools -> FirmwareUpdater

Puis ouvrez leTools -> WiFi101 / WiFiNINA Firmware Updatermenu:

et appuyez sur leUpdate Firmwarebouton:


Plus de tutoriels d'électronique: