Abbonati ora!

ESPertino e la domotica OpenSource: Switch a doppia uscita – Sviluppo firmware

Nella prima lezione è stata fatta una panoramica sul mondo della domotica mettendo in evidenza i principali problemi e ostacoli. Nella seconda lezione invece si è entrati nel dettaglio del codice analizzando solo la parte che interessa la GUI del sistema; quest'ultima è stata realizzata attraverso una pagina web costituita da codice HTML, da fogli di stile e da codice JavaScript.

IMPLEMENTAZIONE FIRMWARE

Prima di addentrarci nell'analisi del firmware è doveroso precisare che, per poter compilare ed eseguire codice per ESPertino, occorre seguire tutte le istruzioni per l'installazione delle librerie e dell'IDE ben spiegate nell'articolo "La nuova scheda ESPertino per l''IoT"; in questo articolo l'IDE suggerito è quello di Arduino.

Seppur alle volte criticato e non da tutti ben accettato, ho scelto comunque di utilizzare l'IDE di Arduino (Figura 1) per dare la possibilità sia agli esperti sia ai neofiti, di poter implementare il progetto in questione. Per chi ha una certa esperienza nel mondo della programmazione Embedded ma è la prima volta che approccia con l'IDE di Arduino, occorre fare alcune precisazioni che gli consentiranno di superare alcune problematiche tipiche: innanzitutto i file di Arduino (e in questo caso di ESPertino), vengono detti sketch ed hanno estensione ".ino", non esiste un file di progetto ma è lo stesso file ".ino" a dare il nome e le relative proprietà al progetto e tutti i file che si vogliono includere nel codice devono stare nella stessa directory del file ".ino".

Figura 1 - IDE Arduino

Figura 1: IDE Arduino

Ora che si hanno un po' di informazioni per poter iniziare a sviluppare su IDE Arduino, possiamo procedere con la descrizione del codice. Innanzitutto i file che compongono l'intero progetto possono essere divisi in tre gruppi:

  • file di dati
  • file di librerie
  • file sketch

Dei primi fanno parte i file "info.json", "info.h", "webpage.html" e "webpage.h"; in realtà gli unici due file utili alla compilazione del codice sono "info.h" e "webpage.h" che sono a tutti gli effetti i file "info.json" e "webpage.html", convertiti in un vettore di byte tramite il software  bin2h. I file di librerie sono invece funzioni in C++ contenute nei file "libESPdom.h" e "libESPdom.c"; queste sono state realizzate allo scopo di facilitare alcune operazioni generiche che vengono eseguite nel codice e che vedremo nel dettaglio più avanti. Il file sketch è, come detto precedentemente, il file principale di progetto che realizza la parte di inizializzazione (contenuta nella funzione void setup() ) e la parte di esecuzione principale del codice (contenuta nella funzione void loop() ). Ovviamente oltre a queste due parti, tipiche di un progetto di Arduino, sono state implementare nello sketch una serie di altre routine utili per l'implementazione di alcune funzionalità; anche queste verranno approfondite in seguito.

FILE DI DATI

Per quanto riguarda i file di dati "info.json" e "webpage.html" (convertiti rispettivamente in "info.h" e "webpage.h" in modo da essere inclusi nel codice), non verrà fatta una trattazione approfondita in quanto sono già stati trattati nella prima e nella seconda parte dell'articolo; mi limiterò semplicemente a ripetere che il primo è un file utile a descrivere il dispositivo e che contiene, oltre che una descrizione [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2753 parole ed è riservato agli abbonati MAKER. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici MAKER e potrai fare il download (PDF) dell'EOS-Book del mese. ABBONATI ORA, è semplice e sicuro.

Abbonati alle riviste di elettronica

11 Commenti

  1. johnnyghio 19 giugno 2018
  2. Luca Giuliodori Luca Giuliodori 19 giugno 2018
  3. match 27 giugno 2018
    • Luca Giuliodori Luca Giuliodori 28 giugno 2018
      • match 28 giugno 2018
        • match 28 giugno 2018
          • Luca Giuliodori Luca Giuliodori 1 luglio 2018
  4. Lore.PRO 2 luglio 2018
    • Luca Giuliodori Luca Giuliodori 3 luglio 2018
      • Lore.PRO 3 luglio 2018

Scrivi un commento

EOS-Academy