
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. 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:
- Assegna alla variabile "numero_reti" il numero delle reti WiFi rilevate dalla potente funzione WiFi.scanNetworks(). Tale informazione è visualizzata sul monitor seriale;
- Tramite un ciclo iterativo, realizzato con la variabile "k" da 0 al numero di reti meno 1, sono visualizzati, sempre sul monitor seriale, gli elementi del vettore WiFi.SSID(k), che contiene i nomi delle reti WiFi trovate, e del vettore WiFi.RSSI(k), che contiene le relative forze del segnale ricevuto, espresse in dBm. Il lettore presti molta attenzione proprio su questo ciclo di loop.
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.
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:
- L'utente potrebbe realizzare un sistema per controllare quale rete WiFi sia la più presente e attiva in un certo intervallo di tempo. Per raggiungere lo scopo è sufficiente contare il numero di volte in cui essa sia presente nell'elenco;
- Un'altra idea da realizzare potrebbe essere quella che visualizza, ad esempio nell'arco di una settimana, quale sia stata la rete WiFi più potente;
- Ancora, si potrebbe costruire un prototipo che emetta un suono di allarme (collegato ad una porta di uscita digitale) qualora una determinata rete WiFi venisse rilevata da nostro ESPertino;
- Si potrebbe registrare il numero più alto di reti WiFi della zona) nell'arco di un anno;
- I dati raccolti nel monitor seriale si potrebbero collezionare in un grosso file di testo. Con un programma di Database, poi, si potrebbero "tirare fuori" le più disparate interrogazioni statistiche;
- Con i dati raccolti si potrebbero disegnare diversi tipi di grafici su qualunque parametro che interessi, come mostrato in figura 2;
- E altre infinite idee.
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.

qui per come avere ESPertino gratis! http://it.emcelettronica.com/espertino-la-nuova-scheda-per-liot-in-omaggio-ai-nuovi-abbonati
Tutti i telefoni cellulari e gli smarthphone sanno automaticamente ottenere l’elenco delle reti WiFi intorno ad essi. Ma il fatto di poter gestire tale elenco, di visualizzare solo le reti desiderate secondo diversi criteri, l’emettere una nota acustica in caso di collegamento di una determinata rete, il contabilizzare l’attività di un ponte WiFi, eccetera sono davvero grandi occasioni per realizzare progetti personalizzati e altamente professionali.