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)
Programmi con LittleFS




Link per ESPxxx









 















ESP32x: zoccoli disponibili e sensori/attuatori testati




Ci sono tantissime periferiche che possono essere associate agli ESP32x.  Daremo un breve elenco di quelle che sono state direttamente testate. Naturalmente ce ne sono tante altre che potranno essere utilizzate.
Con un uso oculato degli zoccoli disponibili e della possibilità di variare alcune porte, si potranno uutilizzare  molte periferiche insieme, dando vita a programmi sperimentali e didattici vari, e anche complessi, che successivamente potranno essere riprodotti su circuiti spampati (pcb) ad hoc.
Per prima cosa possiamo dare un'occhiata alle porte disponibili ed eventuali problemi dovuti a sovrapposizioni e conflitti:



tabellaEcco la tabella con la sua legenda.

Una breve spiegazione dei colori relative alle varie celle:
  • Colore rosa: (GPIO0): disponibile solo per ESP32S (38 pin);
  • colore ocra: (GPIO21/22/26/27/35): uniche porte disponibili per ESP32 CYD (con display integrato);
  • colore viola: (GPIO34/35/36/39): sono porte solo in ingresso (Input);
  • colore verde: sono porte che possono essere usate in alternativa. Per esempio sullo zoccolo I2C4 si potrà usare in altenativa GPIO21 o GPIO27.

Clicca qui per scaricare il file in formato  ".ods"
Clicca qui per scaricare il file in formato ".pdf"








Le periferiche per i vari zoccoli





Clicca qui per scaricare il file in formato ".ods".
Clicca qui per scaricare il file in formato ".pdf".



Ecco la lista degli zoccoli disponibili:

I2C1
I2C3
RFID1
MT1
GPS1
AD1/A
BZ1
DA2
DA4
SWITCH
DATA
ESPx2


I2C2
I2C4
SV1
TRM1
GPS2
AD1/B
DA1
DA3
RELAY/LED
DISPLAY LVGL
ESPx1
                                                                

Nota
: per ogni zoccolo viene qui fornita una descrizione sintetica. Se si desiderano informazioni più approfondite, in calce a ogni tabella è fornito un link per ottenere informazioni più dettagliate.







Lo zoccolo I2C1



I2C1 è stato studiato specificamente per alcuni display OLED che utilizzano il protocollo I2C.
Le periferiche I2C hanno la particolarità di poter essere collegati in serie sulle medesime porte, purché abbiano indirizzi interni diversi. Può essere utilizzato anche per un sensore KY-039 o un KY-027, che però non sono compatibili con I2C, per cui vanno in conflitto con eventuali periferiche poste su I2C2, I2C3 e I2C4.
Può essere usato per moduli con due porte digitali (eventualmente con una porta digitale e una analogica se settato su GPIO27)



i2c1

Clicca qui per maggiori informazioni su I2C1.







Lo zoccolo I2C2



I2C2 è stato studiato specificamente per periferiche che utilizzano il protocollo I2C.
Le periferiche I2C hanno la particolarità di poter essere collegati in serie sulle medesime porte, purché abbiano indirizzi interni diversi.
Come si vede, su questo zoccolo si possono collegare anche altre periferiche,
che però non sono compatibili con I2C, per cui vanno in conflitto con eventuali periferiche poste su I2C1, I2C3 e I2C4.
Può essere usato per moduli con due porte digitali (eventualmente con una porta digitale e una analogica se settato su GPIO27)



i2c2

Clicca qui per maggiori informazioni su I2C2.







Lo zoccolo I2C3



I2C3 è stato studiato specificamente per periferiche che utilizzano il protocollo I2C.
Le periferiche I2C hanno la particolarità di poter essere collegati in serie sulle medesime porte, purché abbiano indirizzi interni diversi.
Come si vede, su questo zoccolo si possono collegare anche altre periferiche,
che però non sono compatibili con I2C, per cui vanno in conflitto con eventuali periferiche poste su I2C1, I2C2 e I2C4.
Può essere usato per moduli con due porte digitali (eventualmente con una porta digitale e una analogica se settato su GPIO27)



i2c3

Clicca qui per maggiori informazioni su I2C3.







Lo zoccolo I2C4



I2C4 è stato studiato specificamente per periferiche che utilizzano il protocollo I2C.
Le periferiche I2C hanno la particolarità di poter essere collegati in serie sulle medesime porte, purché abbiano indirizzi interni diversi.
Come si vede, su questo zoccolo si possono collegare anche altre periferiche,
che però non sono compatibili con I2C, per cui vanno in conflitto con eventuali periferiche poste su I2C1, I2C2 e I2C3.
Questo zoccolo ha tre particolarità importanti:
  • è possibile variare l'ordine dei pin, per adattarsi a un gran numero di periferiche;
  • rispetto a I2C1, I2C2, I2C3, oltre alle "solite" due porte relative al protocollo I2C, dispone di una ulteriore porta (con ESP32 a 30 pin), o di due porte aggiuntive nel caso si usi un ESP32 a 38 pin.
  • può alimentare periferiche a +3,3v o a +5v.

Pertanto è possibile utilizzarlo per un gran numero di periferiche, anche non inserite in questa tabella.
Può essere utilizzato per moduli con fino a 4 porte digitali e in alternativa anche con due porte analogiche (GPIO0 e GPIO27 con ESP32 a 38 pin); con anche una porta analogica se ESP32 a 30 pin (GPIO27).




i2c4

Clicca qui per maggiori informazioni su I2C4.







Lo zoccolo RFID1



Lo zoccolo RFID1 è stato progettato principalmente per accogliere un lettore di schede RFID RC522, ma può ospitare altre periferiche che utilizzino il protocollo SPI (facendo attenzione all'ordine dei piedini), ma aanche per tante periferiche (come un led a tre colori KY-016 o KY-009, usando una corretta programmazione.
Come sempre, con un pò di inventiva si possono gestire tantissime periferiche!
Può gestire moduli con fino a 5 porte digitali se si usa ESP32 a 30 pin; fino a 6 porte digitali con ESP32 a 38 pin.
Una porta (GPIO4 può essre convertita in analogico con ESP32 a 30 pin; due porte (GPIO4 e GPIO0) se si usasse ESP32 a 38 pin.



rfid


Clicca qui per maggiori informazioni su RFID1.







Lo zoccolo SV1



Lo zoccolo SV1 è stato inserito per poter gestire alcuni tipi di servomotori. Affinchè funzionino, è necessario collegare un alimentattore esterno, perché i servomotori richiedono per funzionare una tensione di +5v e una corrente che ESP32 non sarebbe in grado di erogare.
Può essere utile studiare un probramma che utilizzi anche il potenziometro TRM1, per regolare l'angolo di rotazione del servomotore.



sv1

Clicca qui per maggiori informazioni su SV1.







Lo zoccolo MT1



Lo zoccolo MT1 è utilizzato per pilotare dei motorini elettrici, che richiedano un atensione di alimentazione compresa tra 5 e 12 volt. Un piccolo ma sosfisticato circuito evita che tensioni eccessive danneggino ESP32.
Affinchè i motori funzionino, è necessario collegare un alimentattore esterno, perché i servomotori richiedono per funzionare una tensione di +5v e una corrente che ESP32 non sarebbe in grado di erogare.
Può essere utile studiare un probramma che utilizzi anche il potenziometro TRM1, per regolare latensione - e quindi la velocità di rotazione - del motore.
Si può scegliere tra GPIO26 e GPIO0 con ESP32 a 38 pin; solo GPIO26 con ESP32 a 30 pin.



mt

Clicca qui per maggiori informazioni su MT1.







Lo zoccolo TRM1



Lo zoccolo TRM1 accoglie un potenziometro, utile per regolare la velocità di rotazione di un motore elettrico, l'angolo di rotazione di un servomotore, la luminosità di un led e tante altre applicazioni.
Nel caso il potenziometro non sia saldato sulla basetta, TRM1 può accogliere sensori sia analogici che digitali.
GPIO34 non è abilitata in uscita, quindi non può gestire attuatori come relè nè display.



trm

Clicca qui per maggiori informazioni su TRM1.










Lo zoccolo GPS1



GPS1 è stato pensato per ospitare un modulo GPS NEO 6M, ma può essere usato per gestire altre periferiche che usino due porte digitali (e analogiche, se settati si GPIO27 e GPIO35). Poiché usa le stesse porte di GPS2, essi non possono essere utilizzati contemporaneamente.
Può gestire moduli che utilizzino due porte digitali e/o analogiche (nel caso si setti l'uso di GPIO35 e GPIO27). GPIO35
non è abilitato in uscita, quindi non può gestire attuatori come relè nè display.



gps1

Clicca qui per maggiori informazioni su GPS1.










Lo zoccolo GPS2



GPS2 è stato pensato per ospitare un modulo GPS NEO7, ma può essere usato per gestire altre periferiche che usino due porte digitali (e analogiche, se settati si GPIO27 e GPIO35). Poiché usa le stesse porte di GPS1, essi non possono essere utilizzati contemporaneamente.
Può gestire moduli che utilizzino due porte digitali e/o analogiche (nel caso si setti l'uso di GPIO35 e GPIO27). GPIO35
non è abilitato in uscita, quindi non può gestire attuatori come relè nè display.



gps2

Clicca qui per maggiori informazioni su GPS2.










Lo zoccolo AD1/A



AD1/A è stato progettato per utilizzare piccoli sensori  che usino fino a due porte, sia analogici, che digitali o misti.
GPIO34 e GPIO35 non sono abilitati in uscita, quindi non permettono l'uso di attuatori o display).
AD1/a e AD1/B utilizzano le stesse porte, perciò non possono essere usati contemporaneamente.



ad1a

Clicca qui per maggiori informazioni su AD1A.







Lo zoccolo AD1/B



AD1/B ha le stesse caratteristiche di AD1/A e usa le stesse porte, seppure con diversa disposizione.
Per questo motivo non possono essere usati contemporaneamente.
AD1/B è stato progettato per utilizzare piccoli sensori  che usino fino a due porte, sia analogici, che digitali o misti.

Nel caso si usino i sensori per la rilevazione dei gas, è necessario inserire un alimnetatore esterno, perché essi richiedono una corrente elevata, che ESP32 non è in grado di fornire.



ad1b

Clicca qui per maggiori informazioni su AD1B.







Lo zoccolo BZ1



BZ1 è stato creato specificamente per ospitare un buzzer (piccolo altoparlante piezoelettrico), oppure fornire un'usita audio. Si è utilizzata la porta GPIO26 perchè su ESP32 CYD essa è stata usata specificamente per l'audio.
Nel caso non si usi il buzzer, si possono collegare tutte quelle piccole periferiche che usano una porta analogica o digitale.



bz1

Clicca qui per maggiori informazioni su BZ1.







Lo zoccolo DA1



DA1 può gestire tutti i piccoli moduli che usino una singola porta digitale, sia in ingresso che in uscita.



da1

Clicca qui per maggiori informazioni su DA1.







Lo zoccolo DA2



DA2 può gestire tutti i piccoli sensori che usino una singola porta digitale o analogica.
GPIO35 non è abilitato in uscita, quindi non può gestire attuatori come relè nè display.



da2

Clicca qui per maggiori informazioni su DA2.







Lo zoccolo DA3



DA3 può gestire tutti i piccoli moduli che usino una singola porta digitale o analogica, sia in ingresso che uscita.



da3

Clicca qui per maggiori informazioni su DA3.







Lo zoccolo DA4



DA4 può gestire tutti i piccoli moduli che usino una singola porta digitale, sia in ingresso che uscita



da4

Clicca qui per maggiori informazioni su DA4.







Lo zoccolo RELAY/LED



Lo zoccolo RELAY è stato progettato per collegare moduli fino a otto relè, oppure un modulo da otto led.
Diversamente dagli zoccoli proposti fin qui, non si connette direttamente alle porte di ESP32, ma può essere connesso a mezzo di cavetti, per esempio al conettore "universale" DATA a qualsiasi porta che non sia stata utlilizzata in precedenza, con l'esclusione di GPIO34, GPIO35, GPIO36 e GPIO39 perchè esse sono solo in ingresso.



relay




led

Clicca qui per maggiori informazioni su RELAY/LED.







Lo zoccolo SWITCH



Lo zoccolo SWITCH è stato progettato per collegare moduli fino a otto pulsanti, collegati alle prte dati con resistenza di pulldown.
Come per lo zoccolo RELAY, non si connette direttamente alle porte di ESP32, ma può essere connesso a mezzo di cavetti, per esempio al conettore "universale" DATA a qualsiasi porta che non sia stata utlilizzata in precedenza.



switch

Clicca qui per maggiori informazioni su SWITCH.







Lo zoccolo Display LVGL



Lo zoccolo LVGL è stato progettato espressamente per pilotare direttamente un display LVGL touch da 2.8", senza l'uso di alcun cavo. naturalmente quando non è connesso il display LVGL, le numerose porte che gli sono state dedicate possono essere utilizzate per altre periferiche.



lgvl

Clicca qui per maggiori informazioni su Display LVGL.







Lo zoccolo DATA



Considero lo zoccolo DATA come "universale", perchè presenta tutte le porte disponibili per ESP32 a 38 pin; per ESP32 a 30 pin non è disponibile GPIO0; per ESP32 CYD (con display LGVL integrato) sono disponibili solo le porte GPIO21, 22, 26, 27, 35.
Nota: seppure sui connettori di ESP32 CYD sia presente anche GPIO21, è meglio non utilizzarla, perchè già necessaria per la gestione del display.
Se avessi dovuto inserire l'immagine dello zoccolo "DATA in un unico blocco, sarebbe stato molto piccolo e di conseguenza poco leggibile. Così ho preferito dividerlo in due:



d1
da "EN" a GPIO22, riga 1/./14...
d2
e da GPIO21 a GPIO0, riga 15/./27.

Clicca qui per maggiori informazioni su DATA.







Lo zoccolo ESPx1



Lo zoccolo ESPx1 è posto alla sinistra del connettore per ESP32 a 38 pin, e duplica esattamente e nella stessa posizione tutte le porte presenti su questo microcontroller sul suo lato sinistro (guardandolo con il connettore USB di fronte a noi). Sebbene sia presente sulla basetta, il suo uso è sconsigliato, perché abbastanza scomodo.
Nota 1: si sconsiglia l'uso di GPIO9, 10 e 11, perchè gia utilizzate per le funzioni interne del microcontroller e potrebbero dare dei risultati imprevedibili.
Nota 2: a questo zoccolo sono connesse tutte le porte presenti anche nello zoccolo per ESP32 a 30 pin.



e1

Clicca qui per maggiori informazioni su ESPx1.




Lo zoccolo ESPx2



Lo zoccolo ESPx2 è posto alla destra del connettore per ESP32 a 38 pin, e duplica esattamente e nella stessa posizione tutte le porte presenti su questo microcontroller sul suo lato destro (guardandolo con il connettore USB di fronte a noi). Sebbene sia presente sulla basetta, il suo uso è sconsigliato, perché abbastanza scomodo.
Nota 1: si sconsiglia l'uso di GPIO6, 7 e 8, perchè gia utilizzate per le funzioni interne del microcontroller e potrebbero dare dei risultati imprevedibili.
Nota 2: a questo zoccolo sono connesse tutte le porte presenti anche nello zoccolo per ESP32 a 30 pin. Ricordarsi che ESP32 a 30 pin non gestisce GPIO0.



e2

Clicca qui per maggiori informazioni su ESPx2.








Immagini delle periferiche: sensori, attuatori, display.






Clicca qui
per scaricare il file delle immagini in formato ".ods".
Clicca qui per scaricare il file delle immagininin formato ".pdf"












1


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


17


18


19













Per contatti: info@ethicaldiy.org