Esta excelente introducción a los tableros y sensores de prototipos le permitirá recopilar datos de Arduinos y Raspberry Pis en muy poco tiempo.
El Internet de las cosas es uno de los temas tecnológicos más importantes y prometedores de la actualidad. Algunos investigadores de mercado estiman que hay más de 20 mil millones de dispositivos conectados y contando. A nuestro alrededor, hay teléfonos inteligentes, dispositivos portátiles y otros dispositivos, todos los cuales usan sensores. Hoy en día, los sensores juegan un papel importante en nuestra vida cotidiana y en IoT. Los sensores monitorean nuestro estado de salud (por ejemplo, un latido cardíaco), la calidad del aire, la seguridad del hogar y se usan ampliamente en el Internet industrial de las cosas (IIoT) para monitorear los procesos de producción. Por estos motivos, es importante saber cómo funcionan y cómo podemos usarlos para obtener información.
¿Qué es un sensor?
En términos generales, un sensor es un dispositivo que puede detectar cambios en un entorno. Por sí solo, un sensor es inútil, pero cuando lo usamos en un sistema electrónico, juega un papel clave. Un sensor puede medir un fenómeno físico (como temperatura, presión, etc.) y transformarlo en una señal eléctrica.
Estas tres características deberían estar en la base de un buen sensor:
- Debe ser sensible al fenómeno que mide
- No debe ser sensible a otros fenómenos físicos.
- No debe modificar el fenómeno medido durante el proceso de medición.
Existe una amplia gama de sensores que podemos explotar para medir casi todas las propiedades físicas que nos rodean. Algunos sensores comunes que son ampliamente adoptados en la vida cotidiana incluyen termómetros, sensores de presión, sensores de luz, acelerómetros, giroscopios, sensores de movimiento, sensores de gas y muchos más.
Un sensor puede describirse usando varias propiedades, siendo la más importante:
- Rango: los valores máximos y mínimos del fenómeno que el sensor puede medir.
- Sensibilidad: el cambio mínimo del parámetro medido que causa un cambio detectable en la señal de salida.
- Resolución: el cambio mínimo en el fenómeno que el sensor puede detectar.
Clasificación del sensor
- Pasivo o activo. Los sensores pasivos no requieren una fuente de alimentación externa para monitorear un entorno, mientras que los sensores activos requieren dicha fuente para funcionar.
- Otra clasificación se basa en el método utilizado para detectar y medir la propiedad (mecánica, química, etc.).
- Analógico y Digital. Los sensores analógicos producen una señal analógica o continua, mientras que los sensores digitales producen una señal discreta.
Existen otras formas y métodos para agrupar sensores, pero las clasificaciones que se muestran arriba son las más fáciles.
Cómo usar sensores en IoT
El desarrollo de placas de creación de prototipos y el bajo precio de los sensores nos permiten usarlos fácilmente en proyectos de IoT. Existen varias placas de creación de prototipos en el mercado, adecuadas para diferentes proyectos según las características y especificaciones. En este contexto, consideraremos las dos placas más populares: Arduino Uno y Raspberry Pi 2.
Este artículo explorará cómo conectar diferentes sensores a estas placas y cómo interactuar con ellas.
Antes de sumergirse en los detalles sobre cómo usar los sensores con estas placas, es importante tener en cuenta que cada sensor tiene su propio rango de voltaje de funcionamiento. Este parámetro es muy importante porque el voltaje suministrado por la placa no debe ser más alto que el voltaje máximo permitido por el sensor. Por lo tanto, es importante leer la hoja de datos del sensor cuidadosamente antes de conectarla a la placa para evitar daños. El mismo principio es válido para la señal de salida, que debe ser inferior al voltaje máximo que la placa puede tolerar.
Cómo usar Arduino con sensores
El primer y más popular tablero es el Arduino Uno. Es una placa de microcontrolador basada en un ATmega328P. Es muy fácil de usar y un buen punto de partida. Esta placa proporciona 6 pines analógicos y 14 pines digitales. Es perfecto para usar con sensores analógicos y digitales.
Cómo medir la temperatura usando Arduino
La forma más fácil de comenzar es conectar un sensor analógico al Arduino. Un sensor analógico, como se indicó anteriormente, es un sensor que proporciona una señal continua. Para nuestro primer ejemplo básico, conectaremos un sensor de temperatura simple, un TMP36. Para obtener más información, puede consultar la hoja de datos del sensor. En términos generales, el voltaje de salida de este sensor es directamente proporcional a la temperatura ambiental. Arduino proporciona varios pines de entrada analógica, etiquetados con una "A", que son adecuados para aceptar señales analógicas provenientes de un sensor. El siguiente esquema describe cómo conectar el sensor:
El código para leer la temperatura es simple:
const int tempSensorPin = A1;
void setup() {
Serial.begin(9600);
}
void loop() {
int pinValue = analogRead(tempSensorPin);
Serial.println("Pin value: " + String(pinValue));
float voltage = (pinValue / 1024.0) * 5.0;
Serial.println("Voltage: " + String(voltage));
float temperature = (voltage - 0.5) * 100; // °C
Serial.println("Temperature: " + String(temperature));
delay(5000);
}
Cómo medir la temperatura y la humedad usando Arduino
Ahora es el momento de conectar un sensor digital a un Arduino. Hay varios sensores digitales disponibles, pero en aras de la simplicidad, consideraremos un sensor digital común llamado DHT11. Este sensor mide la temperatura y la humedad. Es un sensor muy barato que proporciona una salida digital. En este escenario, el pin de datos del sensor debe estar conectado al pin Arduino digital, como se muestra a continuación:
El código es muy simple. Aunque podemos analizar la señal digital y leer la temperatura y la humedad, utilizaremos una biblioteca para simplificar el desarrollo. La biblioteca está disponible en el IDE de Arduino en el elemento del menú Bosquejo-> Incluir biblioteca.
#include "DHT.h"
#define PIN 8
#define DHTTYPE DHT11 // sensor type
DHT dht(PIN, DHTTYPE);
void setup() {
Serial.begin(9600);
}
void loop() {
int temp = dht.readTemperature();
int hum = dht.readHumidity();
Serial.println("Temperature: " + String(temp));
Serial.println("Humidity: " + String(hum));
delay(5000);
}
Al ejecutar el código anterior, Arduino registrará la temperatura y la humedad cada 5 segundos.
Cómo conectar un sensor I2C
Un sensor I2C es un bus serie utilizado para conectar periféricos a microprocesadores. Es ampliamente utilizado y requiere cuatro pines diferentes:
- Vin
- GND
- CLK (Clock)
- SDA (Data)
Para experimentar con el sensor I2C con Arduino, analizaremos el sensor BMP280 / BME280. Este sensor mide, entre otras propiedades, la presión barométrica. El siguiente diagrama muestra cómo conectar un BMP280 a Arduino:
Como puede ver, hay cuatro conexiones diferentes. La misma conexión se puede usar con un BME280. No olvide conectar el pin CLK del sensor al Arduino CLK y el pin SDA (los datos) al Arduino SDA. Además, el pin SDO no puede dejarse flotando, por lo que debe conectarlo a tierra o a Vcc. El código fuente para leer la presión se muestra a continuación:
#include
#include
#include
//BMP280
Adafruit_BMP280 bmp;
void setup() {
Serial.begin(9600);
if (!bmp.begin()) {
Serial.println("Could not find a valid BMP280
sensor, check wiring!");
while (1);
}
}
void loop() {
float pressure = bmp.readPressure();
Serial.println("Pressure: " + String(pressure));
delay(5000);
}
Antes de ejecutar el código anterior, debe importar una biblioteca para manejar el sensor, como se describe en el ejemplo anterior.
Cómo usar sensores con una Raspberry Pi
Raspberry Pi es una computadora de placa única desarrollada por la Fundación Raspberry Pi. Hay varias versiones de Raspberry Pi con diferentes especificaciones, pero todas tienen su propio sistema operativo basado en Linux. Es similar a una PC porque admite salida de video, puertos USB y teclados. Es una placa muy poderosa, y los ejemplos a continuación muestran solo un poco de su poder.
Cómo usar sensores de movimiento
Para controlar los movimientos, utilizaremos un sensor PIR, que significa infrarrojo pasivo. Utiliza un sensor infrarrojo para detectar la radiación de bajo nivel emitida por un cuerpo cálido. En pocas palabras, cuando el nivel de radiación cambia, significa que un cuerpo cálido se está moviendo hacia su área de detección. Este sensor utiliza un pin digital que se pone bajo (o alto) cuando se detecta movimiento. El siguiente esquema muestra cómo conectar el sensor a Raspberry Pi. La conexión puede cambiar si usa una versión PIR diferente o una placa Raspberry Pi diferente:
El código de Python se muestra a continuación:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
sensorPin = 7
GPIO.setup(sensorPin, GPIO.IN)
while True:
if GPIO.input(sensorPIN) == GPIO.LOW:
print "Motion detected"
else:
print "No motion"
time.sleep(0.5)
Cuando el PIR detecta un movimiento, esta sencilla aplicación registrará "Movimiento detectado".
Cómo detectar gas
Otro sensor interesante es el sensor MQ-4. El MQ-4 tiene una alta sensibilidad al gas natural. Puede responder rápidamente y es muy fácil de usar. Las conexiones entre el sensor y Raspberry Pi son las mismas que en el ejemplo PIR. Asegúrese de usar el pin digital del sensor y asegúrese de que el voltaje de salida, que debe ser inferior a 3V. Si el sensor tiene una salida superior a 3V, debe usar un convertidor de nivel lógico. El código para usar el MQ-4 es el mismo que el del ejemplo anterior.