Ya teníamos un artículo sobre monitorizar la temperatura del CPD con la raspberry py, un sensor de temperatura y mostrar los datos en zabbix. La verdad es que hasta ahora esto estaba funcionando bastante bien pero como le voy dando más uso a grafana quería sacar los datos en un panel de esta aplicación de forma visual.
Hasta ahora había usado un script de ADAFruit para leer los datos y guardarlos en zabbix, sin embargo ahora he utilizado node-red para leer los datos del sensor y guardarlos directamente en influxdb, de donde grafana ya lee directamente.
He creado una BD nueva llamada pitemp y he creado un pequeño flujo de datos node-red.
Basicamente cada 5 segundos obtenemos el valor del sensor de temperatura y lo guardamos en influxdb como temperatura y también el valor de humedad que nos da el sensor.
Una vez en grafana una query muy sencilla nos pinta en un grafico el ultimo valor que tenia el elemento temperatura y el elemento humedad.
Todavía tengo mucho que aprender de node-red y las cosillas que se pueden hacer, pero para jugar es interesante. Por si alguien quiere pegarle un vistazo al flujo, recordad que acabo de empezar con esto.
[{"id":"94623f82.1371e8","type":"inject","z":"bad5b9b6.c8d9d8","name":"5 sec interval","topic":"","payload":"","payloadType":"date","repeat":"5","crontab":"","once":false,"onceDelay":"2","x":200,"y":380,"wires":[["44a14a3c.9ce114"]]},{"id":"44a14a3c.9ce114","type":"rpi-dht22","z":"bad5b9b6.c8d9d8","name":"sensor dht22 pin 4","topic":"rpi-dht22","dht":22,"pintype":"0","pin":4,"x":410,"y":380,"wires":[["376ff2d7.a0e85e","49f170ce.b75a88"]],"inputLabels":["time"],"outputLabels":["$now()"]},{"id":"49f170ce.b75a88","type":"influxdb out","z":"bad5b9b6.c8d9d8","influxdb":"a2483622.b0f1c","name":"temp influxdb","measurement":"payload","precision":"","retentionPolicy":"","x":690,"y":320,"wires":[]},{"id":"b3264cd1.97e428","type":"influxdb out","z":"bad5b9b6.c8d9d8","influxdb":"a2483622.b0f1c","name":"humidity influxdb","measurement":"humidity","precision":"","retentionPolicy":"","x":890,"y":380,"wires":[],"inputLabels":["msg.humidity"]},{"id":"376ff2d7.a0e85e","type":"function","z":"bad5b9b6.c8d9d8","name":"convert","func":"msg.payload = msg.humidity\n\nreturn msg;","outputs":1,"noerr":0,"x":680,"y":380,"wires":[["b3264cd1.97e428"]]},{"id":"a2483622.b0f1c","type":"influxdb","z":"","hostname":"192.168.1.24","port":"8086","protocol":"http","database":"pitemp","name":"","usetls":false,"tls":""}]
Quizás en un futuro pueda añadir más cosas, como otros sensores, o detectores y me meta un poco más de lleno en el tema del IoT pero por ahora con poder hacer la idea inicial de pintar en grafana con un sensor conectado en la propia raspberry pi me parece suficiente.