WittyPi – Review y tutorial del increíble HAT para Raspberry PI

Tras los exámenes de fin de semestre y mucho trabajo previo a las vacaciones, dispongo del ansiado y merecido tiempo para redactar un buen tutorial; en esta ocasión hablaremos sobre WittyPi de la marca Uugear.

Este útil HAT dota de varias funciones adicionales a nuestra Raspberry Pi, como por ejemplo un reloj en tiempo real, y la posibilidad de configurar el encendido y apagado automatizados; algo realmente útil para la implementación de servidores o el desarrollo de proyectos pensados para operar en zonas de difícil acceso.

WittyZero1

WittyPi con Raspberry Pi Zero V1.

Para descargar el software de control podemos utilizar la orden de terminal wget, para acto seguido lanzar con permisos de root el script de instalación; una vez termine ya podremos ejecutar WittyPi para empezar a disfrutar de sus funciones.

#Descargamos el software WittyPi
pi@raspberrypi:~$ wget http://www.uugear.com/repo/WittyPi/installWittyPi.sh

#Ejecutamos el script de instalación con permisos de root
pi@raspberrypi:~$ sudo sh installWittyPi.sh

Si queremos utilizarla con Raspberry PI 3, debemos tener en cuenta que se han modificado los valores de algunos de los pins GPIO de este modelo en las nuevas versiones del firmware de Raspbian para dar soporte al nuevo modulo Bluetooth, por lo que debemos añadir la siguiente línea al final del archivo de configuración.

#/boot/config.txt
dtoverlay=pi3-miniuart-bt

Si no añadimos la línea anterior en el archivo de configuración antes de conectar WittyPi al puerto GPIO, nuestra Raspberry Pi no arrancará con WittyPi; quedando únicamente encendido el led rojo.

Para entender el cambio que se produce al añadir esta línea en el archivo de configuración de Raspberry Pi, podemos ejecutar la utilidad gpio readall antes y después del cambio, como podéis ver en los resultados de ambas pruebas.

 
 +-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
 |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5V      |     |     |
 |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 0 | IN   | TxD     | 15  | 14  |
 |     |     |      0v |      |   |  9 || 10 | 1 | IN   | RxD     | 16  | 15  |
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |
 |   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
 |   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |
 |   6 |  22 | GPIO.22 |   IN | 1 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |
 |  13 |  23 | GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v      |     |     |
 |  19 |  24 | GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |
 |  26 |  25 | GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | GPIO.28 | 28  | 20  |
 |     |     |      0v |      |   | 39 || 40 | 0 | IN   | GPIO.29 | 29  | 21  |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+
 +-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
 |   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5V      |     |     |
 |   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |
 |     |     |      0v |      |   |  9 || 10 | 1 | ALT0 | RxD     | 16  | 15  |
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |
 |  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |
 |   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |
 |  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |
 |   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
 |   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |
 |   6 |  22 | GPIO.22 |   IN | 1 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |
 |  13 |  23 | GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v      |     |     |
 |  19 |  24 | GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |
 |  26 |  25 | GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | GPIO.28 | 28  | 20  |
 |     |     |      0v |      |   | 39 || 40 | 0 | IN   | GPIO.29 | 29  | 21  |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+

Ahora ya podemos iniciar nuestra Raspberry Pi pulsando el botón de encendido de WittyPi, entrar en la carpeta del software que descargamos previamente, y acto seguido ejecutar el archivo wittyPi.sh para configurar todas sus opciones.


================================================================================
|                                                                              |
|   Witty Pi - Realtime Clock + Power Management for Raspberry Pi              |
|                                                                              |
|                   < Version 2.17 >     by UUGear s.r.o.                      |
|                                                                              |
================================================================================
>>> Your system time is: Sat 11 Jun 2016 22:54:02 UTC
>>> Your RTC time is:    Sat 11 Jun 2016 22:54:03 UTC
Now you can:
  1. Write system time to RTC
  2. Write RTC time to system
  3. Set time for auto startup
  4. Set time for auto shutdown
  5. Choose schedule script
  6. Reset data...
  7. Exit
What do you want to do? (1~7) 

Una de las más prácticas consiste en configurar el software para que lea los ciclos de encendido y apagado, así como el periodo de tiempo en que se aplicará cada uno de ellos de un script alojado en nuestra Raspberry Pi; a continuación podéis observar varios ejemplos de sintaxis.

#Enciende Raspberry Pi a las 9:30 y la apaga a las 19:30

BEGIN	2016-01-31 00:00:00 
END	2017-01-31 23:59:59

ON	H9 M30
OFF	H19 M30


#Enciende Raspberry Pi el día 1 y el día 15 de cada mes durante una hora

BEGIN	2016-01-31 00:00:00 
END	2017-01-31 23:59:59

ON	H9 M30
OFF	H19 M30


#Enciende Raspberry Pi durante 5 minutos de cada 20

BEGIN	2016-01-31 00:00:00 
END	2017-01-31 23:59:59

ON	M5
OFF	M15


#Enciende Raspberry Pi 5 minutos de cada hora

BEGIN	2016-01-31 00:00:00 
END	2017-01-31 23:59:59

ON	M5
OFF	M55

Para usos más avanzados, podéis consultar el completo manual de usuario de la web de Uugear; ante problemas de configuración el primer paso aconsejado es revisar el archivo schedules.log, alojado en el directorio principal del software de WittyPi.

---------------------------------------------------
--------------- 2016-06-12 12:04:31 ---------------
File "schedule.wpi" not found, skip running schedule script.
---------------------------------------------------
--------------- 2016-06-11 23:20:14 ---------------
I can not find the begin time in the script...
---------------------------------------------------
--------------- 2016-06-11 23:49:22 ---------------
Schedule next shutdown at: 2016-06-12 00:05:00
Schedule next startup at:  2016-06-12 00:20:00
---------------------------------------------------

El HAT dispone de tres jumpers con funciones predefinidas, pero que también podemos personalizar; la posición por defecto del jumper rojo precisará de interacción con el usuario para encender nuestra Raspberry Pi, puesto que para ello debemos presionar el botón de encendido, si por el contrario cambiamos la posición de dicho jumper, al alimentar WittyPi se encenderá nuestra Raspberry automáticamente.

RojoOff

Podemos controlar el indicador led enviando una señal desde uno de los GPIO de Raspberry al pin amarillo, por defecto esta señal será recibida por el GPIO 17 pero si lo deseamos podemos cambiar la posición del jumper y asignar otro GPIO como entrada que conectaremos al pin de color amarillo.

Amarillo

Finalmente enviando una señal al pin verde podemos apagar debidamente nuestra Raspberry Pi; como en el anterior caso podemos asignarle a cualquier pin esta función de entrada moviendo el jumper, por defecto el puerto utilizado es el GPIO 4.

Verde

Si tras interrumpir la alimentación de WittyPi nuestra Raspberry inicia unos segundos para finalmente apagarse, lo solucionaremos desconectando la alimentación y extrayendo la pila del HAT el tiempo suficiente para que se descarguen todos los condensadores.

Si te ha gustado puedes seguirme en Twitter, Facbook, Google+, Linkedin, Feedly, o compartirlo con los botones ubicados debajo de esta publicación, si tienes cualquier pregunta o sugerencia no dudes en comentar.

Ayudanos a llegar a más lectores Share on LinkedIn
Linkedin
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on Google+
Google+
Email this to someone
email

3 pensamientos en “WittyPi – Review y tutorial del increíble HAT para Raspberry PI

  1. Genial aporte per la meva RPI, pero….. no esta disponiple a la seva pag. On la puc comprar? estic a Blanes i la voldria comprar x internet. Gracies . MOLT BO TOT PLEGAT !!!!!!! Ets genial . excellent !!!!!!!!!!!

Deja un comentario