Paso 6: Diseño de la puerta
El portal es responsable de la recogida de datos y luego enviarlo a la interfaz de la aplicación para android. También tiene un acceso de consola que puede mostrar toda la información relevante junto con una pequeña interfaz. La información de las solicitudes desde el nodo de energía a través de comunicación por cable. El nodo de energía envía la información a la puerta de entrada. La puerta de enlace entonces remite esta información a la interfaz de la aplicación para android. Este proceso ocurre en intervalos regulares que se pueden fijar en el interfaz de menú. Porque la puerta de enlace y los nodos de energía están separados puede constar de un único sistema de muchos nodos de energía. La ventaja de esto es que el costo para controlar otro aparato adicional es bajo porque sólo el nodo de energía necesita ser comprado.
La solicitud de la puerta de entrada está diseñada completamente con el lenguaje C. El diagrama de flujo para la aplicación se muestra en la figura adjuntada. La aplicación comienza con la inicialización de los pines GPIO del tablero Beaglebone negro mediante el sistema de archivo "sys". Las direcciones de los pines GPIO se establecen entonces para dar cabida a la funcionalidad en el pasador. Por ejemplo los pernos en que estaban conectados los relés fueron escogidos como salidas mientras que los pernos en que estaban conectados interruptores fueron elegidos como entradas.
Después de la inicialización de pines GPIO, abrimos los dos nodos de puertos seriales que se pueden acceder en el sistema de archivos de linux como "/ dev/ttyOx" donde x es el número de la UART. Estos dos puertos serie son los en que los nodos de medición de energía están conectados directamente a través de UART. Sólo después abrir estos puertos, podríamos acceder a estos puertos. Después de entonces leer las anteriores configuraciones de los puertos serie y seleccionar uno nuevo para que coincida con nuestra capacidad de EMIC. Después de los ajustes acertados de los puertos serie, cargamos las constantes de calibración a nuestros dos tableros EMIC y así inicializar los dos EMICs CS5490 listo para mediciones de energía.
Después de la carga exitosa de las constantes de la calibración, hemos creado un manejador de señales para detener la aplicación de servidor de puerta de emergencia. Aquí hacemos todo sabia desafectación de los recursos como descriptores de ficheros del servidor, puertos serie y todo lo que hemos utilizado en nuestra aplicación.
Como puerta de enlace es también responsable de guardar las lecturas del medidor en una base de datos, aquí utilizamos base de datos sqlite para el almacenamiento de la lectura del medidor en un formato estructurado. Después de la inicialización de los controladores de señal, abrir / crear los archivos de base de datos de metros correspondientes con el nombre "METERx" donde x es el número de medidor. Si el archivo de base de datos no estaba inicialmente, se crea otra se abre. Ahora las tablas correspondiente mes y año son creadas y abiertas con el formato "month_year". Para un mes/año nuevo, la aplicación crea automáticamente la correspondiente tabla en la base de datos.
Ahora, para implementar el paralelismo en la aplicación de puerta de enlace, implementamos tres hilos funcionando tres diferentes funcionalidades applicational. Aquí inicializamos a tres hilos. El primero de ellos es el "timer" que es responsable de mantener el retardo de tiempo de referencia en el programa para la actualización periódica de la base de datos e interfaz de usuario para las lecturas del medidor. Hilo de rosca siguiente "cambiar hilo votación" es responsable de interruptores de controles continuo si se pulsan o no, y así ejecutar la correspondiente funcionalidad de conmutación de carga. El tercer hilo "servidor" es responsable de crear, vinculante, escuchar y mantener una conexión de TCP/IP con la aplicación cliente android para actualización de datos y recuperación.
Para la demostración del prototipo, hemos elegido Beaglebone negro, un tablero del desarrollo de Texas Instruments como el procesador de entrada. Ha sido equipado con un conjunto mínimo de características que permiten al usuario experimentar el poder del procesador y no pretende ser una plataforma de desarrollo completo como muchas de las características y las interfaces que suministrada por el procesador no son accesibles desde el BeagleBone Black vía ayuda a bordo de algunas interfaces. BeagleBone Black no es un producto completo diseñado para hacer cualquier función en particular. Es una base de experimentación y aprender a programar el procesador y acceder a los periféricos con la creación de su propio software y hardware. También ofrece acceso a muchas de las interfaces y permite el uso de tarjetas Add-on llamado capas, añadir diferentes combinaciones de características. Un usuario también puede desarrollar su propio tablero o agregue su propio circuito.
Características de la placa incluye:
1. AM335x ARM® de 1GHz Cortex-A8
2. 512MB DE RAM DDR3
3. 4GB eMMC de 8 bits a bordo flash de almacenamiento
4. acelerador de gráficos 3D
5. acelerador flotante neón
Conectividad:
1. USB cliente para energía y comunicaciones
2. USB host
3. Ethernet
4. HDMI
5. 2 x Jefe del pin 46
Compatibilidad de software:
1. debian
2. android
3. Ubuntu
4. Cloud9 IDE