Sensores y Actuadores

Los sensores son el primer eslabón de la cadena de IoT

Si se le ocurre una propiedad física, probablemente pueda comprar un sensor para medirla.

En su forma más abstracta, un sensor no es más que una caja negra que transduce un estado físico que queremos monitorear en una propiedad eléctrica que podemos medir. Puede ser tan simple como un conjunto de contactos que cambian entre abierto y cortocircuito cuando pulsamos un botón o abrimos una ventana. Puede ser un potenciómetro que cambia la resistencia cuando un humano gira un dial o un robot extiende un brazo.

También puede ser tan complicado como un circuito integrado que detecta la aceleración y el magnetismo a lo largo de tres ejes para determinar la orientación, la aceleración y el rumbo de la brújula hacia su dispositivo IoT.

La mayoría de los sensores se conectan a los nodos de IoT a través de una interfaz digital, serie o analógica. Las interfaces en serie se utilizan normalmente para sensores complejos como los acelerómetros que tienen un interfaz I2C.

Sensores Arduino: https://aprendiendoarduino.wordpress.com/2018/04/14/sensores-arduino-3/

Un actuador es un dispositivo capaz de transformar energía hidráulica, neumática o eléctrica en la activación de un proceso con la finalidad de generar un efecto sobre elemento externo. Este recibe la orden de un regulador, controlador o en nuestro caso un Arduino y en función a ella genera la orden para activar un elemento final de control como, por ejemplo, una válvula.

Existen varios tipos de actuadores como son:

  • Electrónicos
  • Hidráulicos
  • Neumáticos
  • Eléctricos
  • Motores
  • Bombas

Actuadores y periféricos Arduino: https://aprendiendoarduino.wordpress.com/2015/03/31/actuadores-y-perifericos-de-salida/

Sensores no son solo los sensores que conectamos a un microcontrolador como Arduino, podemos tener una red de sensores externos que podemos integrar en nuestra red como:

  • Autómatas de los que recojo datos mediante modbus TCP con http://openopc.sourceforge.net/ e integro en las bases de datos o red MQTT.
  • Cámaras vigilando eventos con https://opencv.org/ y que integro con mis datos e interacciona.
  • Dispositivos con interfaces SNMP y adquiere los datos cada minuto guardando en la BBDD combinándolos con los datos recogidos por Arduino.
  • Datos públicos como los de aemet y que uso para activar elementos gestionados por la red MQTT.

Aplicando estos sencillos pasos, somos capaces de conectar el nivel más bajo de la pirámide del Internet de las Cosas (la sensorización) con las capas intermedias que se encargan de procesar y consumir dicha información, tanto de forma discrecional como empleando técnicas más complejas de análisis de datos.

Todo ello, sin comprometer la estabilidad y escalabilidad del sistema global, pudiendo añadir tantos sensores como necesitemos de una forma sencilla y sin preocuparnos de configuraciones extra. A partir de este momento, somos capaces de construir soluciones de mayor complejidad en el mundo de Internet de las Cosas.

Más información:

HW fabricado para IoT https://learn.controleverything.com/

Más información: https://www.artik.io/blog/2015/10/iot-101-sensors/

Ejemplo Sensor DHT11

Conectar una sonda DHT11 a Arduino UNO con Ethernet Shield y publicar datos en el topic “Temperatura” cada 5 segundos con la temperatura detectada. Ver esos datos desde el cliente MQTT.fx

Conexión:

Usar la librería DHT de adafruit https://github.com/adafruit/DHT-sensor-library, recordad que tiene una dependencia de la librería Adafruit Unified Sensor: https://github.com/adafruit/Adafruit_Sensor

Código: https://github.com/jecrespo/Curso-IoT-Open-Source/blob/master/mqtt_temperatura_DHT/mqtt_temperatura_DHT.ino

Si queremos que otro Arduino reciba datos por MQTT al suscribirse al topic “temperatura” usamos la función de callback que imprime el mensaje recibido:

 
void callback(char* topic, byte* payload, unsigned int length) {
 Serial.print("Message arrived [");
 Serial.print(topic);
 Serial.print("] ");
 int i=0;
 for (i=0;i<length;i++) {
   Serial.print((char)payload[i]);
 }
 Serial.println();
}

Si quisiéramos guardar el mensaje recibido en una variable entonces la función de callback es:

 
String data;

void callback(char* topic, byte* payload, unsigned int length) {
 char dataArray[length];
 for (int i=0;i<length;i++) {
   dataArray[i] = (char)payload[i];
 }
 data = str(dataArray)
}

Código: https://github.com/jecrespo/Curso-IoT-Open-Source/blob/master/mqtt_temperatura_suscriptor/mqtt_temperatura_suscriptor.ino

Más información: https://ricveal.com/blog/arduino-mqtt/

Anuncios

Un pensamiento en “Sensores y Actuadores

  1. Pingback: Saber más de IoT… | Aprendiendo Arduino

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.