Tabla de contenido:
- Paso 1: preparación del hardware
- Paso 2: Habilitación de SSH
- Paso 3: Instalación de Cloud4RPi
- Paso 4: Conexión del sensor
- Paso 5: Envío de lecturas de sensores a la nube
- Paso 6: Gráficos y alarmas
Video: Monitoreo de temperatura y humedad con Raspberry Pi: 6 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Se acerca el verano, y quienes no tengan aire acondicionado deben estar preparados para controlar manualmente la atmósfera en el interior. En esta publicación, estoy describiendo la forma moderna de medir los parámetros más importantes para el confort humano: temperatura y humedad. Estos datos recopilados se envían a la nube y se procesan allí.
Estoy usando una placa Raspberry Pi 1 y el sensor DHT22. Puede hacer lo mismo en cualquier computadora que tenga Internet, GPIO y Python. El sensor DHT11 más económico también funciona bien.
Paso 1: preparación del hardware
Comencemos desde el principio, ya que no usé mi Raspberry Pi durante bastante tiempo.
Necesitaremos:
- Placa Raspberry Pi (u otra plataforma orientada a IoT).
- Tarjeta SD o microSD (según plataforma).
- 5V / 1A a través de micro-USB.
- Cable LAN, que proporciona la conexión a Internet.
- Pantalla HDMI, pantalla RCA o puerto UART (para habilitar SSH).
El primer paso es descargar Raspbian. Elegí la versión Lite, ya que voy a usar SSH en lugar de display. Las cosas han cambiado desde la última vez que lo hice: ahora hay un gran software de grabación llamado Etcher, que funciona perfectamente y tiene un diseño impresionante..
Después de que se completó la grabación de la imagen, inserté la tarjeta SD en mi Pi, enchufé los cables de alimentación y LAN, y después de un tiempo, mi enrutador registró el nuevo dispositivo.
Paso 2: Habilitación de SSH
SSH está deshabilitado de forma predeterminada. Puedo usar el convertidor UART-USB o simplemente conectar una pantalla para acceder al shell y habilitar SSH.
Después de reiniciar, finalmente estoy dentro. Lo primero es lo primero, actualice:
sudo apt update && sudo apt upgrade -y
Ahora conectemos este nuevo dispositivo a la nube.
Paso 3: Instalación de Cloud4RPi
Decidí probar la plataforma en la nube llamada Cloud4RPi, que está diseñada para IoT.
De acuerdo con los documentos, necesitamos los siguientes paquetes para que se ejecute:
sudo apt install git python python-pip -y
La biblioteca cliente se puede instalar con un solo comando:
sudo pip instalar cloud4rpi
Ahora necesitamos un código de muestra para asegurarnos de que funcione.
clon de git https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python clon de git https://gist.github.com/f8327a1ef09ceb1ef142fa68701270de.git e && mv e / minimal.py minimal.py && rmdir -re
Decidí ejecutar minimal.py, pero no me gustan los datos falsos. Afortunadamente, noté una manera fácil de hacer que los datos de diagnóstico sean reales en este ejemplo. Agregue una importación más a la sección de importaciones:
de importación rpi *
Luego elimine estas funciones que proporcionan datos falsos (el rpi.py las define ahora):
def cpu_temp ():
return 70 def dirección_ip (): return '8.8.8.8' def nombre_host (): regresa 'nombre_host' def nombre_o_s (): regresa 'osx'
Ahora necesitamos un token, que permite a Cloud4RPi vincular los dispositivos con las cuentas. Para obtener uno, cree una cuenta en cloud4rpi.io y presione el botón Nuevo dispositivo en esta página. Reemplaza la cadena _YOUR_DEVICE_TOKEN_ en el archivo minimal.py con el token de tu dispositivo y guarda el archivo. Ahora estamos listos para el primer lanzamiento.
python minimal.py
Abra la página del dispositivo y verifique que los datos estén allí.
Pasemos ahora a los datos del mundo real.
Paso 4: Conexión del sensor
Necesitaremos:
- Sensor de humedad DHT22 o DHT11
- Resistencia pull-up (5-10 KΩ)
- Alambres
El sensor DHT22 mide la temperatura y la humedad simultáneamente. El protocolo de comunicación no está estandarizado, por lo que no es necesario habilitarlo en raspi-config; un simple pin GPIO es más que suficiente.
Para adquirir los datos, usaré la gran biblioteca de Adafruit para sensores DHT, pero es posible que no funcione como está. Una vez encontré un extraño retraso constante en el código, que no funcionó para mi hardware, y después de dos años mi solicitud de extracción aún está pendiente. También cambié las constantes de detección de la placa porque mi Raspberry Pi 1 con BCM2835 fue sorprendentemente detectada como Raspberry Pi 3. Desearía que fuera cierto… Por lo tanto, recomiendo usar mi fork. Si tiene algún problema con él, pruebe el repositorio original, tal vez funcione para alguien, pero yo no soy uno de ellos.
clon de git https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT
Como la biblioteca está escrita en C, requiere compilación, por lo que necesita los paquetes build-essential y python-dev.
sudo apt install build-essential python-dev -ysudo python setup.py install
Mientras se instalan los paquetes, conecte el DHT22 como se muestra en la imagen.
Y pruébalo:
cd ~ python -c "importar Adafruit_DHT como d; imprimir d.read_retry (d. DHT22, 4)"
Si ve algo como (39.20000076293945, 22.600000381469727), debe saber que esta es la humedad en porcentajes y la temperatura en grados Celsius.
¡Ahora, montemos todo junto!
Paso 5: Envío de lecturas de sensores a la nube
Usaré minimal.py como base y agregaré la interacción DHT22 en él.
cd cloud4rpi-raspberrypi-python
cp minimal.py ~ / cloud_dht22.py cp rpi.py ~ / rpi.py cd vi cloud_dht22.py
Como DHT22 devuelve tanto la temperatura como la humedad en una sola llamada, los almaceno globalmente y los actualizo solo una vez en una solicitud, asumiendo que la demora entre ellos es de más de 10 segundos. Considere el siguiente código, que adquiere los datos DHT22:
importar Adafruit_DHT
temp, hum = None, None last_update = time.time () - 20 def update_data (): global last_update, hum, temp if time.time () - last_update> 10: hum, temp = Adafruit_DHT.read_retry (Adafruit_DHT. DHT22, 4) last_update = time.time () def get_t (): update_data () return round (temp, 2) si temp no es Ninguno más Ninguno def get_h (): update_data () return round (hum, 2) si hum no es Ninguno más Ninguno
Inserte este código después de las importaciones existentes y edite la sección de variables para que use las nuevas funciones:
variables = {
'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 Humidity': {'type': 'numeric', 'bind': get_h}, 'CPU Temp': {'type ':' numérico ',' enlazar ': cpu_temp}}
Presione el botón rojo para iniciar la transferencia de datos:
python cloud_dht22.py
Entonces puedes consultar la página del dispositivo.
Puedes dejarlo como está, pero prefiero tener un servicio para todo. Esto asegura que el script siempre se esté ejecutando. Creando un servicio con el script totalmente automatizado:
wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py
Iniciar el servicio:
sudo service cloud4rpi start
Y comprobándolo:
pi @ raspberrypi: ~ $ sudo service cloud4rpi status -l
● cloud4rpi.service - Demonio Cloud4RPi Cargado: cargado (/lib/systemd/system/cloud4rpi.service; habilitado) Activo: activo (en ejecución) desde el miércoles 17-05-2017 20:22:48 UTC; Hace 1 minuto PID principal: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560 / usr / bin / python /home/pi/cloud_dht22.py 17 de mayo 20:22:51 raspberrypi python [560]: Publicando iot -hub / messages: {'type': 'config', 'ts': '2017-05-17T20… y'}]} 17 de mayo 20:22:53 raspberrypi python [560]: Publicando iot-hub / messages: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17 de mayo 20:22:53 raspberrypi python [560]: Publicando iot-hub / messages: {'type': 'sistema', 'ts': '2017-05-17T20….4'}}
Si todo funciona como se esperaba, podemos continuar y usar las capacidades de la plataforma Cloud4RPi para manipular los datos.
Paso 6: Gráficos y alarmas
En primer lugar, grafiquemos las variables para ver cómo cambian. Esto se puede hacer agregando un nuevo Panel de control y colocando los gráficos requeridos en él.
Otra cosa que podemos hacer aquí es configurar una alerta. Esta función le permite configurar el rango seguro para una variable. Tan pronto como se sobrepasa el rango, envía una notificación por correo electrónico. En la página de edición del Panel de control, puede cambiar a Alertas y configurar una.
Inmediatamente después de eso, la humedad en mi habitación comenzó a disminuir rápidamente sin ninguna razón aparente, y la alarma pronto siguió.
Puedes usar Cloud4RPi gratis con cualquier hardware que sea capaz de ejecutar Python. En cuanto a mí, ahora siempre sé cuándo encender el humidificador de aire, e incluso puedo conectarlo a un relé para control remoto a través de Cloud4RPi. ¡Estoy preparado para el calor! ¡Bienvenido Verano!
Recomendado:
Monitoreo de temperatura y humedad usando NODE MCU Y BLYNK: 5 pasos
Monitoreo de temperatura y humedad usando NODE MCU Y BLYNK: Hola chicos En este instructivo, aprendamos cómo obtener la temperatura y la humedad de la atmósfera usando el sensor de temperatura y humedad DHT11 usando Node MCU y la aplicación BLYNK
Monitoreo de temperatura y humedad ambiente con ESP32 y AskSensors Cloud: 6 pasos
Monitoreo de temperatura y humedad de la habitación con ESP32 y AskSensors Cloud: en este tutorial aprenderá a monitorear la temperatura y humedad de su habitación o escritorio usando el DHT11 y el ESP32 conectado a la nube. Nuestras actualizaciones de tutoriales se pueden encontrar aquí. Especificaciones: El sensor DHT11 puede medir la temperatura
Monitoreo de temperatura y humedad con Blynk: 6 pasos
Monitoreo de temperatura y humedad usando Blynk: En este tutorial vamos a Monitorear temperatura y humedad usando DHT11 y enviaremos los datos a la nube usando Blynk Componentes requeridos para este tutorial: Sensor de temperatura y humedad Arduino UnoDHT11 Módulo WiFi ESP8266-01
Monitoreo de temperatura y humedad usando SHT25 y Raspberry Pi: 5 pasos
Monitoreo de temperatura y humedad usando SHT25 y Raspberry Pi: Recientemente hemos trabajado en varios proyectos que requerían monitoreo de temperatura y humedad y luego nos dimos cuenta de que estos dos parámetros realmente juegan un papel fundamental para tener una estimación de la eficiencia de trabajo de un sistema. Tanto en la industria
Monitoreo remoto de temperatura y humedad con ESP8266 y la aplicación Blynk: 15 pasos
Monitoreo remoto de temperatura y humedad con ESP8266 y la aplicación Blynk: fue mi primer proyecto con el chip ESP8266. Acabo de construir un nuevo invernadero cerca de mi casa y fue interesante para mí lo que está sucediendo allí durante un día. Me refiero a cómo cambia la temperatura y la humedad. ¿El invernadero está lo suficientemente ventilado? Así que decido