Loading...

Crear tu propia estación meteorológica con Python

Pablo Durán
Comparte el post:

Esta es la introccuión de una serie de posts en los que se va a mostrar como leer datos de sensores tanto digitales como analógicos, procesarlos, enviarlos a una base de datos y mostrarlos en tu web. Todo el proceso está diseñado para ser modular y poder añadir nuevos sensores, o eliminarlos, con facilidad por ello cada sensor tendrá su propia clase en Python, su propio modelo en el back-end (Laravel) y su propia tabla en la base de datos.

Sensores y componentes

Se pueden registrar una gran variedad de parámetros. En este caso vamos a registrar un total de 18 parámetros parámetros. Los sensores a usar y datos que recoge cada uno son los siguientes:

  • SHT31: Lectura de temperatura y humedad. Se usarán dos. Uno para registrar datos y otro para los sensores de gas.
  • TSL2561: Intensidad de luz visible e infrarroja.
  • BMP180: Presión atmosférica y temperatura.
  • MS-WH-SP-WS02: Kit de veleta, anemómetro, pluviometro y carcasa para sensor de temperatura. Se puede usar cualqueir otro modelo, suelen tener el mismo funcionamiento.
  • MQ2: Sensor de gas para GPL, propano, hidrógeno, alcohol, humo y metano.
  • MQ3: Sensor de gas para Alcohol y Benceno.
  • MQ4: Sensor de gas para metano y GPL.
  • MQ5: Sensor de gas para GPL, metano.
  • MQ7: Sensor de gas para hidrógeno y monóxido de carbono.
  • MQ8: Sensor de gas para hidrógeno.
  • MQ9: Sensor de gas para monóxido de carbono y GPL.
  • MQ135: Sensor de gas para Acetona, tolueno y alcohol.

A parte de estos sensores se está usando otros componentes como son una Raspberry pi 3 modelo B con Raspbian y una alimentación externa S-50-5 para los sensores de gas que consumen mucha electricidad.

Lenguajes a utilizar

  • Python: Usado para leer los sensores, procesar los datos y enviarlos al servidor.
  • PHP (Laravel): Guardar los datos en la base de datos y pedirlos para mostrarlos en la web.
  • SQL: Se usa una base de datos mysql pero se puede usar cualquier otro. Mantiene almacenado los registros de todos los sensores.
  • Java Script: Procesar los datos que verá el usuario y mostrar gráficas de cada parámetro.
  • html y css: Se va comentar lo mínimo ya que cada un es libre de mostrarlo como guste.

Costes

Esta es una estación de bajo presupuesto en el que los sensores a usar pueden llegar a ser algo impreciso como es en el caso de los sensores MQ pero vale la pena debido a que el coste total por mi parte han sido de 344.61€ mientras que una profesional cuesta miles de euros y no es tan versatil como la que vamos a montar. Podemos ver en la tabla de precios todo lo que se va a usar para este proyecto:

Nombre Cant. Pieza Envío Aduanas Total
PCB Adafruit Perma-Proto 2 9.91€ 1.58€ 0€ 21.40€
Raspberry Pi 3 Plus 1 38.95€ 3.30€ 0€ 42.25€
Pack cable puentes 120 uds. 2 5.49€ 0€ 0€ 10.98€
Adaptado RJ12 Hembra 2 0.37€ 0€ 0€ 0.74€
Resistencia 4,7 Kohm 1 0.02€ 0€ 0€ 0.02€
ADC ADS1115 3 1.52€ 1.17€ 0€ 5.73€
BMP180 GY68 1 0.39€ 0.97€ 0€ 1.36€
MS-WH-SP-WS02 1 38.87€ 36.72€ 32.11€ 107.70€
TSL2561 GY-2561 1 3.80€ 1.18€ 0€ 4.98€
SHT31-D 2 2.36€ 0.97€ 0€ 5.69€
Micro SD 8GB 1 4.00€ 0€ 0€ 4.00€
Cargador 5V 2.5A 1 4.00€ 0€ 0€ 4.00€
Alimentador S-50-5 de Leadstar 1 15.99€ 0€ 0€ 15.99€
Tarro de cristal 1 0.75€ 0€ 0€ 0.75€
Cinta de aluminio 2 2.00€ 0€ 0€ 4.00€
Cable extra 30 metros 1 7.00€ 0€ 0€ 7.00€
Servidor compartido (1 año) 1 53.00€ 0€ 0€ 53.00€
Dominio pabloduran.es 1 10.00€ 0€ 0€ 10.00€
Estructura metálica 1 30.00€ 0€ 0€ 30.00€
Pack sensores MQ 9 uds. 1 11.71€ 3.37€ 0€ 15.07€
Total 263.30€ 49.26€ 32.11€ 344.67€