La Raspberry Pi es una placa ideal para monitorear todo tipo de cosas. Hoy usaremos Node-Red, InfluxDB y Grafana para monitorizar diferentes entidades , así como habilitar alarmas hacia nuestro smartphone o en el correo.
Resumidamente estos son los tres componentes que usaremos
- Grafana es un software libre basado en licencia de Apache 2.0,que permite la visualización y el formato de datos métricos. Permite crear cuadros de mando y gráficos a partir de múltiples fuentes, incluidas bases de datos de series de tiempo como Graphite, InfluxDB y OpenTSDB. Originalmente comenzó como un componente de Kibana y que luego le fue realizado una bifurcación
- es una base de datos de series de tiempo de código abierto (TSDB) desarrollada por InfluxData. Está escrito en Go y optimizado para el almacenamiento y la recuperación rápidos y de alta disponibilidad de datos de series de tiempo en campos como el monitoreo de operaciones, métricas de aplicaciones, datos de sensores de Internet de las cosas y análisis en tiempo real. También tiene soporte para procesar datos desde Graphite .
-
es una herramienta de desarrollo basada en flujo para programación visual desarrollada originalmente por IBM para conectar dispositivos de hardware, API y servicios en línea como parte del Internet de las cosas . roporciona un editor de flujo basado en navegador webJavaScript . Los elementos de las aplicaciones se pueden guardar o compartir para su reutilización. El tiempo de ejecución se basa en Node.js . Los flujos creados en Node-RED se almacenan mediante JSON . Desde la versión 0.14, los nodos MQTT pueden realizar conexiones TLS P configuradas correctamente . En 2016, IBM contribuyó con Node-RED como un , que se puede utilizar para crear funciones de proyecto de JS Foundation de código abierto .
Preparar imagen en tarjeta SD
Descargar imagen: http://bit.ly/2GdZbPe
Agregar archivo ssh vacío al directorio raíz de la tarjeta
Agregar wpa_supplicant.conf al directorio raíz
Contenido del archivo wpa_supplicant.conf:
country = CH
ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdev
update_config = 1
network = {
ssid = "..."
psk = "..."
}
Inserte la tarjeta SD en su Raspberry, arranque y encuentre su dirección IP por ejemplo usando https://www.advanced-ip-scanner.com o simplemente con el comando sudo ifconfig
Inicie sesión desde un terminal usando Putty https://www.putty.org/ usando las credecniales por defcto: Pi/raspberry
Ahora debe actualizar su Raspberry a la versión más reciente :
sudo apt-get update & sudo apt-get upgrade
Configuración en la Raspbery
Configuración de Mosquitto
Tenemos que modificar el fichero mosquito,conf , para lo cual;
sudo nano /etc/mosquitto/mosquitto.conf
Insertaremos el siguiente comando al finala del fichero y salivar los cambios:allow_anonymous true
Reiniciar Mosquitto
sudo systemctl reiniciar mosquitto
Configuración de influxDB
Crear usuario:
CREATE USER "pi" WITH PASSWORD 'raspberry' WITH ALL PRIVILEGES
exit
Cambiar archivo de configuración:
sudo nano /etc/influxdb/influxdb.conf
En [http] descomente:
enabled = true y bind-address =: 8086
en [monitor] descomente y cambie a:
store-enabled = false
sudo service influxdb restart
Configuración de Node-Red
Importar flujos desde: https://drive.google.com/open?id=1kECuykSaFO7Qb_67QqIHtlpvElpVWDMI
Instalar correo
sudo apt-get install ssmtp
sudo apt-get install mailutils
sudo nano /etc/ssmtp/ssmtp.conf
Para Gmail, ingrese este texto:
mailhub = smtp.gmail.com: 587
AuthUser = [yourmailaddress] @ gmail.com
AuthPass = [emailPassword]
UseSTARTTLS = YES
UseTLS = YES
Pruebe su correo
echo "Hola mundo cuerpo del correo electrónico" | mail -s "Prueba asunto "[email protected]
Agregue soporte para aplicaciones menos seguras en Gmail: https://myaccount.google.com/lesssecureapps
Crear una base de datos influxDB
influx
Create database [su nombre de la base de datos]
Show DATABASES
Use [ su nombre de la base de dato]
Show series
exit
Instalar y preparar Telegram
Instale Telegram en su PC https://desktop.telegram.org/
Inicie el telegrama y busque "botfather"
Ingrese el nombre de su bot deseado anotando la ficha.
Envíe un mensaje de texto al bot.
Vaya a: https://api.telegram.org/bot[Token]/getUpdates y tome nota de la identificación (ID) pues lo usaremos más tarde:
Prepare Grafana
Agregue una fuenteAgregue el tablero importando un archivo JSON:Ejemplos:
Presión de cerveza: https://drive.google.com/open?id=1beKyu4WuGErAHeYKyE3-8wtpyZJ8yHkZ
Clima: https://drive.google.com/open?id=18326_tjcVln0xBLRJINJn2ZwP0lNlyHX
YouTube: https://drive.google.com / open? id = 1TrZAGnxn4zRfyO_X8RXw4ZtQIvJi8JnQ
Agregar canal de notificación por correo
sudo nano /etc/grafana/grafana.ini
enabled=true
host = smtp.gmail.com:587
user =[receivingEmail]@gmail.com
password ="[emailPassword]"
skip_verify = true
from_address = [sendingEmail]@gmail.com
from_name = [whateverName]
Agregar canal de notificación de Telegram
Agregar nuevo canal de notificación de TelegramAñada ahora el nuevo canal de notificaciones de Telegram. Insertar chatID y token obtenidos anteriormente
Y presione "Enviar prueba"
Contraseñas por defecto usadas
Fuente: sensoriot.org