Come creare un progetto per NodeMCU ESP8266 con PlatformIO

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.

Ecco come si mostra la pagina principale di PlatformIO
Ecco come si mostra la pagina principale di PlatformIO

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.

Finestra di creazione del nuovo progetto e definizione della piattaforma
Finestra di creazione del nuovo progetto e definizione della piattaforma

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:

La finestra "Project Wizard" con tutti i campi compilati
La finestra “Project Wizard” con tutti i campi compilati

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.

La struttura del progetto (sul lato sinistro dell'IDE)
La struttura del progetto (sul lato sinistro dell’IDE)

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 main.cpp appena creato
Il file main.cpp appena creato

Il file platformio.ini appena creato contiene le impostazioni di base del progetto:

Il file platformio.ini appena creato
Il file platformio.ini appena creato

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:

L'icona di PlatformIO
L’icona di PlatformIO

Si aprirà la pagina principale di PlatformIO. Andiamo sul lato sinistro, ci interessa la sezione QUICK ACCESS:

Il menu PlatformIO QUICK ACCESS
Il menu PlatformIO QUICK ACCESS

Clicchiamo alla voce Libraries, si aprirà la pagina PIO Home:

La pagina PIO Home
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:

La finestra dei risultati
La finestra dei risultati

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:

La pagina principale della libreria
La pagina principale della libreria

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:

Il popup di scelta del progetto
Il popup di scelta del progetto

PlatformIO aggiungerà la libreria e le sue eventuali dipendenze al progetto.

Controlliamo il file platformio.ini di nuovo per vedere cosa è successo:

La libreria DHT22 aggiunta al file platformio.ini
La libreria DHT22 aggiunta al file platformio.ini

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):

I risultati della ricerca
I risultati della ricerca

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:

La libreria WiFiManager aggiunta al file platformio.ini
La libreria WiFiManager aggiunta al 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:

I risultati della ricerca
I risultati della ricerca

Dopo aver aggiunto la libreria al progetto, ricontrolliamo il file platformio.ini:

La libreria UniversalTelegramBot aggiunta al file platformio.ini
La libreria UniversalTelegramBot aggiunta al 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:

Le librerie incluse nel nostro progetto
Le librerie incluse nel nostro progetto

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:

Posizione della libreria scaricate
Posizione della libreria scaricate

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:

La libreria ArduinoJson inclusa nel nostro progetto
La libreria ArduinoJson inclusa nel nostro progetto

Dal link seguente potrai scaricare un esempio del progetto che abbiamo appena creato:

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.

Inserisci il tuo nome
Inserisci la tua email
Torna in alto