Tutorial – Usar el Sensor KY-015 y Arduino + Programación

Un sensor con la capacidad de medir temperatura y humedad es una pieza elemental ante cualquier proyecto que requiera medir estas variables. La temperatura juega un papel importante en casi cualquier cosa por ejemplo los diferentes componentes de un proyecto o sistema son sensibles a las altas temperaturas por tal se debe tener un control y esto se logran censando la temperatura para luego aplicar correcciones al ambiente encendiendo aires acondicionado o sistemas HVAC.

Por otro lado la Humedad puede dañar a cualquier elemento que funcione con electricidad osea un panel de control, circuitos que controlen el encendido de otros sistemas como motores, etc. Por lo cual se requiere controlar esta magnitud o cuando menos tener una medición correcta para saber hasta que punto nuestro sistemas puede mantenerse estable y no ser afectada por la humedad.

Modulo KY-015 arduino
Modulo KY-015 arduino

Conexiones:

  • El pin 8 de Arduino va conectado al Pin S del modulo
  • El pin GND de Arduino va conectado al Pin –
  • La salida de 5V del Arduino va conectada al Pin central del modulo

Nota: La programación que se da a continuación puede ser reflejada en la ventana serial del programa arduino o  simplemente puede ser reflejada en un Dispaly LCD 16×2

Programación para usar el Sensor KY-015 y Arduino

//KY015 DHT11 Temperature and humidity sensor
int DHpin = 8;
byte dat [5];
byte read_data () {
byte data;
for (int i = 0; i < 8; i ++) {
if (digitalRead (DHpin) == LOW) {
while (digitalRead (DHpin) == LOW); // wait for 50us
delayMicroseconds (30); // determine the duration of the high level to determine the data is '0 'or '1'
if (digitalRead (DHpin) == HIGH)
data |= (1 << (7-i)); // high front and low in the post
while (digitalRead (DHpin) == HIGH); // data '1 ', wait for the next one receiver
}
}
return data;
}

void start_test () {
digitalWrite (DHpin, LOW); // bus down, send start signal
delay (30); // delay greater than 18ms, so DHT11 start signal can be detected

digitalWrite (DHpin, HIGH);
delayMicroseconds (40); // Wait for DHT11 response

pinMode (DHpin, INPUT);
while (digitalRead (DHpin) == HIGH);
delayMicroseconds (80); // DHT11 response, pulled the bus 80us
if (digitalRead (DHpin) == LOW);
delayMicroseconds (80); // DHT11 80us after the bus pulled to start sending data

for (int i = 0; i < 4; i ++) // receive temperature and humidity data, the parity bit is not considered
dat[i] = read_data ();

pinMode (DHpin, OUTPUT);
digitalWrite (DHpin, HIGH); // send data once after releasing the bus, wait for the host to open the next Start signal
}

void setup () {
Serial.begin (9600);
pinMode (DHpin, OUTPUT);
}

void loop () {
start_test ();
Serial.print ("Current humdity =");
Serial.print (dat [0], DEC); // display the humidity-bit integer;
Serial.print ('.');
Serial.print (dat [1], DEC); // display the humidity decimal places;
Serial.println ('%');
Serial.print ("Current temperature =");
Serial.print (dat [2], DEC); // display the temperature of integer bits;
Serial.print ('.');
Serial.print (dat [3], DEC); // display the temperature of decimal places;
Serial.println ('C');
delay (700);
}

Materiales necesarios para realizar la practica:

Deja una respuesta

Su dirección de correo electrónico no será publicada. Los campos obligatorios estan marcados.

0