Cómo utilizar Raspberry Pi para monitorear y registrar parámetros ambientales

En este tutorial, aprenderemos cómo conectar el sensor de presión, gas, humedad y temperatura cuatro en uno BME680 con Raspberry Pi (RPi). Esto incluirá comprender cómo registrar y recuperar datos de una base de datos.

El BME680 puede "hablar" con controladores externos a través de interfaz periférica serie (SPI) y protocolos I2C. Para este proyecto, usaremos el puerto I2C del RPi para conectarnos al sensor. Al igual que Arduino, RPi ofrece bibliotecas predefinidas, incluida una para BME680 y sus predecesores.

Para comenzar, instale Raspberry OS en su RPi habilitando la interfaz/puerto I2C. Para hacer esto, use la interfaz gráfica de usuario o GUI: vaya al Menú Inicio > Preferencias > Configuración de Raspberry Pi y seleccione el botón de opción junto a la interfaz I2C).

También puede hacer esto desde el símbolo del sistema/Shell escribiendo sudo raspi-config y habilitando el puerto I2C en la pantalla azul .

Luego instale la última versión de Python.

actualización sudo apta

sudo apto instalar python3 idle3

Luego instale el paquete Python destinado al sensor BME680. Nota: Si el sistema dice "pip no encontrado", primero debe instalar pip.

sudo pip instalar bme680

Para fines de registro de datos, utilizamos el paquete RPI de Python "PyMySQL". Simultáneamente utilizaremos RPI como servidor para alojar nuestra base de datos.

Para instalar PyMySQL:

python pip instalar pymysql

Las instrucciones de instalación anteriores para PIP solo funcionarán con Python 2.0. Para Python 3, necesitará usar PIP 3. Después de instalar los paquetes, deberá importarlos al código.

Código
Primero, importe el sensor BME680 y la biblioteca PyMySQL. La biblioteca de temporización se incluye para que pueda insertar un retraso entre las ejecuciones de instrucciones si es necesario.

A continuación se debe establecer la conexión a la base de datos. Como utilizamos RPI como servidor, localhost se pasa como parámetro del servidor.

Observación:

  • El nombre de usuario es el nombre del administrador de la base de datos.
  • La contraseña es la contraseña de la base de datos (si está configurada)
  • El nombre de la base de datos (DB) es “dbname”

Debe asegurarse de que estos nombres sean correctos o, si es posible, reemplazarlos. El sensor se inicializa con esta instrucción: instrucción bme680.BME680.

A continuación se debe definir la frecuencia de muestreo de los parámetros individuales del sensor.

Para el:

  • Humedad – 2X
  • Presión – 4X
  • Temperatura: 8X
  • Filtra todo el ruido de fondo

A continuación se presenta el cuerpo del programa. El bucle lee continuamente los datos del sensor, los filtra y los pasa a la base de datos para su almacenamiento.

  • La declaración, get_sensor_data , verifica la presencia de datos. Si se considera "verdadero", los datos se leerán y almacenarán en la variable de salida.
  • La declaración sensor.data.temperature proporciona la lectura de temperatura. Esta lectura se coloca en la variable de cadena de salida.
  • Donde en {0:.2f}, 0 significa el primer marcador de posición y .2f significa el número de punto flotante (con dos decimales).
  • Los parámetros restantes 2{1 y 2} se refieren a presión y humedad.
  • La instrucción termoestable le permite leer el gas. Si los datos son razonablemente estables (y no fluctúan drásticamente), imprime la variable de salida, que almacena los valores de temperatura, humedad y presión con las lecturas de gas.
  • Se incluye un retraso de tres minutos para estabilizar el sensor.

Para registrar datos en la base de datos, debe ingresar datos en la base de datos. Declaración de consulta SQL. Los “%s” sirven como marcadores de posición para cada uno de los valores. Finalmente, confirma los datos para actualizar la base de datos y cerrar la conexión.

La consulta de inserción SQL ingresa el nombre de la tabla como LOGTABLE. Sin embargo, primero debe crear esta tabla para registrar datos en ella. Supongamos que creamos una base de datos llamada "MasterDB", con una tabla dentro llamada "LOGTABLE".

Las sentencias SQL serían:

CREAR BASE DE DATOS MasterDB; #Crear una base de datos llamada MasterDB

UTILICE MasterDB; #Set's MasterDB en uso: cada consulta ahora va a esta base de datos

CREAR TABLA MestreDB ( #Crear tabla con culombios
Temperatura fluctuante ,
presión flotante ,
Humedad fluctuante ,
flotante de gas
);

Las declaraciones SQL son declaraciones generales de MySQL. Para ejecutarlas en código Python, primero colóquelas en la carpeta Python MySQL adecuada, tal como lo hicimos con PyMySQL en el código anterior (instrucción INSERT).

Para extraer datos de la base de datos, la declaración de Python para el cuaderno PyMySQL es:

Seleccione culombios (para temperatura, presión, humedad, gas) en MasterDB. Obtenga un registro e imprímalo en la consola.

Se puede utilizar cualquier IDE de RPI Python para este proyecto. Usamos Thonny .

Diagrama de circuito

¿Dónde comprar las piezas?

  • Frambuesa Pi: ratón
  • Sensor BME680: ratón

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.