- Elettronica Open Source - https://it.emcelettronica.com -

Quante reti Wi-Fi ci sono intorno a noi e che potenza di segnale hanno?

Questa utile e interessante applicazione consente di conoscere la potenza di segnale ed elencare le reti WiFi presenti intorno ad ESPertino ma, soprattutto, di apprendere quanto più possibile l'utilità di alcune funzioni adibite alla gestione completa del modulo wireless della nostra scheda. Questa pillola informativa è il punto di partenza per la realizzazione di applicazioni di monitoraggio e controllo dei collegamenti informatici in aria libera presenti intorno a noi.

Introduzione

Realizziamo, questa volta, una utile applicazione che sembra essere fatta apposta per ESPertino [1]. Si tratta di un monitor di reti WiFi, ossia una sorta di sistema di visualizzazione dei collegamenti wireless che sono presenti, in un dato momento, attorno al nostro ESPertino. Uno sketch piccolo piccolo, appositamente creato per lo scopo, provvede a "raccogliere" tutti i segnali WiFi adiacenti, per poi visualizzarli sul monitor seriale dell'IDE di Arduino.

Nessun collegamento o cablaggio devono essere effettuati sulla scheda. Sarà lo stesso unico modulo WiFi dell'ESP-32 a sovrintendere a tutte le operazioni di monitoraggio.

Passiamo subito alla descrizione dello sketch, veramente molto corto e semplice, proposto qui sotto nella sua integrità:

 

//--------------------------------------------
//        Monitoraggio delle reti WiFI
//          by Giovanni Di Maria
//--------------------------------------------
#include <WiFi.h>
void setup() {
   Serial.begin(9600);
}
void loop() {
   byte numero_reti = WiFi.scanNetworks(); // Conta reti WiFi
   Serial.print("Le reti Intorno a te sono: ");
   Serial.println(numero_reti);
   Serial.println(); 
   for (int k = 0; k < numero_reti ; k++) {
       Serial.print(k);
       Serial.print(") "); 
       Serial.print(WiFi.SSID(k));   // Visualizza il nome della rete
       String cSpazi="                                   ";
       Serial.print(cSpazi.substring(1, 35-(WiFi.SSID(k).length())));  // Visualizza tutte le informazioni allineate, con una stringa di spazi variabile
       Serial.print("Segnale: ");
       Serial.print(WiFi.RSSI(k));   // Visualizza la potenza della rete
       Serial.println(" dBm");
   }
   Serial.println("=============================================================");       
   delay(10000);
}

 

Il listato inizia con l'importante inclusione del file "WiFi.h". Si procede, quindi, all'impostazione della velocità della porta seriale, usata qui solamente come mezzo di messaggistica rivolto all'utente finale, all'interno nella funzione setup(). La funzione loop(), molto più importante ed eseguita ciclicamente all'infinito, esegue i seguenti passi:

La scansione "dell'etere" si ripete ogni 10 secondi, ma tale valore può essere modificato, secondo le proprie esigenze.

Il programma parte subito, dopo aver programmato ESPertino. Le informazioni visualizzate sul monitor seriale sono visibili in figura 1. Si noti il numero di reti WiFi trovate (posto in alto), l'elenco progressivo di tali reti (a sinistra) e l'elenco delle relative potenze del segnale (a destra). Si noti, altresì, che l'ordine dell'elenco è stabilito in base alla stazione più potente a quella meno potente. Il tutto in maniera automatica.

Figura 1: il sistema di monitoraggio reti WiFi durante il suo funzionamento [2]

Figura 1: il sistema di monitoraggio reti WiFi durante il suo funzionamento

Idee di applicazioni

Con questo progetto minimale sorgono spontaneamente tanti utilizzi alternativi al fine della realizzazione di applicazioni più disparate, magari estremamente utili. Elenchiamo qualche spunto:

Figura 2: un grafico riportante la registrazione delle potenze medie di varie reti WiFi [5]

Figura 2: un grafico riportante la registrazione delle potenze medie di varie reti WiFi

Conclusioni

Come si è notato all'interno dello sketch non è stato necessario collegare ESPertino al proprio Router WiFi di  casa propria, con delle credenziali, dal momento che non si devono effettuare transazioni di dati. L'oggetto WiFi, infatti, deve solo interrogare "l'etere" al fine di carpire e di "catturare" tutti i segnali in radio frequenza in zona.

Questo interessante progetto costituisce la base iniziale da cui partire per realizzare sistemi più complessi ed importanti, magari a corredo di altre realizzazioni con ESPertino.

Per concludere, tale programma mi è stato particolarmente utile per  posizionare al meglio il router WiFi di casa mia (visualizzato quasi sempre al primo posto, per via del potentissimo segnale) e la sua relativa antenna, al fine di poter ottenere la più elevata potenza di emissione e coprire una maggiore distanza, questo grazie alla possibilità di osservare, in tempo reale, la qualità del segnale.