Costruzione Wemos D1 mini multi test shield

Se si possiede una scheda Wemos D1 mini è si vogliono sperimentare vari sensori, come quelli contenuti nella confezione “37 in 1 Sensor Module Board Set” che è venduta da molti siti è possibile utilizzare questo Wemos D1 mini multi test shield, vediamo la sua costruzione.

wemos d1 mini shield

Sullo shield sono disponibili molti connettori che risultano già opportunamente collegati con le porte digitali o analogiche della scheda Wemos D1 mini, per avere maggiori informazioni su questa scheda leggete l’articolo Modulo WeMos – LOLIN D1 mini.

Sulla scheda è inoltre già presente uno stadio di alimentazione che permette di alimentare il tutto per esempio con una batteria 9V.

In realtà, la scheda, oltre ai sensori presenti nel kit “37 in 1 Sensor Module Board Set” permette di testare altri sensori, servo, ecc per un totale di oltre 30 tipi, la presenza di un connettore bus I2C espande ulteriormente la tipologia di dispositivi che lo shield permette.

Se si monta sul Wemos D1 mini il relativo OLED Shield si potranno visionare sul display da 0,66 “64 x 48 pixel i valori misurati oppure gli stati logici.

Dove trovare il modulo Wemos D1 e il display Oled

Il Modulo WeMos – LOLIN D1 mini e il diplay Oled potranno essere acquistati presso il sito Homotix

Al momento dell’ordine ricordate di indicare il codice di sconto “ADRIROBOT_20” che vi darà diritto ad uno sconto del 3%.

Sensori compatibili con lo shield

ConnettoreSensore/Modulo
JP1-JP2-JP3KY-001 Temperature sensor module, KY-002 Vibration switch module, KY-003 Hall magnetic sensor module, KY-004 Key switch module, KY-005 Infrared emission sensor module, KY-006 Small passive buzzer module, KY-008 Laser sensor module,  KY-010 Optical broken module, KY-012 Active buzzer module, KY-013 Temperature sensor module, KY-015 Temperature and humidity sensor module,  KY-017 Mercury open optical module, KY-018 Photo resistor module, KY-020 Tilt switch module, KY-021 Mini magnetic reed modules, KY-022 Infrared sensor receiver module, KY-031 Knock Sensor module, KY-033 Hunt sensor module, KY-035 Class Bihor magnetic sensor, KY-039 Detect the heartbeat module
JP4HC-SR501
JP5KY-009 3-color full-color LED SMD modules
JP6KY-011 2-color LED module, KY-029 Yin Yi 2-color LED module 3 mm
JP7KY-016 3-color LED module
JP8KY-034 Automatic flashing colorful LED module
JP9KY-032 Obstacle avoidance sensor module
JP10KY-019 5V relay module, Servomotore - alimentazione +5V
JP11KY-040 Rotary encoder module
JP12KY-024 Linear magnetic Hall sensors, KY-025 Reed module, KY-026 Flame sensor module, KY-028 Temperature sensor module, KY-036 Metal touch sensor module, KY-037 Sensitive microphone sensor module, KY-038 Microphone sound sensor module,
JP13KY-027 Magic light cup module
JP15Connettore I2C

Schema elettrico

wemos d1 mini shield

Lo schema è lo stampato sono stati realizzati con il programma free EasyEDA, il progetto può essere clonato accedendo a questo link. Per la realizzazione si è utilizzato il servizio di realizzazione fornito da JLCPCB

Descrizione

Lo schema dello shield è molto semplice, in quanto composto essenzialmente dal Modulo Wemos D1 mini, è presente una sezione per l’alimentazione del modulo, che partendo per esempio da una tensione di 9V la riduce al valore di 5V tramite un regolatore LM2940 a basso drop out.
Subito dopo il connettore di alimentazione, e presente un diodo 1N4004 con la semplice finzione dei evitare eventuali inversioni di polarità.

I componenti necessari

IDSiglaDescrizione  Quantità
1JP5,JP7,JP12,JP13,JP15,JP9Header-Female-2.54_1x4 6
2R5150 Ω 1/4W 1
3R1,R3100 Ω 1/4W  2
4R2,R4220 Ω 1/4W 2
5JP112.54mm 1*5p Female header 1
6JP1,JP3,JP2,JP4,JP6,JP8,JP10Header-Female-2.54_1x3 7
7U2WEMOS D1 1
8R64K7 Ω 1/4W 1
9R72K2 Ω 1/4W 1
10J1DC Power Jack connector 1
11U1LM 2940P -5.0 1
12D1Diodo 1N4004 1
13C2Condensatore poliestere 100 nF 1
14C1Condensatore elettrolitico 100 uF 50V 1

Vista del PCB lato TOP

Vista del PCB lato BOTTOM

wemos d1 mini shield

Vista 3D del PCB lato TOP

Foto del PCB realizzato da JLCPCB

Costruiamo lo shield

Seguono le fasi di montaggio delle shield. Per le istruzioni di saldatura potrete leggere l’articolo Come eseguire delle buone saldature  che potrete eseguire magari tramite una stazione di saldatura come quella citata nell’articolo Stazione di saldatura digitale ST50-D 50W.

Potremo cominciare saldando il diodo D1 facendo attenzione al suo orientamento dato dalla fascetta presente sul corpo

Passeremo poi a saldare le resistenze da R1 a R5 verificando il corretto valore tramite il codice dei colori riportato sul loro corpo.

Fisseremo poi le due resistenze del partitore R6 e R7, continuando poi con le due pin strip dove poi monteremo il modulo Wemos D1.

Passeremo poi a saldare le pinstrip su cui potremo inserire i moduli da testare

wemos d1 mini shield

Si continua poi con la saldatura dei due condensatori della sezione dell’alimentatore, uno elettrolitico, polarizzato e uno poliestere

A questo punto si salderà i connettore polarizzato di alimentazione, ricordando che il polo positivo è al centro e i negativo all’esterno

wemos d1 mini shield

Si salderà ora il regolatore di tensione, l’aletta di raffreddamento andrà posta all’esterno del PCB, inserire il componente sino a quando i pin non andranno a contatto del PCB.

A questo punto abbiamo saldato tutti i componenti
wemos d1 mini shield

Possiamo passare alla fase finale che consiste nel fissare quatto colonnine che fungeranno da distanziale per il nostro shield.

wemos d1 mini shield

Ora possiamo istallare il modulo Modulo WeMos – LOLIN D1 mini e lo shield OLE che comunque non è indispensabile e può non essere installato.

Ecco come montare i due moduli

wemos d1 mini shield

A questo punto il montaggio può dirsi definitivamente concluso.

Alcune foto del montaggio

Dettaglio della zona connettori

wemos d1 mini shield

Dettaglio modulo Wemos D1 mini e display OLED

wemos d1 mini shield

Dettaglio zona alimentatore

Test dello shield montato

Ora possiamo passare al collaudo dello shield appena realizzato. Per fare questo utilizzeremo il modulo KY-009 RGB full color LED SMD module, che si presenta come una piccolo circuito che misura 18,5 millimetri x 15mm, su di esso è montato un LED RGB tipo 5050 SMD e un connettore a 4 pin. Il LED può emette una ampia gamma di colori mescolando rosso, verde e blu.

La quantità di ciascun colore primario può venire regolata tramite un pilotaggio di tipo PWM, il modulo deve essere montato sul connettore JP3 come mostrato in figura.

wemos d1 mini shield

wemos d1 mini shield

wemos d1 mini shield

Schema di collegamento

La limitazione della corrente che scorre verso i led contenuti nel led RGB tipo 5050, viene fatto dalle resistenze già presenti sullo shield.
Se disponibile inserire il display nel connettore come mostrato in figura, il suo utilizzo non è comunque indispensabile all’esecuzione del programma.
Ora si dovrà collegare la scheda Wemos D1 Mini al PC e compilare il programma (scaricabile da questo link) nella memoria del Wemos che lo eseguirà.

#include "SPI.h"
#include "Wire.h"
#include "Adafruit_GFX.h"
#include "Adafruit_SSD1306.h"

#define bluepin D5  // seleziona il pin per il LED blu
#define greenpin D7 // seleziona il pin per il LED verde
#define redpin D6   // seleziona il pin per il LED rosso
int val;

#define OLED_RESET 0  // GPIO0
Adafruit_SSD1306 display(OLED_RESET);

void setup()   {
  Serial.begin(9600);
  pinMode(bluepin, OUTPUT);
  pinMode(greenpin, OUTPUT);
  pinMode(redpin, OUTPUT);

  // Impostazione modulo display con indirizzo I2C addr 0x3C
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.display();
  delay(2000);
  // Cancellazione schermo e buffer
  display.clearDisplay();

  // Messaggio iniziale
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0, 0);
  display.println(" ADRIROBOT");
  display.setTextColor(BLACK, WHITE); // Inverte il colore del testo
  display.println("  SHIELD  ");
  display.println(" TEST FOR ");
  display.println("  37 IN 1 ");
  display.println("  SENSOR  ");
  display.display();
  delay(2000);
  display.clearDisplay();
  display.setTextColor(WHITE);
  display.setCursor(0, 0);
  display.println("   TEST   ");
  display.println("  MODULO  ");
  display.println("  KY-009  ");
  display.display();
}

void loop()
{
  display.fillRect(0, 30, 64, 15, BLACK);
  display.setCursor(0, 30);
  display.print("Led ROSSO");
  display.display();
  delay (200);
  digitalWrite(redpin, HIGH);  //Accende il led rosso
  delay (1000);
  digitalWrite(redpin, LOW);  //Spegne il led rosso

  display.fillRect(0, 30, 64, 15, BLACK);
  display.setCursor(0, 30);
  display.print("Led BLU");
  display.display();
  delay (200);
  digitalWrite(bluepin, HIGH);  //Accende led blu
  delay (1000);
  digitalWrite(bluepin, LOW);  //Spegne led blu

  display.fillRect(0, 30, 64, 15, BLACK);
  display.setCursor(0, 30);
  display.print("Led VERDE");
  display.display();
  delay (200);
  digitalWrite(greenpin, HIGH);  //Accende led verde
  delay (1000);

  display.fillRect(0, 30, 64, 15, BLACK);
  display.setCursor(0, 30);
  display.print("Led BIANCO");
  display.display();
  delay (200);

  digitalWrite(redpin, HIGH);  //Accende il led rosso
  digitalWrite(bluepin, HIGH);  //Accende il led blu
  // Essendo accesi i tre led il colore emesso è il bianco
  delay (1000);

  // Spegne tutti i tre led
  display.fillRect(0, 30, 64, 15, BLACK);
  display.setCursor(0, 30);
  display.print("SPENTO");
  display.display();
  delay (200);
  digitalWrite(redpin, LOW);
  digitalWrite(greenpin, LOW);
  digitalWrite(bluepin, LOW);
  delay (2000);
}

Filmato del test

Altri utilizzi dello shield

Lettura della temperatura con DS18B20