Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2. Desarrollo
Las funcionalidades que se han querido instalar son: un reloj sincronizado con un servidor
(se sincroniza cada 15 segundos ya que es el límite de tiempo que permite el microcontrolador),
un sistema de configuración de alarma (que haga sonar el buzzer cuando la hora del reloj coincida
con la de la alarma), un cronómetro con precisión de segundos y un sistema de configuración y
ejecución de una cuenta atrás (que haga sonar el buzzer cuando llega a cero).
2.1. Configuración
La configuración de cableado que se ha usado es la especificada en la Tabla 1, y se puede
observar en la Figura 1.
Pin Objeto Pin Placa Pin Objeto Pin Placa
Pin 1 Pantalla GND Positivo buzzer P22
Pin 2 Pantalla 3V3 Negativo buzzer GND
Pin 3 Pantalla P23 Botones Pin 1 Vin
Pin 4 Pantalla P11 Botón Blanco izq Pin 2 P15
Pin 5 Pantalla P21 Botón Azul Pin 2 P14
Pin 6 Pantalla P20 Botón Blanco dcha Pin 2 P13
Pin 7 Pantalla P19 Botón Rojo Pin 2 P16
Pin 8 Pantalla P9
Tabla 1. Conexiones con la placa WiPy
Figura 1. Configuración de conexiones con la placa WiPy
2.2. Funcionalidades
En los programas que se han desarrollado van incluidos tres programas, a parte de la
librería pcd8544.py que sirve para configurar la pantalla de Nokia 5110. Estos programas son el
boot.py, que se ejecuta al iniciar la placa, el archivo functions.py, que actúa como librería para los
programas que ejecutan las distintas pantallas, por último, el archivo icons.py, que se pretendía
que fuese una librería en la que se programaban los distintos iconos que se van a utilizar, sin
embargo, debido a que al utilizar un archivo distinto se borraba toda la pantalla no se ha utilizado,
se ha dejado incluido ya que se ha usado como referencia para incluir los iconos en las distintas
funciones que ejecutan las pantallas.
El cambio de funcionalidades se ha programado para que se haga al apretar el botón azul
que se puede ver en la Figura 1. Estos cambios de funcionalidades se efectúan mediante una
variable que se ha llamado screenmode, que vale 0 para la función del reloj, 1 para la función de
la configuración de la alarma, 2 para el cronómetro y 3 para la cuenta atrás. A continuación se van
a detallar las distintas funcionalidades, que se traducen en las distintas pantallas del reloj.
- Reloj digital con sincronización online:
Para la funcionalidad del reloj se usa el comando rct.ntp_sync(), que se conecta a un
servidor (en este caso concreto el servidor “hora.roa.es”) cada cierto tiempo que se puede
especificar como una de las entradas (en este caso se ha seleccionado 15s, que es el mínimo
tiempo de muestreo que acepta este comando) y de esta conexión se obtiene la hora UTC y fecha
actual.
Esta hora y fecha se puede incluir en la memoria de la placa mediante el comando
rtc.now(), y gracias al comando rtc.init() se puede sincronizar el reloj interno de la placa con dicha
hora (además de introducir husos horarios, en este caso se le añade un +2 al componente de la
hora para tener el huso horario de España).
Para finalizar con esta funcionalidad tenemos la función hora() definida en el archivo
functions.py, con la que representamos la pantalla correspondiente a la funcionalidad de reloj. En
la Figura 2 se puede ver el diseño elegido para esta pantalla. Se ha añadido como detalle un
símbolo de un reloj despertador que aparece cuando la alarma está activada.