Arduino (IoT): Simple Tutorial Sensores T/H

Arduino Honduras Santiapps Marcio Valenzuela

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:

  1. Computadora (mac)
  2. Arduino MEGA (u otra variante Arduino) o incluso Arduino clone, Edison, Raspberry…  Este tutorial en particular usa una Arduino MEGA.
  3. DHT11 Sensor de Temp/Humedad
  4. Breadboard
  5. Arduino IDE (https://www.arduino.cc/en/Main/Software)
Arduino Sensor Tutorial Santiapps Marcio Valenzuela
Arduino Sensor

 

La conexión es sencilla:

Arduino Sensor Tutorial Santiapps Marcio Valenzuela
Arduino Sensor

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

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:

Arduino Sensor Tutorial Santiapps Marcio Valenzuela
Arduino Sensor Tutorial Santiapps Marcio Valenzuela

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!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s