Progetto “aulapulita” su Wemos D1 ESP8266 – parte 3

di Marco Lombardi

Nel precedente articolo abbiamo visto come è diventato lo schema e la relativa lista dei componenti utilizzati dalla versione 0.2a di AULAPULITA. Adesso vediamo alcune caratteristiche e funzionalità del software.

Da oggi è infatti disponibile il codice sorgente di AULAPULITA 0.2a e due versioni di firmware compilate con limite CO2 impostato a 1000ppm o 1500ppm. Come per la prima versione di aulapulita una volta superata la soglia limite il buzzer emetterà un segnale acustico. La soglia limite può essere impostata caricando via OTA la versione di firmware corrispondente e in futuro direttamente dalla pagina web di configurazione.

Anche per i futuri aggiornamenti saranno resi disponibili i firmware già compilati caricabili in modalità OTA senza necessità di collegare la Wemos D1 ESP8266 al PC.

Questa versione di aulapulita sfrutta tutte le possibilità messe a disposizione dal modulo ESP8266 utilizzandolo contemporaneamente sia in modalità AP (access point) sia in modalità STA (station). Possiamo quindi collegarci direttamente al modulo ESP8266 da qualsiasi dispositivo munito di WiFi oppure configurarlo per collegarlo ad una qualsiasi rete WiFi, ad esempio quella di casa.

E’ importante però che il primo upload avvenga da PC, in maniera tradizionale, caricando via IDE il codice sorgente. Per volte successive potremmo caricare il firmware, con estensione “.bin”, attraverso il browser.

Una volta caricato il codice sorgente di AULAPULITA via IDE o il firmware via OTA una serie di messaggi compariranno sul monitor LCD. Vediamone la sequenza:

Il primo messaggio mostra la versione di AULAPULITA e il l’identificativo univoco del modulo ESP8266.

lcd-avvio

Se è la prima volta che avviamo AULAPULITA un messaggio ci avvertirà che il modulo ESP8266 sta tentando la connessione. Dopo il quinto tentativo il modulo ESP8266 continuerà nella sua procedura di boot.

lcd-attempt

Se vogliamo settare le impostazioni WiFi basterà premere due volte, consecutivamente, il tasto di reset. Il software tornerà a fare il boot e a questo punto avremo 180 secondi per collegraci al modulo ESP8266 e riconfigurare la rete.

lcd-WiFiManager

Per la configurazione della connessione WiFi ci collegheremo quindi alla rete aperta con nome ESPxxxxxx (dove le x indicano il chip ID visto in precedenza) per scegliere la rete WiFi a cui collegarci e inserire la password WEP-WPA.

Sotto lo screenshoot con l’elenco delle reti visto dal mio portatile e la pagina di configurazione raggiungibile all’indirizzo http://192.168.4.1 con l’elenco delle reti WiFi disponibili.

screenshoot-wifi

La libreria che implementa la funzione di salvataggio in memoria EEPROM delle impostazioni WiFi è la WiFiManager mentre quella per rilevazione del doppio reset è la DoubleResetDetector .

A questo punto possiamo scegliere se collegarci all’AP del modulo ESP8266, sempre disponibile attraverso la rete aperta avente per nome ESPxxxxxx (dove le xxxxxx indicano il chip ID visto in precedenza) all’indirizzo http://192.168.4.1 oppure se abbiamo configurato il modulo ESP8266 in modalità STA con la nostra WiFi possiamo collegarci attraverso l’indirizzo IP che comparirà sul monitor LCD durante la fase di avvio.

Le screenshoot che seguono mostrano come appare il messaggio di avvenuta connessione e l’indirizzo IP assegnato.

lcd-WiFi lcd-IP

Una volta completato il boot dal monito LCD vedremo in tempo reale i dati acquisiti e gli eventuali errori dei sensori.

lcd-log

Connetendoci al modulo ESP8266 attraverso l’interfaccia web si possono effettuare le seguenti operazioni:

  • Verifica dello stato dei sensori, informazioni relative al firmware e al limite CO2 impostato;
  • Verifica dei dati acquisiti in tempo reale con aggiornamento automatico della pagina;
  • Download dei file CSV da interfaccia web;
  • Aggiornamento del firmware direttamente da interfaccia web;
  • Configurazione della connessione di rete se connesso a rete WiFi.

Di seguito alcuni screenshoot dell’interfaccia web della versione 0.2a:

La pagina “Device status” ci fornisce informazioni sulla versione firmware, chip ID (che ci aiuta anche ad identificare il SSID del modulo ESP8266), la soglia limite di CO2 oltre il quale il buzzer ci avvertirà con un suono e infine lo stato dei sensori.webserver-status

 

La pagina “Current log” mostra in tempo reale i dati acquisiti e il refresh automatico della pagina offre la possibilità di visualizzarli con un intervallo di 5 secondi.
webserver-log

 

La pagina “Stored log files” mostra i file salvati sulla scheda di memoria, questi possono essere scaricati per essere consultati comodamente sul proprio pc.webserver-files

 

La pagina “Update board” permette invece di caricare, senza collegare la Wemos al PC, nuovi firmware. webserver-upgrade

 

La pagina “Network setup” mostra nella prima voce il SSID a cui siamo connessi, l’indirizzo MAC del modulo ESP8266, di seguito troviamo tutti i parametri liberamente modificabili relativi alla configurazione della connessione alla rete: IP, SUBNET e GW. La pagina di configurazione prende esempio dal progetto Embedded Ethernet Setup Webpage using EEPROM.

webserver-setup

I prossimi aggiornamenti del software potranno prevedere l’implementazione tra le altre cose di un sistema client/server di tipo MQTT con server su Raspberry PI B così da gestire automaticamente il download da ogni nodo aulapulita della rete di rilevazione e la relativa elaborazione grafica.


Nota alla versione 0.2a: il codice sorgente conta un migliaio righe di codice ovvero quasi il doppio della versione 0.1a. La differenza sostanziale è data dalla quantità di codice necessaria alle funzionalità di rete fin quì esposte. Per chi vorrà cimentarsi con la costruzione della centralina usando un codice “semplice” consiglio la versione 0.1a pubblicata su GitHub ad agosto 2016.

4 Commenti

  1. Felice Mizzoni

    Ciao Marco, ottimo lavoro.
    Credo che tu abbia toccato tutti i possibili requisiti che il progetto “aula pulita” possa richiedere.
    Potresti anche pubblicare uno schema del CSV che presenta la pagina log così da vedere la fruibilità delle informazioni memorizzate? grazie.
    Complimenti, chiaro ed esaustivo.

    Risposta
  2. Paolo Scattoni

    Che cos’è il CSV. Per noi ignoranti gli acronimi sono inaccessibili 🙁

    Risposta
  3. Enzo Sorbera

    Stai andando come un treno! Complimenti. Mi associo alla richiesta di Felice: lo schema del csv (comma separated values: files di testo per la raccolta di informazioni strutturate in record – la riga -, e in campi – le informazioni separate da virgola o punto e virgola o tab -) potrebbe essere utile per capire come aggregare /riorganizzare le informazioni.
    Appena mi sarà possibile, darò uno sguardo al codice.
    A presto

    Risposta
  4. Marco Lombardi

    Lo schema del CSV si presenta così come segue: 28,66,495,2017/10/13,00:00:02

    Dove il primo dato è la temperatura, il secondo l’umidità relativa, il terzo il valore di CO2, il quarto la data di acquisizione e il quinto è l’orario.

    Il formato del CSV è lo stesso implementato nel codice 0.1a con la differenza che nella 0.2a è disponibile anche in rete 🙂

    Risposta

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *