Ethical DIY

Progetti hardware & software etici


Menu orizzontale con sottomenu CSS








 


Versione di ESP32

NodeMCU ESP32 (standard)

ESP32 - Cam (con telecamera)

ESP32 CYD (con display)



La basetta sperimentale (BDS)

La basetta sperimentale (BDS)  per ESP32x

Download dei file necessari

Assemblare la basetta sperimentale

Il settaggio della basetta

La  piedinatura di ESP32 e la gestione delle porte (GPIOx)

Le cinque  configurazioni della basetta sperimentale (BDS)

Elenco dei sensori/attuatori testati per ogni slot di collegamento

Programmi di test per la basetta
didattica e sperimentale




Informazioni di base:

- Come installare la IDE di Arduino
- Configurazione della IDE 
- Caricamento dei programmi
- Il problema dei permessi sulle porte seriali con Linux
- Come caricare le librerie necessarie

I sensori/attuatori compatibili con ESP32



Programmi per ESP32x

Programmi di test per la BDS
Programmi con display LVGL
Stazioni meteorologiche
Programmi vari
Programmi con Telegram
Programmi con ThingSpeak
Programmi con il DB Firebase
Programmi con MQTT (Mosquitto)



Informazioni di base
per chi inizia con ESP32

In questa pagina troverai alcune informazioni utili per cominciare ad utilizzare un ESP01. In particolare:



Per chi inizia, tutto è un po' complesso: dove trovare e come utilizzare la IDE di Arduino, la configurazione delle schede, caricare le librerie...
In questo sito si parla principalmente dell'uso di alcune schede sperimentali, tuttavia non volevo ignorare del tutto l'argomento.
però, in pieno spirito open source e free software, perchè riscrivere informazioni che si possono facilmente reperire su internet, e scritte molto meglio di quello che potrei fare io?
Quindi, invece di fare una lunga (e probabilmente noiosa) esposizione, inserirò in questa pagina dei link che mi sono stati utili e che trovo tuttora preziosi.
I miei ringraziamenti e gratitudine a chi ha impegnato tempo ed energie per scriverli.



Come scaricare e installare la IDE di Arduino



La IDE di Arduino è il programma in cui si possono scrivere i programmi per tutti i tipi di Arduino (Uno, Nano, ecc), ma anche per tutte le schede ESP01, NodeCU ESP8266, ESP32 e molte altre.
Dopo aver scritto il programma è possibile compilarlo per il proprio tipo di microcontroller e verificare eventuali errori.
I programmi vengono scritti in un linguaggio C semplificato, che è un linguaggio ad alto livello, cioè può essere compreso da un essere umano. La compilazione lo trasforma in un linguaggio a basso livello, che verrà compreso da Arduino, ESPxxx, ecc.
Dopo la compilazione il programma compilato può essere trasferito al microcontroller ed eseguito.

Clicca qui per scaricare la IDE di Arduino nella versione 1.8.9 e/o nella versione 2.X.X








La configurazione della IDE di Arduino per ESP32



Per caricare un programma su di un ESP32 è necessario eseguire una piccola configurazione della IDE di Arduino, identica per entrambi i microcontroller.
Per prima cosa, aprire la IDE stessa, selezionare "file" e poi "preferences" ( se la IDE è in inglese) o file/preferenze in italiano.
.

Nota: l'immagine riguarda la IDE nella versione 1.8.19. Nel frattempo è stata rilasciata la versione 2.x.x. Se si desidera vedere le istruzioni per questa versione (comunque molto simile alla precedente versione), si possono reperire le informazioni (in inglese) presso il sito "randomnerdstutorial", al seguente link:
https://randomnerdtutorials.com/installing-esp32-arduino-ide-2-0/

pref



32

Quando si appre la finestra, Spostarsi su "Additionals Boards manager URLs/URL aggiuntive per il Gestore schede e inserire questo link: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json , che permette di gestire il chip 8266. e confermare con OK.

Nota: nel caso avessimo già inserito un'altra url, per esempio per la ESP8266, separarle da una virgola.



Aprire Tools/Boards/Boards Manager (Strumenti/Scheda/Gestore schede):
3



pr32

Nel campo di ricerca inserire "esp32".
Quando appare "esp32 by Espessif System" e premere su "Install".
Dopo pochi secondi la libreria verrà installata.



32dev
Per verificare se tutto è andato a buon fine, aprire la IDE di Arduino, cliccare su Tools/Board/Board Manager e selezionare "ESP32 Arduino"/ESP32 Dev Module"Strumenti/Scheda/Gestore schede/".



Si vedono le informazioni della scheda. In genere vanno bene i settaggi proposti.
Ricordarsi di selezionare pa porta di comunicazione: Con Linux in genere è "/dev/tty/USB0"; con Windows in genere è "COMx", dove "X" è il numero della porta seriale.

Siamo pronti per caricare su ESP32 il nostro primo programma!

usb



Il problema dei permessi sulle porte seriali con Linux



Un problema a volte frustrante che si riscontra caricando la IDE di Arduino su di una distribuzione GNU/Linux, è relativa ai permessi relativi all'uso delle porte seriali.
Si è appena installata la IDE di Arduino e si sono seguiti scrupolosamente tutti i passi indicati fin'ora, ma quando si cerca di caricare il programma sul microcontroller, appare un messaggio simile a questo: "porta seriale non trovata", "errore di caricamento", ecc.
Al di là dei problemi banali, ovvero cavo collegato male, oppure cavo USB adatto solo per caricare la batteria del cellulare, ecc., probabilmente non si hanno i permessi di utilizzo delle porte seriali.
Aprire un terminale (premere contemporaneamente i tasti CTRL + ALT + T):



tty

In questa schermata appare tutto ciò che si deve fare. Evidenziati in rosso appaiono i comandi inseriti; in verde le risposte del sistema.
  • Prima di tutto, richiedere l'elenco delle porte disponibili:
    ls /dev/tty*

    Non preoccuparsi se, come nel mio caso, ne appaiono tantissime: abitualmente le porte interessanti sono poche, ovvero: /dev/ttyUSB0, o un nome simile. In genere è utile eseguire il comando sia prima che dopo aver collegato il microcontroller: la porta che appare dopo il collegamento è quella che ci interessa.
  • digitare ls -l (la tua porta); Nel mio caso: ls -l/dev/ttyUSB0
    appare qualcosa di simile:  crw-rw---- 1 root dialout 188, 0 17 feb 16.49 /dev/ttyUSB0
    "dialout" è il nome del gruppo su cui dobbiamo ottenere i permessi,
  • Per cui digiteremo: sudo usermod -a -G dialout (il tuo nome utente).
    Nel mio caso:
    sudo usermod -a -G dialout ricx
  • Poichè ci siamo accreditati come superutente con il comando "sudo", verrà richiesto di inserire la parola d'ordine di root.
  • Fatto questo, se si sono dati tutti i comandi corretti, sul terminale apparirà semplicemente il prompt dei comandi. Uscire dal terminale, chiudere i programmi aperti e la sessione.
  • Riaprire la sessione. Questo è fondamentale. Fino a quando non si esca e rientri nella sessione, non si hanno ancora i permessi su dialout

Sembra tutto piuttosto complesso, ma per eseguire tutta la sequenza sono necessari pochissimi minuti.
Buon lavoro!








Il caricamento dei programmi



Dopo aver configurato la IDE di Arduino per ESP01,  si può caricare il primo programma che normalmente si usa: il famosissimo "blink": il programma che semplicemente fa lampeggiare il led interno e vedere se funziona.
Per caricarlo sulla IDE di Arduino:
file
    esempi
             01 basics
                         blink

Poi cliccare sul pulsante con la freccia verso destra per caricare il programma sul microcontroller.

Nota: se si usa ESP01, è necessario inserirlo nell'adattatore seriale che poi si connetterà via USB al personal computer. In questo caso, è necessario attivare il "programming mode", ponenendo in contatto GPIO0 e la massa prima di connettere l'adattatore al PC e tenendolo premuto poi per un paio di secondi.
Clicca qui per ulteriori informazioni.
Se invece usi la basetta sperimentale, clicca qui.

blink
Il programma è tutto compreso nel rettangolo...



loading
In caricamento...
Nella immagine di sinistra si vede il processo di caricamento dello sketch, mentre a destra esso è terminato. Eè sufficiente scollegare e ricollegare il microcontroller alla USB per vedere il led lampeggiare. Operazione compiuta! loaded
... caricamento terminato.



A questo punto, il nostro ESP01 è pronto per caricare e testare tutti i nostri progetti!







Il caricamento delle librerie necessarie



Nel caso non si sia ancora capaci a caricare una libreria, suggerisco di fare una ricerca su Internet, dove si trovano ottimi manuali/video per effettuare questa operazione.

Questo è il link “ufficiale” di Arduino. E’ in inglese, ma con il traduttore è comunque del tutto comprensibile: https://docs.arduino.cc/software/ide-v1/tutorials/installing-libraries

Una brevissima indicazioneper installare una libreria:
cliccare sulla linguetta "Sketch" e poi "˚includi libreria".
Si hanno due possibilità:

  • Gestione librerie (consigliato);
  • Aggiungi libreria da file ZIP...

Gestione librerie: si apre una nuova finestra in cui si può inserire il nome della libreria ricercata. Nella finestra inferiore appaiono i risultati. Nel caso la si trovi, cliccare su "Installa".

Aggiungi libreria da file ZIP...: se non si trova la libreria necessaria con il metodo precedente, allora la si può ricercare nel web e caricarla in una cartella del computer. Cliccando su questa opzione, si apre una finestra in cui inserire il percorso della libreria scaricata.


librerie

La finestra della IDE di Arduino per
la gestione delle librerie.
L'immagine è per la versione 1.8.19,
ma è analoga anche per la versione 2.x.x


Nota: spesso dalla pagina relativa ai programmi è presente
anche la possibilità di scaricare la libreria interessata.
Nel limite del possibile scaricarle direttamente dalla IDE
di Arduino,
perchè in questo modo si ottengono sempre le
librerie più aggiornate.







 La piedinatura di ESP32



A differenza di ESP01 (che ha un solo modello), di ESP8266 (che ha due modelli, con la stessa piedinatura ma con diversi ingombri laterali in base al chip di comunicazione), ESP32 può essere con 30, 36 o38 pin, con diversi ingombri laterali per gli stessi motivi. Esiste anche un modello con display LVGL integrato. Quindi la situazione è decisamente complessa. Con la BDS si possono gestire tre tipi di ESP32:
  • il modello a 30 pin con chip CH340C;
  • il modello a 38 pin con chip CP2101;
  • il modello con dislay integrato (ESP32 CYD).

Clicca qui per la pagina della piedinatura di ESP32.


30p









Per contatti: info@ethicaldiy.org