Usando un anemómetro con Raspberry Pi
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. Bestalde, 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 zerbait halako modukoa:
[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) BALIOAK (%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, behar baduzu hau izango litzateke kodea adibide honetako taula sortzeko:
[sourcecode]CREATE TABLE `haizea` (
`abiadura` FLOAT EZ DA 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, Dashboard batean, Graph mota bateko Panel bat sortzen badugu, Data Source bezala gure MySQL konexioa gure DB kontra hautatzen badugu eta Query sinple bat gehitzen badugu haizea irudikatzeko, ondoren grafikoa nahi dugun bezala pertsonalizatzen dugu, orientatzeko balio badizu, Grafiko honetako Query-a:
[sourcecode]SELECT abiadura as value, "Velocidad" metrika gisa, UNIX_TIMESTAMP(created_at) as time_sec FROM haizea WHERE $__timeFilter(created_at) order by time_sec asc[/sourcecode]
Onena, espero que os guste, pixkanaka-pixkanaka gehiago sentsore sartuko ditugu gure Raspberry Pi-ra meteorologia estazio bat muntatzeko edo gure nahi duguna egiteko, vaya!










































