Wemos D1 mini meter shield ultimo aggiornamento 29 luglio 2018 |
|
Vediamo come realizzare un
Meter shield per Wemos D1 mini,
lo shield una volta collegato alla scheda
Wemos D1 Mini o Wemos Pro
permette di visualizzare su un piccolo display OLED la misura delle distanza in
cm che separa il sensore dall'oggetto posto frontalmente al sensore. Scheda Wemos D1
mini - utilizzata per gestire il circuito; 2
resistenze 2,2kΩ e 4,7kΩ per partitore di tensione pinstrip
Fasi della realizzazione Il Modulo
WeMos D1 mini è basato sul
microcontrollore Wi-Fi ESP8266 ESP-12F che può essere programmato utilizzando
l'IDE di Arduino oppure NodeMCU. La semplicità della programmazione che può
essere effettuata anche in modalità wireless e l'ampia disponibilità di shield
aggiuntivi permettono di sviluppare il proprio progetto di "Internet delle cose"
in tempi estremamente rapidi.
11 I/O digitali, tutti i pin sono provvisti di
interrupt e supportano PWM, I2C , One-Wire (D1-SCL-D2 -SDA)
1 Pin analogico (tensione massima di ingresso 3.2V)
Connessione Micro USB
Compatibile con Arduino e con nodemcu
Dimensioni (mm): 28x24x18 Il
collegamento tramite interfaccia I2C può essere utilizzato per connettere fino a
127 nodi tramite un bus che richiede solo due cavi dati, noti come SDA e SCL.
SDA => D2.
SCL => D1 Il
collegamento SPI è molto più semplice di I2C. Master e slave sono collegati da
tre fili di dati, solitamente chiamati MISO, (Master in, Slave out), MOSI
(Master out, Slave in) e M-CLK.
M-CLK => D5
MISO => D6
MOSI => D7
(SPI Bus SS (CS) è D8.)
Il sensore utilizzato è di tipo sonar ad ultrasuoni il quale non misura direttamente la
distanza, ma fornisce il tempo impiegato da segnale sonoro
per raggiungere un ostacolo e ritornare di nuovo al sensore. In
base al tempo viene calcolata la distanza. Ecco i componenti necessari:
Filmato
illustrativo
Modulo WeMos D1 mini
Il modulo WeMos D1 mini è dotato di una interfaccia USB realizzata tramite il
convertitore seriale-USB CH340
Dal connettore USB viene anche
prelevata l'alimentazione a 5V, un regolatore interno (tipo RT9013) si occupa di generare
l'alimentazione a 3,3V per il modulo ESP-12F. Per evitare confusione tutti i pin
di I/O sono chiaramente etichettati.
Nota: Tutti gli I/O supportano una tensione massima di 3,3V
Specifiche tecniche
Interfaccia I2C
Interfaccia SPI
Pinout Completo
|
Bustina antistatica contenente il modulo |
Contenuto della bustina antistatica |
Modulo con connettori scelti per il montaggio |
Modulo con connettori montati |
Il sensore ad ultrasuoni
HC-SR04 ha un campo di misura che si estende da due
centimetri a quatto metri e la precisione arriva a 1 cm.
Il modulo comprende il trasmettitore a ultrasuoni, il ricevitore e il
circuito di controllo.
Questi sensori ad ultrasuoni non misurano direttamente la
distanza, ma forniscono il tempo impiegato da un segnale sonoro
per raggiungere un ostacolo e ritornare di nuovo al sensore.
Quando Arduino setta a 1 il Pin Trigger, il sensore invia 8 impulsi ad ultrasuoni. Quando questi poi sono ricevuti, il sensore setta a 1 il pin Echo, viene quindi misurato il tempo che passa tra l’attivazione del pin Trigger ed il settaggio del pin Echo. Infine, nota la velocità del suono, converte il tempo misurato in una lunghezza e ricava quindi la distanza dell’ostacolo.
Link Utili
|
Questo display monocromo
OLED commercializzato dalla
ICStation con il
codice 10786,
presenta una diagonale di 0,49" e una risoluzione di 64x32
singoli pixel bianchi OLED, ciascuno è acceso o spento dal chip controller,
in questo caso non è richiesta alcuna retroilluminazione e questo riduce
l'assorbimento di potenza necessaria.
L'integrato pilota è il modello SSD1306 (datasheet)
che è un single-chip CMOS driver per display tipo OLED / PLED (Organic Light Emitting Diode, Polymer light-emitting diodes).
L'integrato comunica tramite il protocollo I2C,
sono necessari solo 2 pin, linea
dati / clock.
Per l'utilizzo è necessario un microcontrollore
con più di 512 byte di RAM in quanto il display deve essere tamponato.
È disponibile per Arduino IDE l'apposita libreria; questa permette di
stampare testo, bitmap , pixel , rettangoli, cerchi e linee . Essa utilizza
512 byte di RAM in quanto ha bisogno di tamponare l'intero schermo ma è
molto veloce!
Per altre informazioni ed esempi di utilizzo vedere la
pagina dedicata.
|
Per utilizzare il display OLED è necessario
installare le librerie Adafruit SSD1306, in questo caso opportunamente
modificate per adattarsi alla ridotta risoluzione.
Per cui occorre scaricare la libreria di supporto presente su
GitHub,
oppure fare
clic su questo link per scaricare il file zip.
Per il giusto funzionamento del display, occorrerà modificare o verificare che all’interno del
file Adafruit_SSD1306.h della libreria, la linea che definisce la
dimensione del display, l'unica linea senza commento, sia quella
#define SSD1306_64_32
// #define SSD1306_128_64
// #define SSD1306_128_32
// #define SSD1306_96_16
#define SSD1306_64_32
per gestire la parte grafica del modulo occorre inoltre scaricare le librerie grafiche Adafruit-GFX-Library presenti su GitHub, oppure fare clic su questo link per scaricare il file zip.
Per la progettazione del circuito, si è scelto un tool EDA, Electronic Design Automation online gratuito chiamato EasyEDA.
il programma non richiede alcuna installazione in quanto basato sul cloud; è stato progettato per fornire ad ingegneri elettronici, insegnanti, studenti di ingegneria e hobbisti, un facile strumento di lavoro. Il programma permette di disegnare e simulare circuiti, è facile da usare e consente altresì, il disegno di circuiti stampati, direttamente dal proprio browser. All'interno dell'Editor sono presenti un gran numero di librerie di componenti, in modo da poter facilmente e rapidamente trovare le parti desiderate. Il sito offre anche un servizio di alta qualità ma a basso costo per la realizzazione di PCB personalizzati.
È possibile accedere allo schema attraverso questo link
Dettaglio schema di collegamento con scheda Wemos D1 Mini
Dettaglio schema di collegamento con display OLED
Dettaglio schema di collegamento con sensore Sonar
Prima di realizzare il circuito stampato il progetto è stato testato su breadboard, per cui i vari componenti sono stati montati come in figura
Come saprete, i pin digitali della scheda Wemos D1 Mini non sono adatti a ricevere segnali con una tensione superiore a 3,3V, dato che il sensore ad ultrasuoni HC-SR04 funziona a 5V anche i suoi segnali in uscita saranno a questo valore massimo.
Nel nostro circuito si è scelto di utilizzare i seguenti valori standard. come valore di R1=2,2kΩ per R2 un valore di 4,7kΩ, da cui applicando le formula si avrà che la tensione in uscita sarà di circa 3,4 V, la piccola differenza è ancora tollerabile.
Studio del PCB con il programma EasyEDA
Anteprima del PCB lato TOP SIDE
Anteprima del PCB lato BOTTOM SIDE
Dopo aver completo la progettazione
del PCB, è possibile fare clic sull'icona
PCB order, in questa pagina è possibile scaricare file Gerber del vostro
PCB e inviarli a qualsiasi produttore, oppure ancora più facile (e meno costoso)
ordinarlo direttamente al servizio offerto dal
sito JLCPCB
Qui è possibile
selezionare il numero di PCB che volete ordinare, personalizzando eventualmente
il vostro ordine, come eventualmente variare il colore del PCB. Dopo
aver selezionato tutte le opzioni, si farà clic su "Salva nel carrello" e
si completerà l’ordine, in questo modo si riceveranno i PCB pochi giorni dopo,
nel caso si utilizzi il corriere.
Per altre informazioni su come realizzare un PCB vedere la
seguente pagina
Ecco i PCB pronti per il montaggio
Vediamo sotto le varie fasi del montaggio dello shield che è limitato alle pin strip e alle due resistenze del partitore
Occorrerà ora collegare la scheda appena realizzata
al PC e scaricare il
programma (scaricabile da
questo link) sul
WEMOS D1 mini ed eseguirlo.
Se si desidera, è possibile clonare lo schema dello Shield e del
PCB, questo è possibile da
questo link.
sketch "Wemos D1 mini meter shield.ino"
Sketch testato con versione IDE 1.8.5
|
Elenco revisioni: | |
29/07/2018 |
Emissione preliminare |