History: 4. Lectura de sensores

Revision made 7 years ago by Jaime Laborda. Go to the last revision.

 

1. Tipos de sensores

Todo proyecto de IoT se compone principalmente de dos partes. Por un lado, la parte de Internet, su conexión con la base de datos la API (veremos más adelante que es esto) y demás. Y por otro, la parte de las cosas, es decir, los sensores que nos darán la información que subir a Internet.

Tenemos infinidad de tipos distintos de sensores, entre ellos:

  • Sensores de temperatura: DS18B2, LM35, DHT11...
  • Sensores de humedad ambiental: DHT11, DHT22
  • Sensores de luminosidad: BH1750, LDR
  • Detectores de movimiento: HC-SR501
  • Medidores de distancia: HC-SR04

Y muchos otros más...

  • Si deseas información para medir algún tipo de variable física concreta prueba a buscar el tipo de sensor que necesites acompañado de la palabra clave Arduino en Google.

Buscar Google: Sensor temperatura Arduino

Asimismo, los sensores también se pueden clasificar por la manera en la que nos dan las lecturas. Encontraremos sensores que nos dan la información en digital para poder tratarla directamente con un microcontrolador y sensores que nos darán las lecturas en formato analógico, por lo que para tratarlas con un micro requeriremos de un convertidor de tipo ADC (Analog To Digital).

No profundizaremos demasiado en la teoría que está detrás, ya que se verá posteriormente como implementar en la práctica un sensor de cada tipo.

En este taller práctico y para nuestro propósito de monitorizar las variables de una planta haremos uso de los siguientes sensores:

  • Sensor de temperatura y humedad ambiental DHT11, que nos dará un valor digital. [INSERTAR IMAGEN]
  • Sensor de humedad de suelo (higrómetro) S0021, que nos dará un valor analógico que tendremos que convertir. [INSERTAR IMAGEN]

2. Sensor DHT11

El DHT11 y el DHT22 son dos modelos de una misma familia de sensores, que permiten realizar la medición simultánea de temperatura y humedad.

Estos sensores disponen de un procesador interno que realiza el proceso de medición, proporcionando la medición mediante una señal digital, por lo que resulta muy sencillo obtener la medición desde un microprocesador como Arduino.

Ambos sensores presentan un encapsulado de plástico similar. Podemos distinguir ambos modelos por el color del mismo. El DHT11 presenta una carcasa azul, mientras que en el caso del sensor DHT22 el exterior es blanco.

De ambos modelos, el DHT11 es el hermano pequeño de la familia, y cuenta peores características técnicas. El DHT22 es el modelo superior pero, por contra, tiene un precio superior.

Las características del DHT11 son realmente escasas, especialmente en rango de medición y precisión.

  • Medición de temperatura entre 0 a 50, con una precisión de 2ºC
  • Medición de humedad entre 20 a 80%, con precisión del 5%.
  • Frecuencia de muestreo de 1 muestras por segundo (1 Hz)
  • El DHT11 es un sensor muy limitado que podemos usar con fines de formación, pruebas, o en proyectos que realmente no requieran una medición precisa.

Por el contrario, el modelo DHT22 tiene unas características mucho más aceptables.

  • Medición de temperatura entre -40 a 125, con una precisión de 0.5ºC
  • Medición de humedad entre 0 a 100%, con precisión del 2-5%.
  • Frecuencia de muestreo de 2 muestras por segundo (0.5 Hz)

EL DHT22 (sin llegar a ser en absoluto un sensor de alta precisión) tiene unas características aceptables para que sea posible emplearlo en proyectos reales de monitorización o registro, que requieran una precisión media.

Al ser digital y funcionar con el protocolo OneWire, solo necesitamos un solo cable para realizar las medidas tanto de temperatura como de humedad relativa del aire.

[DESCRIBIR SU USO] [EXPLICAR EL I2C]

Para facilitar la lectura de variables que nos da el sensor existen varias librerías de Arduino que nos serán de gran ayuda. Estas librerías también son compatibles con el ESP8266.

En nuestro caso usaremos la librería SimpleDHT, la cual nos permite obtener la lectura de manera muy simple.

3. Sensor S0021

[EXPLICAR SENSOR, NO ES MÁS QUE DOS ELECTRODOS BLA BLA]

Usaremos el puerto de entrada analógica disponible (A0), este va directamente conectado al único canal del ADC del ESP8266. Dicho ADC tiene una resolución de 10bits por lo que nos dará valores entre 0 y 1023 para valores de voltaje entre 0 y 5 voltios respectivamente (exactamente igual que Arduino).

  • Ejercicio1: Cargamos el siguiente ejemplo y realizaremos pruebas sumergiendo el electrodo directamente en un vaso con agua. ¿Que diferencia observamos respecto al sensor seco?