Connectez-vous au réseau WiFi le plus fort dans ESPTOP 10 en utilisant la fonction WiFimulti

Connectez-vous au réseau WiFi le plus fort dans ESPTOP 10 en utilisant la fonction WiFimulti
ESP32 est une carte de microcontrôleur basée sur l'IoT ayant un support WiFi et Bluetooth. ESP32 peut fonctionner dans trois modes WiFi différents (station, accès, ou les deux). En utilisant tous ces modes ESP32 peut améliorer sa connectivité sans fil par de nombreux plis. Aujourd'hui, nous discuterons du support multi-wifi dans ESP32 pour nous connecter au réseau le plus fort disponible.

ESP32 avec fonction wifimulti

ESP32 peut se connecter à plusieurs réseaux si nous avons accès à plus d'un réseau, nous avons juste besoin de définir leur SSID et leur mot de passe dans le code. Il recherchera le réseau disponible et se connectera au réseau Wi-Fi le plus fort que nous définissons dans le code.

Note: N'oubliez pas qu'il se connectera à un réseau à la fois si la connexion à ce réseau est perdue, ESP32 se connectera à d'autres réseaux WiFi disponibles.

Nous pouvons ouvrir un exemple de wifimulti dans Arduino IDE:

Aller à: Fichier> Exemples> WiFi> WiFimulti

Comment ajouter plusieurs réseaux WiFi dans ESP32

Pour ajouter plusieurs réseaux WiFi dans la carte ESP32. Nous utiliserons le Wifimulti fonction avec addap (). La fonction addap () peut accepter plusieurs ssids et mots de passe comme argument. Pour ajouter plusieurs réseaux, leur SSID et leurs mots de passe doivent être définis séparément. Voici la syntaxe pour ajouter plus d'un réseau en utilisant Wifimulti fonction avec addap ():

wifimulti.addAP ("SSID Network1", "Password1");
wifimulti.addAP ("SSID Network2", "Password2");
wifimulti.addAP ("SSID Network3", "Password3");

Comment se connecter au réseau WiFi le plus fort dans ESP32

Pour connecter ESP32 avec le réseau le plus fort disponible, nous combinerons la numérisation WiFi ESP32 et le wifi multi-exemple. Nous rédigerons un code dans Arduino IDE qui fera les étapes suivantes:

  • SCAR pour les réseaux disponibles
  • Imprimez leur RSSI (force du signal) sur le moniteur en série. Ainsi, nous pouvons vérifier le réseau le plus fort disponible
  • Se connecte automatiquement au réseau le plus fort
  • S'il perd la connexion, il se connectera automatiquement au prochain réseau le plus fort disponible

Pour tester le code, nous utiliserons un Téléphone intelligent Hotspot et un réseau WiFi. Attribuez toujours un nom simple au réseau de hotspot mobile pour éviter toute erreur.

Maintenant téléchargez le code donné dans la carte ESP32 à l'aide d'Arduino IDE.

Code

Open Arduino IDE et téléchargez du code dans ESP32. N'oubliez pas de sélectionner le port com.

#include / * bibliothèque wifi incluse * /
#include / * bibliothèque multi-wifi incluse * /
Wifimulti wifimulti;
/ * Par temps de connexion AP. Augmenter lorsque ESP32 prend plus de temps pour la connexion * /
const uint32_t connectTimeoutms = 10000;
void setup()
En série.commencer (115200); / * La communication série commence * /
retard (10);
Wifi.mode (wifi_sta); / * ESP32 WiFi initialisé comme station * /
/ * Tapez tous les SSID connus et leurs mots de passe * /
wifimulti.addap ("votre SSID", "mot de passe"); / * Réseau 1 Nous voulons connecter * /
wifimulti.addap ("téléphone"); / * Réseau 2 Nous voulons connecter * /
// Wifi.scannetworks donnera un réseaux total
int n = wifi.scannetworks (); / * Scanner le réseau disponible * /
En série.println ("scan fait");
if (n == 0)
En série.println ("Pas de réseaux disponibles"); / * Imprime si aucun réseau trouvé * /

autre
En série.imprimer (n);
En série.println ("réseaux trouvés"); / * Imprime si le réseau trouvé * /
pour (int i = 0; i < n; ++i)
En série.imprimer (i + 1); / * Imprimez le SSID et le RSSI du réseau disponible * /
En série.imprimer(": ");
En série.imprimer (wifi.Ssid (i));
En série.imprimer(" (");
En série.imprimer (wifi.RSSI (i));
En série.imprimer(")");
En série.println ((wifi.EncryptionType (i) == wifi_auth_open)?"": "*");
retard (10);


/ * Se connecte au réseau défini le plus fort avec SSID et le mot de passe disponible * /
En série.println ("Connexion au WiFi…");
if (wifimulti.run () == wl_connected)
En série.println ("");
En série.println ("connecté au réseau WiFi");
En série.println ("Adresse IP du réseau connecté:");
En série.println (wifi.localip ()); / * Imprime l'adresse IP du réseau connecté * /


VOID LOOP ()
if (wifimulti.run (connectTimeoutms) == wl_connected) / * Si la connexion perdue, elle se connectera au prochain réseau * /
En série.print ("WiFi Connected:");
En série.imprimer (wifi.SSID ());
En série.imprimer(" ");
En série.println (wifi.RSSI ());

autre
En série.println ("wifi non connecté!"); / * Si toutes les conditions échouent imprimez ce * /

retard (1000);

Le code a commencé par définir les bibliothèques WiFi pour ESP32, puis nous avons créé un Wifimulti objet. Ensuite, dans la partie de configuration, nous avons ajouté deux réseaux. L'un est un réseau WiFi qui est crypté de mot de passe, nous devons donc fournir un mot de passe tandis que le deuxième réseau qui est un hotspot pour smartphone est ouvert, nous n'avons donc pas besoin de mot de passe qui vient de taper le réseau SSID.

Ensuite, en utilisant wifimulti.courir() Command ESP32 se connectera au réseau le plus fort disponible. Une fois le WiFi, le code connecté imprimera le réseau connecté SSID, l'adresse IP et le RSSI.

Sortir

Après avoir téléchargé le code sur ESP32 d'abord, il évaluera le réseau disponible, il se connectera au réseau disponible le plus fort. Ici, nous pouvons voir la valeur RSSI pour chaque réseau, un RSSI inférieur signifie plus fort est le réseau.

Nous pouvons voir que ESP32 est connecté au réseau téléphonique Parce qu'il a un RSSI valeur de -62 et l'autre réseau dont le SSID et le mot de passe sont définis est Équipe Sam dont la valeur est -73. Ici, le réseau mobile Hotspot a une valeur RSSI plus proche de zéro signifie une connexion plus forte.

Débranchez maintenant le hotspot du smartphone. ESP32 se connectera à d'autres réseaux disponibles plus forts. Comme dans la sortie, nous pouvons voir ESP32 est désormais connecté au prochain réseau disponible le plus fort. Le réseau auquel il est connecté est l'équipe Sam ayant une valeur RSSI 0f -65.

Conclusion

ESP32 peut se connecter au réseau le plus fort disponible dans son cercle. Nous avons juste besoin de définir plusieurs réseaux SSID et mot de passe dans le code. En utilisant le Wifimulti La fonction ESP32 scrutra les réseaux disponibles et lorsque la connexion est perdue, il se connectera à d'autres réseaux disponibles dans la gamme ESP32.