Medindo a pressão atmosférica com Raspberry Pi

Se quisermos conhecer e monitorar a pressão atmosférica de forma barata… Como você não pôde… Este é o seu documento! Podemos fazer isso rapidamente com um Raspberry Pi e um sensor que mal vai além do 2 Euros! Neste post veremos todos os passos que você precisará para alcançá-lo, Também como sempre… armazenaremos as medições em um banco de dados MySQL e depois visualizaremos os valores com belos gráficos graças ao Grafana!

 

Usaremos un pequeño sensor de presión barométrica BMP180, con él podremos obtener la temperatura, la presión atmosférica e incluso la altitud!

 

El conexionado GPIO del BMP180 sería muy sencillo, con la Raspberry Pi obviamente apagada, conectamos del BMP180 la conexión VCC al Pin 1 (3.3v), GND a un puerto de tierra de la Raspberry Pi, el SCL al Pin 5 (GPIO03) o SCL1; y por último la conexión SDA irá al Pin 3 (GPIO02) o SDA1 de la Pi.

 

Entendemos que tenemos una Raspberry Pi funcional con Raspbian instalado, si no tenemos las conexiones I2C habilitadas, lo tenemos que hacer ejecutando

 

“sudo raspi-config” > Nós vamos “Interfacing Options”, habilitamosI2Cy reiniciamos la Raspberry Pi.

 

Y ahora lo maravilloso, gracias a Matt Hawkins, podremos descargarnos su script de Python y ejecutarlo para obtener los datos!!

[Código-fonte]wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/bme280.py

python bme280.py[/Código-fonte]

 

Como vemos este script es para el BME280, que también tendría sensor de humedad, el script es totalmente compatible, así que genial! Ahora lo dicho, cada uno debe tratar los datos como quiera, como de costume, y como ya sabéis, yo lo que suelo hacer es crear una tarea programada con cron que ejecute el script y el valor de presión atmosférica lo almacene en una base de datos de MySQL, luego los datos los veo con Grafana que queda chulisimo como ya sabéis! Así que si añadimos esto mismo al final del script conseguiremos almacenar la presión atmosférica en la BD:

[Código-fonte]import sys
importar MySQLdb
db = MySQLdb.connect("SERVIDOR_MYSQL","USUÁRIO","SENHA","BASE_DE_DATOS")
cursor = db.cursor()
cursor.execute("""INSERT INTO presion_atmosferica (presion) VALORES (%s) """,( pressure))
db.commit()[/Código-fonte]

 

E como sempre, por si os interesa os pego el texto que necesitáis para crear la tabla exáctamente igual que la tengo yo, pero vaya que no tiene ningún misterio, Tem 2 columnas, una para almacenar la presión y otra la fecha (que al no permitir NULL pues se autocompleta cada vez que se mete el valor de presión):

[Código-fonte]CREATE TABLE `presion_atmosferica` (
`presion` FLOAT NULL DEFAULT NULL,
'date' TIMESTAMP NOT NULL PADRÃO CURRENT_TIMESTAMP NA ATUALIZAÇÃO CURRENT_TIMESTAMP
)
COLLATE='latin1_swedish_ci’
ENGINE=InnoDB
ROW_FORMAT=COMPACTO
;[/Código-fonte]

 

Y listo en Grafana, en un Dashboard que tengamos, super fácil añadir un panel de tipo Graph y personalizarlo a gusto, dedicarle 5 minutos que Grafana es super intuitivo, en mi caso tengo un conector MySQL que conecta contra la BD y con esta Query tengo esa gráfica tan chula:

[Código-fonte]SELECT presion as value, "Presion" como métrica, UNIX_TIMESTAMP(data) as time_sec FROM presion_atmosferica WHERE $__timeFilter(data) Encomendar por time_sec ASC[/Código-fonte]

 

Pronto!!! Espero que os resulte interesante! Ya tenemos la presión atmosférica monitorizada! Perfecto para una estación meteorológica o que? Éxito!

 

Postagens recomendadas

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Não hesite em contactar-me, Vou tentar ajudá-lo sempre que puder, Compartilhar é viver ;) . Desfrute de documentos!!!

O que há de novo no Nakivo 7.4

28 de Maio de 2018