En esta entrada se han incorporado diferentes funcionalidades, como la capacidad de almacenar los valores proporcionados por la calibración en la memoria EEPROM o la inclusión de un nuevo elemento en el sistema. Esto conlleva una serie de medidas necesarias como el uso de un protocolo de comunicación entre los distintos microcontroladores que forman el sistema permitiendo de esta forma, un intercambio de información garantizando la correcta transmisión de datos entre ellos.
Se comenzará con los cambios realizados para la plaza. En primer lugar se va a explicar el uso de la memoria EEPROM del Arduino. Se trata de una pequeña memoría no volátil, es decir, no se elimina la información al reiniciarse el dispositivo, que se puede utilizar para guardar una cantidad de datos limitada. El dispositivo que se utiliza en las plazas es un Arduino UNO que dispone de un total de almacenamiento de 1 KB. La librería usada es la que incluye en el IDE, EEPROM.h con la que se implementarán dos métodos, el saveEEPROM y el loadEEPROM los cuales se pueden ver en el archivo plazaV2.ino del repositorio.
Como se expuso anteriormente, se incluye otro dispositivo al sistema. Para comunicar ambos dispositivos se usará en un principio el protocolo I2C, se trata de una comunicación serie que principalmente se usa para establecer un diálogo entre microcontroladores y/o sus periféricos. Para establecer la comunicación se necesita darle una dirección a cada elemento que interfiere en la misma. Utiliza tres líneas, dos de ellas para comunicación donde una de ellas se utiliza para el reloj (SCL) y otra para los datos (SDA), la tercera línea sería tierra (GND).
El uso de I2C en Arduino es muy sencillo, para ello se necesita la librería Wire.h y a través de interrupciones se realiza la comunicación como se puede ver en el archivo plazaV2.ino.
Una vez terminado con la plaza, se comienza con la explicación del nuevo elemento del sistema. Este controlador será el encargado de coordinar los otros dispositivos y conseguir la correcta sincronización del sistema. Para ello se conectará a través del bus I2C como maestro, a través del shield LCDKeypad se selecciona que opción tiene que realizar, en este momento se dispone de "CALIBRAR", "ABRIR" y "VER PLAZAS".
En la opción "CALIBRAR" mandará una petición a la plaza y esta comenzará con el calibrado. Por otro lado "ABRIR" acciona el servomotor de la entrada, levantando la barrera y permitiendo el acceso de un vehículo. Por último "VER PLAZAS" indica el total de plazas libres que se encuentran en el garaje. Para más información o ver el código, se puede consultar el fichero iiotcontroller.ino
que se encuentra en el repositorio.
Repositorio: https://github.com/iiotUHU/iiot/
No hay comentarios:
Publicar un comentario