
Fent servir un anemòmetre amb Raspberry Pi
Si t'agrada mesurar la velocitat del vent mitjançant una Raspberry Pi, aquest és el teu document! Pots estar pensant a muntar-te una estació metereològica i aquest és un tema important, cert? Usarem un script i un anemòmetre específic i súper ràpid el tindrem muntat. A part, com ja em coneixeu, exportaré les mesures a una base de dades de MySQL per després visualitzar-lo amb Grafana!
Hi ha dues opcions, o et fas un anemòmetre manualment amb ous Kinder i et curres un script que t'indiqui la velocitat del vent, o per 45 € et compres un anemòmetre d'Eltako i mitjançant un simple script de Python que ja està calibrat obtindràs la velocitat del veient de forma exacta.
La connexió GPIO és super senzilla, l' anemòmetre disposa de 2 cables, un el connectarem a terra i l'altre al Pin 3 (o GPIO02), dóna igual quin cable on. Ens basem que tenim una Raspberry Pi amb Raspbian instal·lat i els GPIO habilitats (sudo raspi-config…).
Ens descarreguem aquest genial script de Patrick Rudolph de GitHub. I provem d'executar-lo… i senzill o què?
Ara cadascú que se'l modifiqui com li interessi, si voleu passar els metres per segon a quilometres per hora i posar el resultat en una base de dades de MySQL, afegirem al redidor de la línia 60 alguna cosa com:
[sourcecode]
…
viento_kmph = actual_windspeed_msec * 3.6 # Convertir metres per segon a quilometres hora
print viento_kmph
if tornada = = 30: # Així cada 30 segons el fica en BD
volta = 0
db = MySQLdb.connect("DIRECCION_IP_MYSQL","USUARI","CONTRASENYA","BASE_DATOS")
cursor = db.cursor()
cursor.execute("""INSERT INTO vent (velocitat) VALUES (%s) """,( viento_kmph))
db.commit()
else:
volta = volta + 1
…[/sourcecode]
Sense oblidar afegir a l'inici 'import MySQLdb’ per carregar els mòduls de MySQL de Python (sudo apt-get install python-mysqldb si és que no els tens instal·lats). I cada 30 segons ens ficarà la velocitat a la taula vent de la nostra BD de MySQL, és una taula molt tontorrona amb 2 camps, un de velocitat i un altre de data que es completa automàticament, si tens necessitat aquest seria el codi per crear la taula d'aquest mateix exemple:
[sourcecode]CREATE TABLE 'vent' (
'velocitat' 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]
I a Grafana, en un Dashboard, si creem un Panell de tipus Graph, seleccionem com Data Source la nostra connexió MySQL contra la nostra BD i hi afegim una senzilla Query que ens pinti el vent, després ja tunegem la gràfica com més o menys ens agradi, per si us orienta, la Query d'aquesta gràfica:
[sourcecode]SELECT velocitat as value, "Velocitat" as metric, UNIX_TIMESTAMP(created_at) as time_sec FROM vent WHERE $__timeFilter(created_at) order by time_sec asc[/sourcecode]
Bo, espero que us agradi, a poc a poc anirem ficant més sensors a la nostra Raspberry Pi per muntar una estació metereològica o el que ens de la gana, vagi!