Creazione del progetto con PlatformIO
Oggi vogliamo vedere come creare un nuovo progetto per la scheda NodeMCU ESP8266 usando l’IDE PlatformIO e come aggiungere delle librerie esterne al progetto.
Nota Bene: il sistema operativo utilizzato qui è una distribuzione Linux (in particolare la Fedora 36). Quindi la struttura delle cartelle del progetto segue quella tipica di Linux.
PlatformIO è un IDE che consente di scrivere, compilare e testare codice in maniera professionale e caricarlo in vari tipi di schede (come Arduino, ESP8266, ESP32 e così via). È molto utile e versatile in quanto è cross-platform. Infatti può essere usato su Windows, Linux e Mac.
Prima di tutto dobbiamo premere il pulsante “+ New Project” per accedere al wizard di creazione di un nuovo progetto. Si aprirà la finestra di creazione di un nuovo progetto.
A questo punto dobbiame definire il Name del progetto, la Board che intendiamo usare, il Framework su cui il progetto è basato e la Location, cioè la cartella di destinazione, del progetto (la Location di default, su Linux, è la cartella “~Documents/PlatformIO/Projects”).
Ho scelto, come parametro Name, “new_esp8266_platformio_project”, NodeMCU 1.0 come Board e Arduino come Framework, come visibile nell’immagine seguente:
Ora clicca il pulsante “Finish” e il progetto verrà creato.
La struttura del progetto include varie cartelle e file, il particolare le cartelle:
- src dove viene creato il file main.cpp file che conterrà il codice che scriveremo
- include che contiene tutti gli header files (.h) creati da noi
e il file platformio.ini che contiene le impostazioni del progetto.
Il file main.cpp ha la solita struttura composta dalle due funzioni setup e loop (come accade anche nell’IDE ufficiale di Arduino):
Il file platformio.ini appena creato contiene le impostazioni di base del progetto:
Come aggiungere le librerie al progetto
Aggiungere delle librerie al progetto è un’operazione abbastanza semplice. Supponiamo di voler aggiungere le librerie DHT sensor library for ESP (che viene usata per leggere i dati trasmessi da un sensore di temperatura e umidità come il DHT22), WiFiManager (usata per gestire la connessione ad Internet tramite WiFi) e UniversalTelegramBot (usata per interfacciare il nostro progetto con i bot di Telegram). Per prima cosa andiamo sulla colonna sinistra dell’IDE e clicchiamo sull’icona di PlatformIO:
Si aprirà la pagina principale di PlatformIO. Andiamo sul lato sinistro, ci interessa la sezione QUICK ACCESS:
Clicchiamo alla voce Libraries, si aprirà la pagina PIO Home:
Digita DHT22 nella pagina di ricerca delle librerie. Appariranno vari risultati. Scegliamo la libreria DHT sensor library for ESPx by Bernd Giesecke:
Si aprirà la pagina della libreria selezionata. Questa pagina contiene varie informazioni sulla libreria, incluso anche un utile esempio di utilizzo. Ora clicca il pulsante Add to Project:
Si aprirà un popup che ci chiederà, tramite un menu a tendina, di scegliere il progetto in cui vogliamo aggiungere la libreria. Scegliamo il nostro progetto e clicchiamo il pulsante Add:
PlatformIO aggiungerà la libreria e le sue eventuali dipendenze al progetto.
Controlliamo il file platformio.ini di nuovo per vedere cosa è successo:
Come possiamo vedere dall’immagine precedente, la libreria è stata aggiunta al file platformio.ini. La procedura per installare le altre due librerie (WiFiManager e UniversalTelegramBot) è la stessa.
Torniamo ora al menu QUICK ACCESS e clicchiamo la voce Libraries. Digitiamo WiFiManager nella finestra di ricerca. Otterremo i seguenti risultati (o simili):
Siamo interessati alla libreria WiFiManager by tzapu. Selezioniamola e clicchiamo il pulsante Add to Project nella pagina seguente. Nel popup che apparirà, selezioniamo il nostro progetto. La libreria e le sue dipendenze verranno aggiunte al progetto come mostrato nel file platformio.ini:
Per installare la libreria UniversalTelegramBot dobbiamo rifare gli stessi passi seguiti per installare le precedenti librerie. Nella finestra dei risultati della ricerca scegliamo la voce UniversalTelegramBot by Brian Lough:
Dopo aver aggiunto la libreria al progetto, ricontrolliamo il file platformio.ini:
Il file mostra le tre librerie esterne aggiunte al progtto.
Possiamo utilizzare queste librerie nel nosto progetto semplicemente includendole nel file main.cpp:
Abbiamo visto l’elenco delle librerie aggiunte al progetto, nel file platformio.ini. Ma dove si trovano fisicamente? Dove sono state scaricate dall’IDE? Se apriamo la cartella del progetto (che ho chiamato new_esp8266_platformio_project) e andiamo nella cartella .pio/libdeps/nodemcuv2/ vediamo che le librerie sono state salvate qui, come mostrato dalla immagine seguente:
Inoltre, ogni cartella contiene degli utili esempi di utilizzo delle librerie.
Noterai che è stata scaricata anche la libreria ArduinoJson perché è una dipendenza della libreria UniversalTelegramBot. Quindi, per poter usare la libreria UniversalTelegramBot nel nostro progetto, dobbiamo includere la libreria ArduinoJson in questo modo:
Dal link seguente potrai scaricare un esempio del progetto che abbiamo appena creato:
new esp8266 platformio project
Newsletter
Se vuoi essere aggiornato sui nuovi articoli, iscriviti alla newsletter. Prima dell’iscrizione alla newsletter leggi la pagina Privacy Policy (UE)
Se ti vuoi disiscrivere dalla newsletter clicca sul link che troverai nella mail della newsletter.