Cómo construir un monitor de temperatura Raspberry Pi

La temperatura y la humedad son puntos de datos vitales en el mundo industrial actual. El monitoreo de datos ambientales para salas de servidores, congeladores comerciales y líneas de producción es necesario para que las cosas funcionen sin problemas. Hay muchas soluciones que van desde lo básico a lo complejo y puede parecer abrumador en lo que su negocio necesita y por dónde comenzar.

Explicaremos cómo construir y usar un sensor de temperatura Raspberry Pi con diferentes sensores de temperatura. Este es un buen lugar para comenzar, ya que estas soluciones son económicas, fáciles de hacer y le brindan una base sobre la que construir para otro monitoreo ambiental.

Una Raspberry Pi es una computadora de una sola placa económica que le permitirá conectarse a un sensor de temperatura y transmitir los datos a un software de visualización de datos. Raspberry Pi comenzó como una herramienta de aprendizaje y ha evolucionado hasta convertirse en una herramienta de trabajo industrial. La facilidad de uso y la capacidad de codificar con Python, el lenguaje de programación de más rápido crecimiento, los ha convertido en una solución ideal.

Querrá una Raspberry Pi que tenga WiFi incorporada, que sea cualquier modelo 3, 4 y zero W / WH. Entre los que puede elegir en función de los precios y las características. El Zero W/WH es el más barato, pero si necesita más funcionalidad, puede elegir entre el 3 y el 4. Solo puede comprar un cero W/WH a la vez debido a las limitaciones de la Fundación Raspberry Pi. Sea cual sea la Pi que elijas, asegúrate de comprar un cargador, ya que así es como alimentarás la Pi y una tarjeta SD con Raspbian para que la instalación del sistema operativo sea lo más fácil posible.

Hay otra computadora de placa única que también puede funcionar, pero eso es para otro momento y otro artículo.

Sensores

Recomendamos usar cuatro sensores porque son económicos, fáciles de conectar y ofrecen lecturas precisas: DSB18B20, DHT22, BME280 y Raspberry Pi Sense HAT.

DHT22: Este sensor de temperatura y humedad tiene una precisión de temperatura de + / – 0,5 C y un rango de humedad de 0 a 100 por ciento. Es fácil de conectar a la Raspberry Pi y no requiere ninguna resistencia extraíble.

DSB18B20: Este sensor de temperatura tiene una salida digital, que funciona bien con Raspberry Pi. Tiene tres cables y requiere de un circuito y la resistencia de la conexión.

BME280: Este sensor mide la temperatura, la humedad y la presión barométrica. Se puede usar tanto en SPI como en I2C.

Sense HAT: este es un complemento para Raspberry Pi que tiene LED, sensores y un pequeño joystick. Se conecta directamente al GPIO en el Raspberry Pi, pero el uso de un cable plano le proporciona lecturas de temperatura más precisas.

Configuración de Raspberry Pi

Si es la primera vez que configura su Raspberry Pi, deberá instalar el Sistema Operativo Raspbian y conectar su Pi a WiFi. Esto requerirá un monitor y un teclado para conectarse a la Pi. Una vez que lo tenga en funcionamiento y conectado al WiFi, su Pi estará listo para funcionar.

Cuenta de Estado inicial

Necesitará un lugar donde enviar sus datos para mantener un registro histórico y ver el flujo de datos en tiempo real para que usemos el Estado inicial. Vaya a https://iot.app.initialstate.com y cree una nueva cuenta o inicie sesión en su cuenta existente.

A continuación, necesitamos instalar el módulo de Estado Inicial de Python en su Pi. En un símbolo del sistema (no olvide primero SSH en su Pi), ejecute el siguiente comando:

$ cd /home/pi/
$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash

Después de ingresar el comando curl en el símbolo del sistema, verá algo similar a la siguiente salida en la pantalla:

Cuando se le solicite obtener automáticamente un script de ejemplo, escriba y. Esto creará un script de prueba que podemos ejecutar para garantizar que podamos transmitir datos al Estado Inicial. El siguiente mensaje le preguntará dónde desea guardar el archivo de ejemplo. Puede escribir una ruta local personalizada o presionar enter para aceptar la ubicación predeterminada. Finalmente, se le preguntará qué Estado inicial de la aplicación está utilizando. Si has creado una cuenta recientemente, selecciona la opción 2, introduce tu nombre de usuario y contraseña. Después de eso, la instalación estará completa.

Echemos un vistazo al script de ejemplo que se creó.

$ nano is_example.py

En la línea 15, verá una línea que comienza con streamer = Streamer(bucket_ .... Esta línea crea un nuevo cubo de datos llamado «Ejemplo de secuencia de Python» y está asociado a su cuenta. Esta asociación ocurre debido al parámetro access_key="..." en esa misma línea. Esa larga serie de letras y números es la clave de acceso de su cuenta de Estado inicial. Si va a su cuenta de Estado inicial en su navegador web, haga clic en su nombre de usuario en la parte superior derecha, luego vaya a «mi configuración», encontrará la misma clave de acceso aquí en «Claves de acceso de transmisión».

Claves de acceso al flujo de Estado inicial

Cada vez que cree un flujo de datos, esa clave de acceso dirigirá ese flujo de datos a su cuenta (por lo que no comparta su clave con nadie).

Ejecute el script de prueba para asegurarse de que podemos crear un flujo de datos a su cuenta de Estado inicial. Ejecute lo siguiente:

$ python is_example.py

Vuelva a su cuenta de Estado inicial en su navegador web. Un nuevo cubo de datos llamado «Ejemplo de secuencia de Python» debería haber aparecido a la izquierda en su estante de registro (es posible que tenga que actualizar la página). Haga clic en este cubo y luego haga clic en el icono de Ondas para ver los datos de prueba.

Panel de ejemplo de Secuencia de Python de Estado inicial

Si está utilizando Python 3, puede instalar el Módulo de Transmisión de Estado Inicial que puede instalar con el siguiente comando:

pip3 install ISStreamer

Ahora estamos listos para configurar el sensor de temperatura con el Pi para transmitir la temperatura a un tablero de instrumentos.

Solución DHT22

Necesitará los siguientes elementos para construir esta solución:
– Sensor de temperatura y humedad DHT22

El DHT22 tendrá tres pines: 5V, Gnd y datos. Debe haber una etiqueta de pin para la alimentación en el DHT22 (por ejemplo, ‘ + ‘ o ‘5V’). Conecte esto al pin 2 (el pin superior derecho, 5V) de la Pi. El pin Gnd estará etiquetado como ‘ – ‘o’ Gnd ‘ o algo equivalente. Conecte esto al pin 6 Gnd (dos pines por debajo del pin de 5 V) en el Pi. El pin restante en el DHT22 es el pin de datos y se etiquetará como ‘out’ o ‘s’o ‘ data’. Conecte esto a uno de los pines GPIO de la Pi, como GPIO4 (pin 7). Una vez que esté conectado, encienda su Pi.

Para esta solución necesitaremos usar Python 3 y la biblioteca CircuitPython, ya que Adafruit ha dejado en desuso la biblioteca DHT Python.

Instale el módulo CircuitPython – DHT Python en un símbolo del sistema para que la lectura de los datos del sensor DHT22 sea súper fácil:

$ pip3 install adafruit-circuitpython-dht
$ sudo apt-get install libgpiod2

Con nuestro sistema operativo instalado junto con nuestros dos módulos Python para leer datos de sensores y enviar datos al Estado inicial, estamos listos para escribir nuestro script Python. El siguiente script creará/añadirá a un bucket de datos de estado inicial, leerá los datos del sensor DHT22 y enviará esos datos a un panel en tiempo real. Todo lo que necesita hacer es modificar las líneas 6-11.

  • Línea 7— Este valor debe ser único para cada nodo/sensor de temperatura. Este podría ser el nombre de la habitación de su nodo de sensor, la ubicación física, el identificador único o lo que sea. Solo asegúrese de que sea único para cada nodo para asegurarse de que los datos de este nodo vayan a su propio flujo de datos en su panel.
  • Línea 8: Este es el nombre del cubo de datos. Esto se puede cambiar en cualquier momento en la interfaz de usuario de Estado inicial.
  • Línea 9 – Esta es su llave de cubo. Debe ser la misma clave de cubo para cada nodo que desee que se muestre en el mismo panel.
  • Línea 10: Esta es la clave de acceso de su cuenta de Estado inicial. Copia y pega esta clave de tu cuenta de Estado inicial.
  • Línea 11 – Este es el tiempo entre las lecturas del sensor. Cambie en consecuencia.
  • Línea 12 – Puede especificar unidades métricas o imperiales en la línea 11.

Después de haber establecido las líneas 7-12 en su script Python en su Pi, guarde y salga del editor de texto. Ejecute el script con el siguiente comando:

$ python3 tempsensor.py
Este es un ejemplo de uso del sensor DHT22 con Raspberry Pi

Ahora tendrá datos que se envían a un panel de estado inicial. Ve a la sección final de este artículo para obtener detalles sobre cómo personalizar tu panel de control.

DSB18B20 Solución

Usted necesitará los siguientes elementos para crear esta solución:
-DSB18B20 Sensor de Temperatura
-Resistor de 10K
-Protoboard
-40-Pin Placa Adaptadora + Cable de Cinta
-Cables

El cable plano que conecta a los pines GPIO de la Pi. El DS18B20 tiene tres cables. El cable rojo se conecta a 3,3 V. El cable azul/negro se conecta a tierra. El cable amarillo se conecta a una resistencia/pasador 4 extraíble. Una vez que esté conectado, encienda su Pi.

La última versión de Raspbian (kernel 3.18) requiere una adición a su /boot/config.archivo txt para que el Pi se comunique con el DS18B20. Ejecute lo siguiente para editar este archivo:

$ sudo nano /boot/config.txt

Si la siguiente línea no está ya en este archivo (si lo está, es probable que esté en la parte inferior del archivo), agréguela y guarde el archivo.

dtoverlay=w1-gpio,gpiopin=4

Reinicie su Pi para que los cambios surtan efecto.

$ sudo reboot

Para iniciar la interfaz de lectura del sensor de temperatura, necesitamos ejecutar dos comandos. Vaya a un símbolo del sistema en su Pi o SSH en su Pi. Escriba los siguientes comandos:

$ sudo modprobe w1-gpio$ sudo modprobe w1-therm

La salida de su sensor de temperatura ahora se escribe en un archivo en su Pi. Para encontrar ese archivo:

$ cd /sys/bus/w1/devices

En este directorio, habrá un subdirectorio que comienza con » 28 -«. Lo que viene después del «28 -» es el número de serie de su sensor. cd en ese directorio. Dentro de este directorio, un archivo llamado w1_slave contiene la salida de su sensor. Utilice nano para ver el contenido del archivo. Una vez que haya ingresado en el archivo, se verá algo como esto:

a2 01 4b 46 7f ff 0e 10 d8 : crc=d8 YESa2 01 4b 46 7f ff 0e 10 d8 t=26125

El número después de «t=» es el número que queremos. Esta es la temperatura en 1/1000 grados Celsius (en el ejemplo anterior, la temperatura es de 26.125 C). Solo necesitamos un programa simple que lea este archivo y analice ese número. Llegaremos a eso en un segundo.

Todo está listo para que comencemos a transmitir datos. Para abrir el editor de texto, escriba lo siguiente en el símbolo del sistema:

$ nano temperature.py

Copie y pegue el siguiente código en el editor de texto.

Debe colocar su clave de acceso de Estado inicial en la línea 6 en lugar de PUT_YOUR_ACCESS_KEY_HERE (copie la clave de transmisión en su portapapeles desde ‘Mi cuenta’ y péguela en el código de nano en su terminal).

La línea 6 creará un cubo llamado «Flujo de temperatura» en su cuenta de Estado Inicial (suponiendo que especificó correctamente su clave de acceso en esta misma línea). Las líneas 8 a 30 de este script simplemente interactúan con el sensor DS18B20 para leer su temperatura desde el archivo w1_slave del que hablamos anteriormente. La función read_temp_raw() de la línea 15 lee el archivo w1_slave sin procesar. La función read_temp () en la línea 21 analiza la temperatura de ese archivo. La línea 34 llama a estas funciones para obtener la temperatura actual. La línea 35 convierte la temperatura de Celsius a Fahrenheit. Las líneas 35 y 36 transmiten la temperatura a su cuenta de Estado inicial. La línea 37 detiene el script durante 0,5 segundos, configurando la frecuencia con la que se leerá y transmitirá el sensor de temperatura.

Estamos listos para comenzar a transmitir. Ejecute el siguiente comando:

$ sudo python temperature.py

Vuelva a su cuenta de Estado inicial en su navegador web y busque un nuevo cubo de datos llamado Flujo de temperatura. Debería ver la transmisión de datos de temperatura en vivo. Varíe la temperatura del sensor sosteniéndolo en la mano o poniéndolo en un vaso de hielo.

Ahora tendrá datos que se envían a un panel de estado inicial. Ve a la sección final de este artículo para obtener detalles sobre cómo personalizar tu panel de control.

Solución BME280

Necesitará lo siguiente para crear esta solución:
– BME280 Sensor de presión, Temperatura, & Humedad

Si está utilizando un BME280 que no es de Adafruit, su configuración y código serán diferentes. Puede encontrar un ejemplo de cómo usar ese sensor BME280 en este artículo sobre el monitoreo de humedad del espacio de arrastre.

Este sensor viene con pines que necesitará soldar en el sensor. Recomiendo el uso de un tablero con los pines lado largo hacia abajo en el tablero para hacer de soldadura más fácil. Una vez que hayas completado esto, necesitamos conectar el sensor a la Pi.

Conecte el pin VIN del sensor al pin 1 de 3,3 V del Pi. Conecte el pasador GND en el sensor, el pasador de tierra 6 en el Pi. Conecte el pin SCK del sensor al pin SCL 5 del Pi. Conecte el pin SDI del sensor al pin SDA 3 del Pi.

Necesitará usar Python 3 para esta solución e instalar el módulo de transmisión de Estado Inicial utilizando el método de instalación pip3. También necesitará instalar algunas bibliotecas de Adafruit Python.

pip3 install adafruit-blinka
pip3 install pureio
pip3 install spidev
pip3 install adafruit-GPIO
pip3 install adafruit-circuitpython-bme280

Para utilizar el sensor necesitamos habilitar I2C en el Pi.

sudo raspi-config

Esto abrirá la Herramienta de Configuración del software Raspberry Pi. Vaya a Opciones de interfaz de Opción 5. Desde aquí, vaya a I2C. Le preguntará si desea habilitar I2C, Seleccione Sí y Finalizar. Ahora tiene I2C habilitado para comunicarse con el sensor.

Podemos probar esto ejecutando lo siguiente:

sudo i2cdetect -y 1

Esto verificará que su Pi vea el sensor. En la forma en que se conecta, debe mostrar el sensor en la dirección 77. Si no detecta el sensor, reinicie su Pi, vuelva a habilitar la opción de interfaz I2C en su Pi e inténtelo de nuevo.

Una vez detectado el sensor, es hora de ejecutar nuestro código principal que enviará los datos al Estado inicial. Creado un archivo llamado bme280sensor.py con el comando nano. Copie y pegue el código de la síntesis en el editor de texto. Tendrá que hacer cambios en las líneas 12 a 19.

  • Línea 12 — Este valor debe ser único para cada nodo/sensor de temperatura. Este podría ser el nombre de la habitación de su nodo de sensor, la ubicación física, el identificador único o lo que sea. Solo asegúrese de que sea único para cada nodo para asegurarse de que los datos de este nodo vayan a su propio flujo de datos en su panel.
  • Línea 13: Este es el nombre del cubo de datos. Esto se puede cambiar en cualquier momento en la interfaz de usuario de Estado inicial.
  • Línea 14 – Esta es su llave de cubo. Debe ser la misma clave de cubo para cada nodo que desee que se muestre en el mismo panel.
  • Línea 15: Esta es la clave de acceso de su cuenta de Estado inicial. Copia y pega esta clave de tu cuenta de Estado inicial.
  • Línea 17 – Esta es la presión de su ubicación (hPa) a nivel del mar. Puede encontrar esta información en la mayoría de los sitios web meteorológicos.
  • Línea 18 – Este es el tiempo entre las lecturas del sensor. Cambie en consecuencia.
  • Línea 19 – Aquí puede especificar unidades métricas o imperiales.

Después de haber establecido las líneas 12-19 en su script Python en su Pi, guarde y salga del editor de texto. Ejecute el script con el siguiente comando:

$ python3 bme280sensor.py

Ahora tendrá datos que se envían a un panel de estado inicial. Ve a la sección final de este artículo para obtener detalles sobre cómo personalizar tu panel de control.

Solución Sense HAT

Necesitará los siguientes elementos para construir esta solución:
-Raspberry Pi Sense HAT
-Cable de extensión IDE de 40 Pines de 6″ Macho a Hembra (opcional para precisión de temperatura)

El primer paso para usar el Sense HAT es instalarlo físicamente en su Pi. Con el Pi apagado, sujete el SOMBRERO como se muestra a continuación.

Conexión Sense HAT a Raspberry Pi

Si decide usar la solución como se muestra arriba, puede notar que las lecturas de temperatura de su Sense HAT serán un poco altas, porque lo son. El culpable es el calor generado por la CPU de la Pi que calienta el aire alrededor del SOMBRERO de Sentido cuando está sentado en la parte superior de la Pi. Para que el sensor de temperatura sea útil, necesitamos alejar el SOMBRERO de la Pi o intentar calibrar la lectura del sensor de temperatura. Una buena solución para alejar el sensor de la Pi es un cable que permite que el sensor cuelgue lejos de la Pi. Un cable de extensión IDE macho a hembra de 6″ y 40 pines hará el truco.

Raspberry Pi en una carcasa con cable de extensión que se conecta al Sense HAT

Una vez que decida las dos opciones, encienda su Pi. Necesitamos instalar la biblioteca de Python para facilitar la lectura de los valores del sensor desde el Sensor HAT. En primer lugar, deberá asegurarse de que todo esté actualizado en su versión de Raspbian:

$ sudo apt-get update

A continuación, instale la biblioteca de Python Sense HAT:

$ sudo apt-get install sense-hat

Reinicie su Pi. Estamos listos para probar el SOMBRERO de Sensor leyendo los datos del sensor y enviándolos al Estado inicial.

Cree un archivo llamado sensehat y ábralo en el editor de texto introduciendo lo siguiente en el símbolo del sistema:

$ nano sensehat.py

Copie y pegue el siguiente código en el editor de texto.

Observe en la primera línea que estamos importando la biblioteca SenseHat al script. Antes de ejecutar este script, necesitamos configurar nuestros parámetros de usuario.

Específicamente, debe configurar su CLAVE de acceso a la cuenta de estado inicial. Puede cambiar BUCKET_NAME y SENSOR_LOCATION_NAME a la ubicación real del sensor. Guarde y salga del editor de texto.

En un símbolo del sistema de su Pi, ejecute el script:

$ sudo python sensehat.py

Ahora tendrá datos que se envían a un panel de estado inicial. Ve a la sección final de este artículo para obtener detalles sobre cómo personalizar tu panel de control.

Personaliza tu Panel de Estado inicial

Con tu sensor de temperatura Raspberry Pi construido, ahora puedes ir a tu cuenta de Estado inicial y ver tus datos. Puede hacer clic con el botón derecho en un mosaico para cambiar el tipo de gráfico y hacer clic en Editar mosaicos para cambiar el tamaño y mover los mosaicos. Recomiendo usar el termostato de medición para la temperatura y el nivel de líquido del medidor para la humedad. Puede crear gráficos de líneas de temperatura y humedad para ver los cambios a lo largo del tiempo. También puede agregar una imagen de fondo a su panel de control.

Puede configurar alertas de activación para que pueda recibir un SMS o correo electrónico si la temperatura cae por debajo o supera un determinado umbral. Vaya a su cubo de datos y haga clic en configuración. Desde allí, vaya a la pestaña Disparadores. Introduzca la clave de secuencia que desea supervisar, el operador que desea utilizar y el valor de umbral. Haga clic en el signo más para agregar el desencadenador. Luego, ingresará su correo electrónico o número de teléfono para recibir la alerta y haga clic en el signo más. Una vez que hayas configurado todos los Disparadores, haz clic en el botón Listo en la parte inferior.

Panel de temperatura de estado inicial

Ahora que ha creado un sensor de temperatura Raspberry Pi utilizando un sensor y una Raspberry Pi, puede comenzar a pensar en qué otros datos ambientales puede monitorear a continuación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Previous post Jardinero Maestro: Los árboles de casia son fáciles de cultivar
Next post Aprendizaje adaptativo