KY-015
Temperature and humidity sensor module

ultimo aggiornamento 15 gennaio 2019


 

Indice

Descrizione

Il modulo KY-015 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 modulo compatibile con le piattaforme di elettronica più popolari come Arduino, Raspberry Pi e ESP8266.
I campi di applicazione del modulo possono essere: HVAC test e apparecchiature di controllo , auto motive, data logger, controllo automatico, stazione Meteo, regolatori di umidità , deumidificatori.

 

homotix

 

 

 

Alimentazione

 3-5.5V DC

Segnale di uscita

 digitale del segnale tramite single-bus

Elemento sensibile

 Resistenza in Polimero

Campo di misura umidità

 20-90% di umidità relativa, temperatura di 0-50 gradi Celsius

Precisione

Umidità + -4% RH (Max + -5% di umidità relativa)
Temperatura +-2.0Celsius

Risoluzione o la sensibilità

 umidità 1% di umidità relativa, temperatura 0.1 Celsius

Ripetibilità umidità

 + -1% di umidità relativa temperatura +-1Celsius

Umidità isteresi

 + -1% RH

Stabilità a lungo termine

 + -0.5% UR / anno

Tempo di rilevazione

 medio: 2s

Dimensioni

 12 * 15,5 * 5,5 millimetri

Sensore di umidità relativa e temperatura DHT11 con uscita Digitale

Caratteristica & applicazione:
  • Gamma completa di temperatura  compensata
  • Umidità relativa e temperatura
  • Segnale digitale calibrato
  • Eccezionale stabilità a lungo termine
  • Componenti aggiuntivi non necessari
  • Distanza di trasmissione lunga
  • Basso assorbimento
  • Contenitore con 4 pin

Caratteristiche Sensore

Caratteristiche

Descrizione sensore

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 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.

Immagini tratte da http://www.radiolocman.com/shem/schematics.html?di=112850

Vista frontale

Vista laterale

 Vista posteriore

- Pin e alimentazione
La tensione di alimentazione deve essere compresa tra 3-5.5V DC. Quando l'alimentazione viene fornita al sensore, non inviare alcuna istruzione al sensore per almeno un secondo per permettere al sensore di stabilizzarsi.
Un condensatore da 100nF può essere inserito tra  tra VDD e GND per il filtraggio dell'alimentazione
- Comunicazione e segnale
Dati single-bus viene utilizzato per la comunicazione tra MCU e di DHT11.

Caratteristiche elettriche

Descrizione

Condizione

Min

Tipico

Max

Unità

Alimentazione

DC

3

5

5,5

 V

Alimentazione di corrente

 di misura

 0,5

 

2,5

mA

Stand-by

100

Null

 150

 

uA

 

Media

 0.2

Null

1

mA

Schema elettrico del modulo

Foto del modulo

Foto di altri modelli del modulo

Attenzione: la disposizione dei pin non è standard, controllare la loro disposizione prima del collegamento

Libreria di gestione sensore

Per la prova del modulo KY-015 dopo aver realizzato i vari collegamenti mostrati nello schema, si dovrà caricare lo sketch all'interno della memoria di Arduino, il programma utilizza la libreria DHT11 (della Adafruit) che semplifica la gestione del programma.

Programma di test del sensore

Materiale necessario

 

Schema di collegamento del modulo ad Arduino

Attenzione: la disposizione dei pin non è standard, controllare la loro disposizione prima del collegamento


schema in formato Fritzing

Pin Arduino Pin Modulo KY-015

GND

GND

+5V

VCC

2

Data

Programma di test del sensore

Il programma mostrerà nella finestra del monitor seriale i dati di umidità e temperatura saranno riportati all'interno della finestra del monitor seriale:

NOTA: In generale, con l'espressione punto di rugiada (in inglese dew point) si intende un particolare stato termodinamico (rappresentato dalla temperatura e dalla pressione) in corrispondenza del quale una miscela bifase multicomponente liquido-vapore diviene satura di vapore. In altre parole, oltre il punto di rugiada (cioè a temperatura maggiore e/o a pressione minore) si ha la presenza solo di vapore, mentre sotto il punto di rugiada (cioè a temperatura minore e/o a pressione maggiore) il sistema è bifase (costituito da un liquido in equilibrio con il suo vapore

Programma 

/*
  Programma:code_KY-015.ino
  Collaudo KY-015 Temperature and humidity sensor module

  Su Arduino sono utilizzati i seguenti pin
  Pin GND -> Pin GND modulo
  Pin +5V -> Pin VCC modulo
  Pin  2 -> Pin DATA modulo

  Ultima modifica il 01/01/2018
  Applicazione modificata da Adriano Gandolfo
  Sito web https://www.adrirobot.it
  Blog https://it.emcelettronica.com/author/adrirobot
  Pagina Facebook https://www.facebook.com/Adrirobot-318949048122955
  Istagram https://www.instagram.com/adrirobot/
  This example code is in the public domain.
*/


//Celsius to Kelvin conversion
double Kelvin(double celsius)
{
  return celsius + 273.15;
}

// dewPoint function NOAA
// reference (1) : http://wahiduddin.net/calc/density_algorithms.htm
// reference (2) : http://www.colorado.edu/geography/weather_station/Geog_site/about.htm
//
double dewPoint(double celsius, double humidity)
{
  // (1) Saturation Vapor Pressure = ESGG(T)
  double RATIO = 373.15 / (273.15 + celsius);
  double RHS = -7.90298 * (RATIO - 1);
  RHS += 5.02808 * log10(RATIO);
  RHS += -1.3816e-7 * (pow(10, (11.344 * (1 - 1 / RATIO ))) - 1) ;
  RHS += 8.1328e-3 * (pow(10, (-3.49149 * (RATIO - 1))) - 1) ;
  RHS += log10(1013.246);

  // factor -3 is to adjust units - Vapor Pressure SVP * humidity
  double VP = pow(10, RHS - 3) * humidity;

  // (2) DEWPOINT = F(Vapor Pressure)
  double T = log(VP / 0.61078); // temp var
  return (241.88 * T) / (17.558 - T);
}

// delta max = 0.6544 wrt dewPoint()
// 6.9 x faster than dewPoint()
// reference: https://en.wikipedia.org/wiki/Dew_point
// riferimento https://it.wikipedia.org/wiki/Punto_di_rugiada
double dewPointFast(double celsius, double humidity)
{
  double a = 17.271;
  double b = 237.7;
  double temp = (a * celsius) / (b + celsius) + log(humidity * 0.01);
  double Td = (b * temp) / (a - temp);
  return Td;
}

// Impostatione del sensore
#include "DHT.h"
#define DHTPIN 2         // Pin a cui è collegato il sensore
#define DHTTYPE DHT11    // DHT 11
DHT dht(DHTPIN, DHTTYPE);

void setup()
{
  Serial.begin(9600);
  Serial.println("DHT11 - PROGRAMA TEST");
  dht.begin();
}

void loop()
{
    // Wait a few seconds between measurements.
  delay(2000);
 
  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);

  Serial.print("Temperatura (K): ");
  Serial.println(Kelvin(t), 2);

  Serial.print("Punto di rugiada (C): ");
  Serial.println(dewPoint(t, h));

  Serial.print("Punti di rugiada fast (C): ");
  Serial.println(dewPointFast(t, h));

  delay(2000);
}

Test con Multi Test Shield

Componenti utilizzati

 

 

Multi test Shield

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.
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 96x64 pixel, 65536 Colori, su di esso potranno essere mostrati dei messaggio o i valori misurati dai sensori.

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.

 

Programma di test del sensore

Il programma mostrerà sul display OLED i dati di umidità in percentuale e di temperatura in gradi, i valori saranno letti ogni secondo

Programma

shield_test_code_KY-015.ino

/*####################################################################
  FILE: shield_test_code_KY-015.ino
  VERSION: 1.0
  Descrizione: Test KY-015 Temperature and humidity sensor module

  Su Arduino sono utilizzati i seguenti pin
  Pin GND -> Pin GND modulo
  Pin +5V -> Pin VCC modulo
  Pin  2 -> Pin DATA modulo

  Ultima modifica il 14/01/2019
  Applicazione modificata da Adriano Gandolfo
  Sito web https://www.adrirobot.it
  Blog https://it.emcelettronica.com/author/adrirobot
  Pagina Facebook https://www.facebook.com/Adrirobot-318949048122955
  Istagram https://www.instagram.com/adrirobot/
  This example code is in the public domain.
  #################################################################### */

// 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()
{
  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
}
 
Elenco revisioni:

15/01/2019

Aggiornato pagina, inserito test con Multitest shield

02/01/2019

Aggiornato pagina, modificato programma

02/10/2016

Emissione preliminare
Private Policy Cookie Policy