Testiamo il modulo sensore KY-015 (DHT11) Temperature and humidity sensor module utilizzando il Multi Test Shield. I valori saranno riportati sul display OLED da 0.95″risoluzione 96×64 pixel.
Citazione dell’articolo nelle sezioni ARDUINO, BRIEF TUTORIAL del Blog di Elettronica In
Indice
KY-015 Temperature and humidity sensor module
Il modulo KY-015 (DHT11) Temperature and humidity sensor module fa parte della serie “37 In 1 Sensor Module Board Set Kit For Arduino“, si presenta come un piccolo circuito. Su di esso sono montati, il sensore DHT11, due resistenze, un led e un connettore a 3 pin.
Il sensore DHT11 è un sensore di temperatura e umidità con uscita dei dati in formato digitale.
Il sensore utilizza una tecnica digitale esclusiva che unita alla tecnologia di rilevamento dell’umidità, ne garantisce l’affidabilità e la stabilità.
I suoi elementi sensibili sono connessi con un processore 8-bit single-chip.
Ogni sensore di questo modello è compensato in temperatura e calibrato in un’apposita camera di calibrazione che determina in modo preciso il valore di calibrazione il cui coefficiente viene salvato all’interno della memoria OTP.
Le sue piccole dimensioni e il suo basso consumo, unite alla lunga distanza di trasmissione (20 m), permettono al sensore DHT11 di essere adatto per molti tipi di applicazioni. Il package con quattro pin in linea ne rendono facile la connessione.
Dove trovare modulo con DTHT11
Il modulo con il sensore DHT11 può essere acquistato singolarmente presso il sito FUTURA ELETTRONICA, il codice prodotto è 2850-TEMPHUM_N
Nota: Attenzione alla piedinatura. Questo modulo presenta una diversa piedinatura diversa dal modulo mostrato nell’articolo,
Multi test Shield
Per testare il modulo sensore KY-015 (DHT11) Temperature and humidity sensor module si è utilizzato il Multi Test Shield è uno shield auto costruito realizzato per testare la serie di sensori contenuti nella confezione “37 in 1 Sensor Module Board Set” compatibile con la scheda Arduino UNO R3 originale e relativi cloni. Il kit può essere trovato presso vari rivenditori di vendita online eccone alcuni
- Sito Homotix codice HMTKITS, inserire il codice “ADRIROBOT” per avere uno sconto del 3%.
- Sito Futura Elettronica codice
- Sito TechMaker codice SE482172, inserire il codice “ADRIROBOT” per avere uno sconto del 3%.
HOMOTIX | Futura Elettronica | TechMaker |
Sulla scheda sono disponibili molti connettori che risultano già opportunamente collegati con le porte digitali o analogiche di Arduino.
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 50 tipi, la presenza di un connettore bus I2C espande ulteriormente la tipologia di dispositivi che lo shield permette.
Sulla scheda è anche presente un connettore per il collegamento di un piccolo display OLED da 0.95″risoluzione 96×64 pixel, 65536 colori, su di esso potranno essere mostrati dei messaggio o i valori misurati dai sensori. Per informazioni sul display vedere il link.
Materiale occorrente per il test
Posizionamento del sensore sullo Shield
Per l’utilizzo occorrerà semplicemente posizionare il sensore sul connettore JP1, facendo riferimento a quanto riportato sul PCB. In questo modo i pin del sensore risulteranno automaticamente collegati ai relativi pin: S al pin D2, il centrale a +5V e – a GND.
Schema equivalente
Nell’immagine sottostante è riportato lo schema equivalente di quello effettuato tramite il multitest shield
Sotto la tabella con i relativi collegamenti
Arduino | Display | KY-015 |
---|---|---|
+5V | VCC | VCC |
GND | GND | GND |
D2 | S | |
D8 | DC | |
D9 | RES | |
D10 | CS | |
D11 | SDA | |
D13 | SCL |
Programma di test del sensore
Per il test del sensore KY-015 si utilizza il Multi Test Shield.
Il programma mostrerà sul display OLED i dati di umidità in percentuale e di temperatura in gradi.
I valori saranno letti ogni secondo.
Se non si dispone del display OLED i valori potranno essere letti tramite l’attivazione del monitor seriale.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | // Definizione dei pin di collegamento #define sclk 13 #define mosi 11 #define cs 10 #define rst 9 #define dc 8 // Impostazione del sensore DHT11 #include "DHT.h" #define DHTPIN 2 // Pin a cui è collegato il sensore #define DHTTYPE DHT11 // DHT 11 DHT dht(DHTPIN, DHTTYPE); // Definizione dei colori #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF #include <Adafruit_GFX.h> #include <Adafruit_SSD1331.h> #include <SPI.h> Adafruit_SSD1331 display = Adafruit_SSD1331(cs, dc, rst); void setup() { Serial.begin(9600); display.begin(); dht.begin(); // Messaggio iniziale display.fillScreen(BLACK); display.setTextSize(1); display.setTextColor(BLUE); display.setRotation(2); //Ruota display display.setCursor(0, 0); display.println("www.adrirobot.it"); display.println(""); display.setTextColor(GREEN); display.println("Multitest shield"); display.println(""); display.println(" TEST FOR "); display.println(" 37 IN 1 SENSOR "); delay(3000); display.fillScreen(BLACK); display.setTextColor(YELLOW); display.setCursor(0, 0); display.println(" TEST MODUL0 "); display.println(""); display.setTextColor(CYAN); display.println("KY-015 Temp. and"); display.println(" umidity sensor "); display.println(""); delay (200); } void loop() { // Wait a few seconds between measurements. float h = dht.readHumidity(); float t = dht.readTemperature(); Serial.println("\n"); Serial.print("Umidita' (%): "); Serial.println(h, 1); Serial.print("Temperatura (C): "); Serial.println(t, 1); display.fillRect(0, 40, 96, 30, BLACK); display.setCursor(0, 40); display.setTextColor(WHITE); display.print("Umidita' %: "); display.setTextColor(RED); display.println(h, 1); display.println(""); display.setTextColor(WHITE); display.print("Temp. C: "); display.setTextColor(GREEN); display.println(t, 1); delay (1000); // Pausa di 1 secondo } |