TEORÍA: Monitor, sensores (DHT11) y las «librerías» (libraries)

En esta práctica vamos a aprender a usar el monitor en serie, un sensor de humedad/temperatura y las librerías.

Sensores

Un sensor es un objeto capaz de detectar magnitudes físicas o químicas, llamadas variables de instrumentación, y transformarlas en variables eléctricas. Las variables de instrumentación pueden ser por ejemplo: intensidad lumínica, temperatura, distancia, aceleración, inclinación, presión, desplazamiento, fuerza, torsión, humedad, movimiento, pH, etc. Una magnitud eléctrica puede ser una resistencia eléctrica (como en una RTD), una capacidad eléctrica (como en un sensor de humedad), una tensión eléctrica (como en un termopar), una corriente eléctrica (como en un fototransistor), etc. En esta práctica usaremos el DHT11 que dispone de un sensor capacitivo para medir la humedad y de un termistor, un tipo de semiconductor.

Monitor «SERIAL»: un puerto en serie

Un puerto serie envía la información mediante una secuencia de bits. Para ello se necesitan al menos dos conectores para realizar la comunicación de datos, RX (recepción) y TX (transmisión). Es la manera que tiene el arduino para comunicarse con ordenador.

Cuando la placa transmite datos veras que se encienden y apagan los ledes TX y RX. Los pines digitales 0 y 1 están vinculados con estos ledes, por eso verás que por ahora no los estamos usando.

Importar librerías

Las librerías son como pequeños programas que podemos incorporar al programa que subimos al arduino, para ello se usa el comando #include con la librería a añadir. Antes debemos o tener la librería instalada en nuestro ordenador (en el programa IDE de arduino) o importarla antes de subir el programa.

OJO! En los equipos del aula informática el IDE de linux es antiguo y no permite importar directamente librerías. Es necesario usar Windows en caso de que haya que cargar librerías.

En windows:

Luego se navega hasta el archivo zip y se abre.

Una vez cargada ya puedes subir el programa a la placa.

Para cargar librerías en linux:

OJO! ESTO NO FUNCIONA EN LA VERSIÓN 1.0 DE ARDUINO (la que hay en el aula informática)

Después se navega y se carga la librería deseada:

Una vez cargada ya puedes subir el programa a la placa.

Si no encuentras la librería en el cd también la puedes descargar ahí:

SimpleDHT

EJERCICIO 1

Contruye el siguiente circuito:

Montar el led RGB es opcional para esta práctica.

Monta el siguiente código :

#include <SimpleDHT.h> //Incluye la librería que nos va a ayudar a manejar el sensor
 int pinDHT11 = 2; //define el pin 2 como el pin donde tenemos conectado el sensor
 SimpleDHT11 dht11; //le especifica a la libreria que sensor estamos usando.

void setup() {
 Serial.begin(9600); // abre un puerto serie con la frecuencia estándar (9600 baudios)
 }

void loop() {

Serial.println("================================="); // imprime en el monitor lo que está entre las comillas (vale para separar datos) desde el comienzo de una línea (Serial.println)
 Serial.println("Sensor de temperatura y humedad DHT11"); // imprime en el monitor lo que está entre las comillas desde el comienzo de una línea (Serial.println)

// lee los datos
 byte temperature = 0;
 byte humidity = 0;
 byte data[40] = {0};
 if (dht11.read(pinDHT11, &temperature, &humidity, data)) {
 Serial.print("La lectura del DHT11 ha fallado"); // imprime en el monitor un mensaje de error si los datos obtenidos no son correctos
 return;
 }

Serial.print("Datos RAW Bits: ");// imprime en el monitor los datos recibidos en binario
 for (int i = 0; i < 40; i++) {
 Serial.print((int)data[i]);
 if (i > 0 && ((i + 1) % 4) == 0) {
 Serial.print(" ");
 }
 }
 Serial.println(""); // imprime en el monitor lo que está entre las comillas,
 //nada en este caso, pero se lleva el cursor al comienzo de una línea (Serial.println)

Serial.print("Datos procesados: "); // ahora va a imprimir en el monitor pero sin empezar una línea, va a hacerlo desde donde se quedó el cursor (Serial.print)
 Serial.print((int)temperature); Serial.print(" *C, "); // ahora va a imprimir el valor medido en centígrados (Serial.print) y luego “*C” (unidades) para luego volver a una línea nueva (Serial.println)
 Serial.print((int)humidity); Serial.println(" %"); // ahora va a imprimir el valor medido de humedad relativa (Serial.print) y luego “%” (unidades) para luego volver a una línea nueva (Serial.println)s

//el DHT11 puede funcionar una vez por segundo (1 hercio) por lo que le hacemos esperar 1000ms
 delay(1000);
 }

ANTES DE SUBIRLO IMPORTA LA LIBRERÍA DEL DHT (SimpeDHT)

MONITOREAR LA TEMPERATURA

Conecta el Arduino al USB y abre el Serial clicando en el icono.

Compueba que la Temperatura y la humedad responden a los cambios que puedan recibir.

Más teoría sobre Serials y comandos relacionados en http://playground.arduino.cc/ArduinoNotebookTraduccion/Serial

PUNTO EXTRA

Debes cumplir los 3 puntos:

1) Modifica el código para que la lectura del sensor sea cada dos segundos y esta sea presentada con los grados y la humedad relativa en distintas líneas. A presentar en clase antes de la fecha límite de la práctica.

2) ¿Cuántos símbolos por minuto transmite el arduino al Serial si usamos la configuración estándar? A responder por email a robotica@santodomingodesilos.org

3) ¿Sobra algún cable en el esquema adjunto de fritzing? A responder por email a robotica@santodomingodesilos.org

Práctica 5 – Monitor, sensores (DHT11) y las «librerías» (libraries)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *