Monitor de línea eléctrica » History » Version 3

« Previous - Version 3/4 (diff) - Next » - Current version
Federico Ubal, 10/02/2015 02:49 PM


Monitor de línea eléctrica

Introducción

Es de nuestro particular interés la investigación de una tecnología que permita monitorizar
el suministro eléctrico de distintos aparatos, que por distintos motivos es necesario que se
mantengan encendidas o bien que requieran un procedimiento particular en sus procesos de
apagado/encendido. En ese sentido vimos como alternativa a dar un puntapié a la tarea, el
revelamiento de las posibilidades de implementar una solución utilizando una micro computadora
Banana Pi.

Banana Pi.

Instalación del Banana Pi

En el Banana Pi instalamos la distribución Bananian Linux desde el sitio oficial:
https://www.bananian.org/download

Elegimos esta distribución por que su simpleza dado que provee de una interfaz de linea de
comandos y mínimas herramientas básicas como para poder implementar por ejemplo un servidor.
Dado la naturaleza del proyecto es más que suficiente.

El Banana Pi cuenta con un slot para la colocación de una memoria SD (se puede usar una
memoria micro SD que son mas comunes utilizando un adaptador a SD). Para instalar Bananian
insertamos la memoria en una computadora que cuente con un lector de memoria. Y abriendo
una consola ejecutamos los siguientes comandos:

sudo su -

para asumir privilegios de root.
fdisk -l

para ver donde que ruta corresponde a la memoria (buscaremos el que tenga el
tamaño de la memoria y formato FAT)
umount /dev/sdX

Tenemos que desmontar la memoria antes de escribir la imagen en la misma.
X corresponde al dispositivo que encontramos con el comando fdisk.
cd /ruta_a_descarga_de_bananian

vamos a la carpeta en que descargamos la imagen de bananian
gunzip bananian*

descomprimimos el archivo descargado para tener la imagen que queremos escribir
en la memoria.
dd if=imagen_de_bananian.img of=ruta_a_la_memoria bs=1M && sync

el comando dd escribe el contenido de la imagen en la memoria y el comando sync
se encarga de que se finalicen correctamente las tareas de escritura en la memoria.

Con esto estamos en condiciones de quitar la memoria de la computadora y colocarla
en el Banana Pi. Para iniciar por primera vez el Banana Pi con el bananian, necesitamos
un monitor o televisor o proyector con entrada HDMI y un cable HDMI, un teclado y si
bien no es necesario es conveniente un cable de red con conectividad a internet.

Al tener todo esto conectado, enchufamos el cargador, y deberia prender una luz roja
constante que indica que esta encendido, y una luz verde que debería comenzar a titilar,
que va a indicar junto con el texto que se muestre en la pantalla el correcto funcionar
del sistema instalado.

Este tipo de dispositivos a veces son quisquillosos con las tarjetas SD y no inician
correctamente, si es posible, intentar el procedimiento con otra memoria,

Al terminar de iniciar el sistema podremos ingresar con las credenciales usuario root
y contraseña pi. Habiendo ingresado ejecutaremos el comando bananian-config, que nos
permitirá hacer la configuración inicial del sistema en cuestiones como la fecha y hora
la distribución del teclado, etc.

Luego conviene ejecutar apt-get update para actualizar los repositorios de software
y apt-get upgrade para actualizar los paquetes instalados a fin de evitar tener paquetes
desactualizados que puedan contener fallos de seguridad.

Ejecutamos el comando ifconfig eth0 y anotamos la direccion ip, es conveniente que la
misma sea fija y no adquirida dinámicamente mediante un servicio como ser dhcp para
no perder eventualmente el acceso al dispositivo. Utilizaremos dicha dirección para
acceder remotamente a través de la red.

Por ultimo cambiamos la contraseña del usuario root de bananian con el comando passwd ya
que la que tiene es pública y de fácil acceso lo que la convierte en un riesgo para la
seguridad.

Una vez realizadas estas operaciones, podremos desconectar la pantalla y el teclado e
ingresar mediante una conexion por ssh de la siguiente manera:

ssh root@ip_del_banana

Energía del Banana Pi y Bananian.

El Banana Pi cuenta con un procesador, el AXP209, que controla y maneja el suministro de
energía, el misma puede ser a través de un cargador por entrada AC IN de 5v 2A, otra de
iguales características por la entrada USB OTG, y una batería 3.7V que va soldada a la placa.

Para obtener la información de la energía del Banana Pi existe dos métodos, uno es obtenerlos
directamente desde el procesador mediante su interfaz i2c, pero es complejo y requiere un
conocimiento especial del dispositivo y en especial de como esta implementado el procesador.
La otra opción mucho más sencilla es obtener la información desde el sistema linux instalado,
nos brinda la información dentro del sistema de archivos en la ruta /sys/class/power_supply,
dentro de esta carpeta se encuentran tres carpetas que cada una contiene la informacion que
corresponde a cada una de las fuentes de energia posibles.

Con esa información se pueden implementar distintos sistemas de monitoreo, en particular
queremos utilizarlo para monitorizar la falla de alimentación en aparatos como heladeras de
los laboratorios que contiene elementos altamente sensibles a los cambios en la temperatura
y que deben estar refrigerados.

Implementación del sistema

Prototipo

El prototipo funcional a nivel de físico contó con un Banana Pi alimentado por un cargador
y una batería USB, conectado por cable a la red. Lo que se implementó en primera instancia,
fue un script llamado energía que recupera la información de energía desde el sistema, y en
caso de que se suspenda la energía y posteriormente se restablezca envía un email, avisando
del evento, el mismo se coloca en una tarea del sistema ejecutándose cada un minuto, y cada
ejecución guarda un registro con los mensajes "Energía suspendida" ante un fallo, "Energía
restablecida" cuando se recupera y "Energía activa" en las ejecuciones posteriores a un
restablecimiento del suministro eléctrico. Se almacena en un archivo también el estado en
cada ejecución de manera que la siguiente pueda tomar esos datos y compararlos con los
actuales, esto permite no solo detectar los cambios de estado sino el evitar el envío de
múltiples alarmas con el mismo estado.

Para el envío de los correos se utiliza el cliente de linea de comandos mutt, por que cumple
con la tarea siendo fácil de utilizar y de configurar para nuestro propósito.

Como segunda instancia se implementará un cliente SIP capaz de comunicarse con un servidor
asterisk, el cual al recibir la comunicación llame a un numero y reproduzca un audio que
corresponde al estado.

Instalación del script de monitoreo

Descargamos el script que encontramos aquí y lo abrimos en un editor de texto y modificamos
la variable direccion, colocando en la misma la dirección de correo que debe recibir las
alarmas.

Copiamos el script de monitoreo utilizando el comando scp de la siguiente manera:

scp <ruta_al_script> root@<ip_banana>:<ruta_destino_del_script>

Si no editamos la realizamos la modificacion del script previamente podemos hacerla en el
banana abriendo el archivo con vi o nano.

Instalación y Configuración mutt

El paquete mutt es un cliente de correo y como tal admite muchas posibilidades de configuración
que exceden al uso que nosotros le daremos que es enviar ejecutandolo dentro de un script, por
lo que la configuración que haremos será muy básica.

Podemos instalar mutt desde los repositorios del sistema ejecutando el comando:

apt-get install mutt

Para configurar mutt abriremos con un editor de texto como vi o nano el archivo /etc/Muttrc
y al final agregamos las siguientes lineas:

set my_pass='password_correo'
set my_user= usuario_correo

set realname = 'nombre_visible'
set from = direccion@cure.edu.uy
set use_from = yes

set smtp_url=smtps://$my_user:$my_pass@<direccion_servidor_correo>
set ssl_force_tls = yes

En my_pass colocamos la contraseña del usuario de correo que queremos utilizar, en my_user va el
nombre de usuario, colocamos en realname el nombre que queremos que aparezca en los correos,
en from ponemos la direccion que usaremos en el campo From del correo, use_from es para indicarle
que utilice el campo From. En smtp_url colocamos la direccion al servidor de correo y por ultimo
indicaremos que utilice el protocolo de seguridad tls.

Creación de la tarea cron

La última tarea a realizar es la creación de la tarea cron para que se ejecute periódicamente el
script y se realice el registro de eventos.

Crearemos la tarea abriendo con un editor de texto el archivo /etc/crontab y al final agregaremos
la siguiente linea:

*/1 * * * *   root  /root/energia.sh >> /var/log/alarmaPi.log

Donde le decimos que cada 1 minuto ejecute el script y guarde la salida al final del archivo
/var/log/alarmaPi.log donde se encontrará el registro con los eventos.

energia.sh Magnifier - script (2.26 KB) Federico Ubal, 10/02/2015 01:24 PM