Shield per ESP32 DevKIT V1 – Progetto completo

In questo articolo esaminiamo la costruzione dello shield per ESP32 DevKIT V1, questo permette di testare vari dispositivi come:  un led , un led RGB a controllo digitale, un fotoresistore, un pulsante.
Sono presenti dei connettori a cui collegare: un display OLED, svariati sensori I2C, e altri a 3 PIN alimentati sia a 3,3 che 5V.

Il PCB è stato progettato con il programma online EasyEDA, mentre la sua realizzazione,  così come la saldatura dei componenti SMD, è stata realizzata tramite il servizio offerto dal sito JLCPCB.

Sito online per creazioni schemi e PCB  Sito produzione PCB

Caratteristiche dello shield

Le principali caratteristiche delle shield per ESP32 DevKIT V1 sono:

  • Shield compatibile con scheda ESP32 DevKIT V1  30 pin;
  • Alimentazione a batteria tramite modulo  7W Mini DC-DC Boost Step Up Converter
  • Su scheda Led RGB a comando seriale tipo WS2812B;
  • Led di segnalazione programmabile;
  • Fotoresistenza collegata a pin analogico;
  • Pulsante collegato a pin digitale;
  • J2 Connettore a 3 pin per moduli in/out – alimentazione a 3,3V;
  • J3 Connettore a 3 pin per moduli Output – alimentazione a 5V;
  • Connettore per moduli sensore I2C;
  • Connettore per display OLED TFT 1.3″ 240×240 – ST7789;

Il modulo ESP32 DevKIT V1

La  scheda ESP32 Wi-Fi e BLE utilizza il modulo ESP-WROOM-32, un potente modulo Wi-Fi + BLE in grado di soddisfare un’ampia varietà di applicazioni che vanno dalle reti di sensori a bassa potenza alle attività più impegnative. Il modulo supporta un data rate fino a 150 Mbps e la potenza di uscita sull’antenna raggiunge i 20,5 dBm garantendo la più ampia possibilità di connessione.
Per maggiori informazioni sulla ESP32 DevKIT V1 vedere gli articoli:


Caratteristiche:

  • Supporta SD card, UART, SPI, SDIO, I2C, LED PWM, Motor PWM,I2S, I2C, IRUSB-UART
  • Ricetrasmettitore Wi-Fi integrato, soddisfa gli standard 802.11 B/G/N/E/I (802.11n fino a 150 Mbps)
  • Bluetooth classico e BLE
  • 3 Interfacce UART
  • 3 Interfacce SPI
  • 2 Interfacce I2C
  • Ingressi per 10 sensori capacitivi (touch)
  • Convertitore ADC a 18 canali
  • Convertitore DAC a 2 canali
  • SRAM da 520kB
  • Supporta: Station/SoftAP/SoftAP+Station/P2P
  • Supporta: WPA/WPA2/WPA2-Enterprise/WPS
  • Support: AES/RSA/ECC/SHA
  • Frequenza di lavoro Wi-Fi: 2.4 ~ 2.5 GHz
  • Soddisfa le specifiche Bluetooth v4.2 BR/EDR e BLE
  • Tensione di lavoro: da 2,2Vcc a 3,6Vcc
  • Assorbimento medio: 80 mA
    Del modulo ne esistono due versioni,  a 30 o 38 pin, quella scelta per la realizzazione dello shield è il modello a 30 pin

Dove trovare il modulo ESP32 DevKIT V1

Il modulo ESP32 DevKIT V1 può essere acquistato presso il sito Homotix, ad un costo che, al momento delle pubblicazione di questo articolo, è di 7,99€.
Se al momento dell’ordine inserirete il codice sconto  “ADRIROBOT” avrete diritto ad uno sconto

Circuito elettrico del modulo

Il circuito elettrico dello shield è molto semplice. Questo può essere esaminato accedendo al sito EasyEDA, dove è disponile un programma online. Ecco il link
Per conoscere meglio il programma, leggete anche gli articoli EasyEDA – Guida all’utilizzo del programma.

SiglaDescrizioneQ.tà
U1ESP32 DEVKIT 30 pin1
U2Modulo I2C1
U3BOOST STEP-UP CONVERTER1
C1100nF (C0805)1
R1Resistenza 330 Ω (SMD R0805)1
R2,R3Resistenza 10KΩ (SMD R0805)2
LDRFotoresistenza 5.1X4.3_RM3.41
LED1LED0805 (XL-0805QBC)1
LED2Led RGB (WS2812B-3535)1
SW1Pulsante SMD_L6.1-W3.7-LS8.01
J1Connettore 1x2 Batteria1
J2,J3Connettore 1X3 Femmina2
J4Connettore 1x7 Maschio1

Nella schema sono visibili le varie sezioni presenti:

ESP32 DEVKIT V1 30 pin  module

Nella figura sotto riportata, sono rappresentati tutti i pin del modulo ESP32 utilizzati per interfacciarsi con i dispositivi presenti sullo shield.

Pin ESP32Gestione
D2Pin DC del connettore display TFT
D4Pin RES del connettore display TFT
D15Pin DIN del led RGB a controllo digitale
D18Pin SCL del connettore display TFT
D21Pin SDA del connettore sensore I2C
D22Pin SCL del connettore sensore I2C
D23Pin SDA del connettore display TFT
D26 Gestione LED 1
D27Pin SENSOR del connettore J3
D32Pin OUT del connettore J2
D33Lettura fotoresistenza
D35Gestione pulsante SW1

Boost step-up converter

Per rendere più autonomo lo shield si è utilizzato un modulo DC-DC Step Up Converter che utilizza un chip SMD AL961. Questo permette di alimentare tramite una batteria al Litio da 3,7V. Il modulo misura solamente 21 x 11 x 4 mm. Sono presenti solamente tre pin Vin, GND e Vout.
Quello utilizzato fornisce in uscita 5V per un consumo massimo 7W.
Maggiori informazioni nell’articolo: AL961 7W Mini DC-DC Boost Step-Up Converter

OLED Display

Questo display LCD da 1,3″ 240×240 tipo ST7789  a colori presenta un’alta risoluzione, 260 ppi.
Il display è del tipo In-Plane Switching o IPS.

Interfaccia SPI

Il display incorpora un interfaccia SPI che fornisce aggiornamenti rapidi del display.
Poiché è un dispositivo di sola scrittura, non è necessario che la SPI MISO sia collegata.
L’interfaccia non è dotata del pin CS (Chip Select ) il che riduce il numero di pin, ma non permette di avere altri dispositivi SPI sullo stesso bus contemporaneamente.
La connessione al display avviene tramite un header a 7 pin collega ai pin dell’ESP 32.
Vedere anche articolo Display TFT 1.3″ 240×240 – ST7789

PIN OLEDPin ESP32Descrizione
GNDGNDPin GND
VCC+3.3VPin alimentazione
SCLD18SPI SCL (Clock)
SDAD23SPI MOSI (Dati)
RED4Reset per il controller LCD ST7789
DCD2Dati/Comando, tipo di dati da inviare al display
BLK ncEventuale controllo retroilluminazione

Led RGB

Circuito di gestione di un led tipo WS2812B di tipo RGB a controllo digitale, utilizza un RGB SMD 5050, al cui interno è stato installato un minuscolo chip di controllo.
In questo chip è presente un regolatore di luminosità a corrente costante che assicura un colore uniforme anche con differenti tensioni di alimentazione e un’interfaccia di comando seriale a una sola linea.
Maggiori informazioni nell’articolo Modulo ESP32 Devkit V1 – Led RGB WS2812B

Button

Il circuito è formato dal pulsante SW1 e dalla resistenza SMD di pull-up R3 dal valore di 10 kΩ collegata al pin di alimentazione di 3.3V la sua funzione è quella di mantenere l’ingresso della porta D35 dell’ESP35 ad uno stato logico ben preciso quando il pulsante si trova con contatto aperto.
In questo caso l’ingresso D35 è sempre a +Vcc (HIGH) e va a zero (LOW) solo quando il pulsante è premuto (metodo Pull-up).

I2C Sensor

Connettore per moduli sensore dotati di interfaccia I2C. Il connettore è stato realizzato per il collegamento del sensore BME680, ma è possibile collegare per esempio i seguenti sensori:

 

Shield ESP32 DevKIT costruzione

Shield ESP32 DevKIT costruzione

LDR Sensor

Descrizione

La foto resistenza è un componente elettronico la cui resistenza è inversamente proporzionale alla quantità di intensità luminosa che lo colpisce. Questo significa che la corrente (inversamente proporzionale alla resistenza) aumenta all’aumentare dell’intensità luminosa.
Nella  figura sottostante è riportato la caratteristica Ohm/Lux di una fotoresistenza

Occorre notare che le porte dell’ESP32 non possono rilevare né variazioni di resistenza né variazioni di corrente. E’ possibili solamente leggere valori di tensione. Per questo motivo, l’utilizzo di una resistenza è indispensabile al fine di collegare correttamente la fotoresistenza alla porta dell’ESP.
In questo caso si trasforma la variazione di resistenza in una variazione di tensione tramite un partitore di tensione.

Partitore di Tensione e Fotoresistenza

Nel circuito presentato, la variazione di luminosità produce una variazione del valore della fotoresistenza. Di conseguenza anche il valore della corrente risulta funzione dell’intensità luminosa e di conseguenza anche il valore di tensione in ingresso alla porta del modulo ESP. Nel dettaglio:

  • Un incremento della luminosità porta ad un decremento della tensione;
  • Un decremento della luminosità porta ad un incremento della tensione.


I  pin ADC della scheda ESP32 DEVKIT V1

La scheda ESP32 DEVKIT V1 DOIT (versione con 30 pin) dispone di 15 pin ADC che si possono utilizzare per leggere gli ingressi analogici, nel nostro caso si è utilizzato il D33.
Questi pin hanno una risoluzione di 12 bit, il che significa che si possono ottenere valori da 0 a 4095. Per leggere il valore nell’IDE di Arduino, si usa semplicemente la funzione analogRead(). I pin ADC ESP32 non hanno un comportamento lineare.

+5V Output

Il connettore J2, permette di collegare vari moduli di output come per esempio un modulo relè  KY-019.
Il pin OUT è collegato al pin D32.  Il pin di alimentazione è collegato a +5V.

+3.3V Sensor

Il connettore J3, permette di collegare vari moduli di input.  Il pin SENSOR è collegato al pin D27.  Il pin di alimentazione è collegato a +3.3V.

Realizzazione del PCB

Il PCB potrà essere realizzato tramite il servizio offerto dalla JLCPCB, azienda che agisce in sinergia con EasyEDA.

Sullo stesso sito potete trovare il PCB, ecco il link. Il PCB è di tipo a doppia faccia con fori metallizzati, alcuni componenti potranno essere già montati dalla ditta costruttrice.

Per le fasi di realizzazione vi consiglio la lettura dei seguenti articoli: Come realizzare i vostri PCB tramite il sito JLCPCBJLCPCB & EasyEDA-Progettazione, realizzazione, assemblaggio PCB

Scatola che racchiude i PCB ordinati è un piccolo gadget, rappresentato da un puzzle

Una volta aperto la confezione racchiusa da un foglio mille bolle, si  troveranno i cinque PCB su cui sono visibili i componenti di tipo SMT già saldati in fase realizzativa dalla ditta costruttrice; la serigrafia permette una facile identificazione dei vari componenti.

Dettaglio dei due lati del PCB ricevuto, l’utilizzo di fori metallizzati permette di avere collegamenti tra il lato TOP e Bottom del PCB, i collegamenti di alimentazione e GND sono ottenuti con l’utilizzo delle aree rame dei due piani del PCB.

Fasi di costruzione

Seguono le fasi di costruzione dello Shield per ESP32 DevKIT V1

  1. Preparazione dei componenti necessari al montaggio, si consideri che alcuni, di tipo SMT, non già stati montati di fase di realizzazione del PCB.  restano alcuni componenti come il connettore della batteria, del modulo ESP, e il modulo DC-DC.

2- S’inizia con la saldatura del connettore per il sensore I2C

3- A questo punto si procedere modificando il modulo stepper che viene venduto con un connettore a tre pin maschi a 90°. Occorre rimuoverlo e sostituirlo con uno a pin diritti.  Prestare attenzione nelle operazioni di dissaldamento per non danneggiare il modulo

4- A questo punto si procedere con il connettore per la batteria

5 – Si passa alla saldatura dei due connettori a 30 pin femmina per il montaggio del modulo ESP 32

6 – A questo punto il montaggio può considerarsi terminato

7 – Finito il montaggio, si potranno installare i vari moduli sui rispettivi connettori: Modulo ESP32, Display IPS, Sensore BMP180.

Vista della parte superiore dello shield.

Vista della parte inferiore dello shield.

Primo test dello shield

Per primo si è optato con il test del LED RBG. Non sarà necessario il Display IPS, e il sensore. Una volta caricato il programma, l’alimentazione del modulo potrà essere fornita tramite una batteria.

Schema equivalente del test

Sketch del test

Sotto è riportato lo Sketch del primo test per la verifica del led RGB. Per il suo funzionamento occorre che sia presente la libreria Adafruit_NeoPixel.h, per vedere come fare per caricarla vedere articolo Modulo ESP32 Devkit V1 – Led RGB WS2812B

Breve video del test

Altri  articoli utili