
Tutorial Sensores T/H
Hasta ahora hemos principalmente enviado informacion a los componentes. Escribimos datos a una LCD, a motores y LEDs. Ahora veamos como leer informacion de los componentes.
Requisitos:
- Computadora (mac)
- Arduino MEGA (u otra variante Arduino) o incluso Arduino clone, Edison, Raspberry… Este tutorial en particular usa una Arduino MEGA.
- DHT11 Sensor de Temp/Humedad
- Breadboard
- Arduino IDE (https://www.arduino.cc/en/Main/Software)

La conexión es sencilla:

El pin de data, a la par del pin de 5V en el sensor, lo conectamos al pin 5 de la MEGA. Este sera el pin que leeremos en codigo para obtener la data.
El codigo…
#include
dht DHT;
#define DHT11_PIN 5
void setup()
{
Serial.begin(9600);
Serial.println(“DHT TEST PROGRAM “);
Serial.print(“LIBRARY VERSION: “);
Serial.println(DHT_LIB_VERSION);
Serial.println();
Serial.println(“Type,\tstatus,\tHumidity (%),\tTemperature (C)”);
}
void loop()
{
// LEER DATA
Serial.print(“DHT11, \t”);
int chk = DHT.read11(DHT11_PIN);
switch (chk)
{
case DHTLIB_OK:
Serial.print(“OK,\t”);
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.print(“Checksum error,\t”);
break;
case DHTLIB_ERROR_TIMEOUT:
Serial.print(“Time out error,\t”);
break;
case DHTLIB_ERROR_CONNECT:
Serial.print(“Connect error,\t”);
break;
case DHTLIB_ERROR_ACK_L:
Serial.print(“Ack Low error,\t”);
break;
case DHTLIB_ERROR_ACK_H:
Serial.print(“Ack High error,\t”);
break;
default:
Serial.print(“Unknown error,\t”);
break;
}
// DISPLAY DATA
Serial.print(“Hum”);
Serial.print(DHT.humidity, 1);
Serial.print(“,\t”);
Serial.print(“\n”);
Serial.print(“Temp”);
Serial.println(DHT.temperature, 1);
delay(2000);
}
Finalmente, la data. La data la obtenemos del Monitor Serial asi:

DHT BRARY VERSION: 0.1.20
Type, status, Humidity (%), Temperature (C)
DHT11, OK, Hum36.0,
Temp32.0
DHT TEST PROGRAM
LIBRARY VERSION: 0.1.20
Type, status, Humidity (%), Temperature (C)
DHT11, OK, Hum36.0,
Temp32.0
DHT11, Checksum error, Hum36.0,
Temp32.0
DHT11, OK, Hum35.0,
Temp32.0
DHT11, OK, Hum34.0,
Temp32.0
DHT11, OK, Hum34.0,
Temp31.0
DHT11, OK, Hum34.0,
DHT11, Checksum error, Hum34.0,
Temp31.0
DHT11, OK, Hum33.0,
Temp31.0
DHT11, OK, Hum33.0,
Temp30.0
DHT11, OK, Hum35.0,
Temp29.0
Primero inicia midiendo el ambiente, luego el aire acondicionado enfria un poco el ambiente, finalmente pongo un vaso frío (con humedad). Importante notar que a veces los sensores y/o la comunicación fallan y tenemos un Checksum Error. Es importante tenerlo en cuenta para mas adelante para asegurarnos que contemplemos arreglos para esos casos a la hora de almacenar o utilizar o comunicar nuestra data.
Es sencillo no? Con este esquema, si repasamos, básicamente siempre ocupamos un +, un – y uno o mas cables de data. Veremos tutoriales de sensores mas avanzados pronto. Por ahora repasemos el camino:
- Dominamos escribir y leer electricidad a componentes.
- Eventualmente vamos a tener que comunicar esa data desde nuestro robot a algun almacén mas permanente.
- Para eso necesitamos componentes de comunicación.
Excelente! Ahora estamos listos para aprender a comunicar data entre dispositivos. Esta es la base para cualquier control remoto y definitivamente para cualquier robot decente!