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, com ele podemos obter a temperatura, a pressão atmosférica e até a altitude!
A conexão GPIO do BMP180 seria muy fácil, 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 temos una Raspberry Pi a funcionar com Raspbian instalado, si no tenemos las conexiones I2C habilitadas, lo tenemos que hacer executando
“sudo raspi-config” > Nós vamos “Interfacing Options”, habilitamos “I2C” e reiniciamos a Raspberry Pi.
E agora o maravilhoso, graças a Matt Hawkins, podremos descargarnos su script de Python y executarlo para obter 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 também tendría sensor de humedad, el script es totalmente compatible, así que genial! Ahora lo dicho, cada uno deve tratar los dados como quiera, como de costume, y como ya sabéis, yo lo que suelo hacer es criar una tarea programada con cron que execute el script y el valor de pressão atmosférica lo armazene en una base de dados 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 guardar la presión atmosférica en la BD:
[Código-fonte]import sys
importar MySQLdb
db = MySQLdb.connect("SERVIDOR_MYSQL","USUARIO","CONTRASEÑA","BASE_DE_DATOS")
cursor = db.cursor()
cursor.execute("""INSERT INTO presion_atmosferica (pressure) VALORES (%s) """,( pressure))
db.commit()[/Código-fonte]
E como sempre, por si os interessa os pego o texto que necessitáis para criar la tabla exáctamente igual que la tengo yo, pero vaya que no tiene ningún misterio, Tem 2 columnas, una para almacenar la pressão y otra la fecha (que al al no permitir NULL pues se autocompleta cada vez que se mete el valor de presión):
[Código-fonte]CREATE TABLE 'presion_atmosferica' (
'presión' 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 pressione as value, "Presion" como métrica, UNIX_TIMESTAMP(data) como time_sec DE presion_atmosferica ONDE $__timeFilter(data) Encomendar por time_sec ASC[/Código-fonte]
Pronto!!! Espero que os resulte interessante! Já temos a pressão atmosférica monitorizada! Perfeito para uma estação meteorológica ou assim? Sucesso!











































