Usando un anemómetro con Raspberry Pi

Print Friendly, PDF & Email

Si te apetece medir la velocidad del viento mediante una Raspberry Pi, este es tu documento! Puede que estés pensando en montarte una estación metereológica y este es un tema importante, cierto? Usaremos un script y un anemómetro específico y súper rápido lo tendremos montado. A parte, como ya me conocéis, exportaré las medidas a una base de datos de MySQL para luego visualizarlo con Grafana!

 

Hay dos opciones, o te haces un anemómetro manualmente con huevos Kinder y te curras un script que te indique la velocidad del viento, o por 45€ te compras un anemómetro de Eltako y mediante un simple script de Python que ya está calibrado obtendrás la velocidad del viendo de forma exacta.

 

La conexion GPIO es super sencilla, el anemómetro dispone de 2 cables, uno lo conectaremos a tierra y el otro al Pin 3 (o GPIO02), da igual qué cable donde. Nos basamos que tenemos una Raspberry Pi con Raspbian instalado y los GPIO habilitados (sudo raspi-config…).

 

Nos descargamos este genial script de Patrick Rudolph de GitHub. Y probamos a ejecutarlo… y sencillo o qué?

 

Ahora cada uno que se lo modifique como le interese, si queréis pasar los metros por segundo a kilometros por hora y meter el resultado en una base de datos de MySQL, añadiremos al rededor de la línea 60 algo como:

 

[sourcecode]

viento_kmph = actual_windspeed_msec * 3.6  # Convertir metros por segundo a kilometros hora
print viento_kmph
if vuelta == 30: # Así cada 30 segundos lo mete en BD
vuelta = 0
db = MySQLdb.connect("DIRECCION_IP_MYSQL","USUARIO","CONTRASEÑA","BASE_DATOS")
cursor = db.cursor()
cursor.execute("""INSERT INTO viento (velocidad) VALUES (%s) """,( viento_kmph))
db.commit()
else:
vuelta = vuelta + 1
…[/sourcecode]

 

Sin olvidar añadir al inicio ‘import MySQLdb’ para cargar los módulos de MySQL de Python (sudo apt-get install python-mysqldb si es que no los tienes instalados). Y cada 30 segundos nos meterá la velocidad en la tabla viento de nuestra BD de MySQL, es una tabla muy tontorrona con 2 campos, uno de velocidad y otro de fecha que se completa automáticamente, si tienes necesidad este sería el codigo para crear la tabla de este mismo ejemplo:

[sourcecode]CREATE TABLE `viento` (
`velocidad` FLOAT NOT NULL,
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)
COLLATE=’latin1_swedish_ci’
ENGINE=InnoDB
ROW_FORMAT=COMPACT
;
[/sourcecode]

 

 

Y en Grafana, en un Dashboard, si creamos un Panel de tipo Graph, seleccionamos como Data Source nuestra conexión MySQL contra nuestra BD y añadimos una sencilla Query que nos pinte el viento, luego ya tuneamos la gráfica como más o menos nos guste, por si os orienta, la Query de esta gráfica:

[sourcecode]SELECT velocidad as value, "Velocidad" as metric, UNIX_TIMESTAMP(created_at) as time_sec FROM viento WHERE $__timeFilter(created_at) order by time_sec asc[/sourcecode]

Bueno, espero que os guste, poco a poco iremos metiendo más sensores a nuestra Raspberry Pi para montar una estación metereológica o lo que nos de la gana, vaya!

 

Posts recomendados

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dudes en contactar conmigo, os intentare ayudar siempre que pueda, compartir es vivir ;) . Disfrutar de los documentos!!!