
Tiempo de lectura aprox: 4 minutos, 24 segundos
¿Tienes la imperiosa necesidad de saber en todo momento el precio actual del bitcoin, la altura del último bloque minado, o las fees estimadas para que tus transacciones se confirmen en el próximo bloque? Estas de suerte, vamos a explicar cómo construir un bitclock por apenas 40 €.
Lista de la compra.
Necesitaremos el siguiente material. Dejo los enlaces de Aliexpress de las tiendas donde he comprado yo cada elemento, pero en realidad lo podéis comprar donde queráis (amazon, etc…)
- 1 x Raspberry Pi Zero W, si puede ser con el pin header ya montado, esto te facilitará las cosas enlace
- 1 x cable micro hdmi a hdmi (o un adaptador micro hdmi a hdmi si ya tienes cable) enlace
- 1 x fuente alimentación para Raspberry Pi Zero (si la necesitas. En caso que tengas alguna regleta donde conectarla por USB con salida de 5V no sería necesaria)
- 1 x pantalla waveshare e-ink de 2’13 pulgadas enlace
- 1 x teclado USB (puedes usar cualquier teclado que tengas por casa, ya que va a ser solo un momento) y un adaptador USB a mini-USB para poder conectarlo enlace
- 1 x tarjeta microSD de 8 GB o superior
Montaje
Si hemos comprado la Raspberry Pi Zero W con el pin header ya montado, no habrá ninguna complicación. Simplemente encajaremos la pantalla en el puerto GPIO de la Raspberry y listo.
Sistema operativo de la Raspberry Pi Zero
Descargar el sistema operativo Raspberry Pi OS Lite de la siguiente dirección oficial https://www.raspberrypi.org/software/operating-systems/
Debemos grabar el Sistema Operativo en una tarjeta SD de tamaño suficiente (con una pequeña de 1 GB debe bastar). Para grabar la imagen yo personalmente uso le aplicación Etcher. Es multiplataforma y la podéis descargar aqui
Configuración y primeros pasos
Insertamos la tarjeta SD en la Raspberry Pi Zero, conectamos el cable HDMI al monitor, un teclado y conectamos a la corriente. Nos conectamos con el user: pi
, password: raspberry
, y ejecutamos el siguiente comando:
sudo raspi-config
En el menú configuración que aparece realizamos los siguientes cambios:
Configurar wifi System options / Wireless LAN: conectar al wifi de casa (escribir el nombre de la red y la contraseña)
Activar SSH Interface options / SSH / enable
Activar SPI Interface options / SPI / enable
Una vez hecho esto, ya podríamos en teoría desconectar monitor y teclado de nuestra Raspberry Pi y continuar todo el proceso desde un terminal SSH que abriríamos desde cualquier ordenador que tengamos en la misma red local. Para ello necesitamos primero obtener la dirección IP de la raspberry:
ifconfig
Tras la ejecución de este comando obtendremos una salida como la siguiente:
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.136 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::a21:977c:c3f5:8fee prefixlen 64 scopeid 0x20<link>
ether b8:27:eb:ec:d7:d8 txqueuelen 1000 (Ethernet)
RX packets 22986 bytes 17167770 (16.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 7194 bytes 1042225 (1017.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Debemos anotar la dirección inet
que aparece en el interfaz wlan0
, en el caso del ejemplo sería inet 192.168.1.136
Ahora, para conectar a nuestra Raspberry Pi desde cualquier otro ordenador que se encuentre en la red local, abriremos un terminal en dicho ordenador (En windows, con el comando cmd
, en Mac y linux abriendo un terminal) y ejecutaremos:
ssh pi@<dirección ip de la raspberry>
El sistema nos pedira la contraseña del usuario pi
. Escribiremos raspberry
Instalar herramientas y dependencias
sudo apt-get update
sudo apt-get install git
sudo apt-get install python3-pip
sudo apt-get install python3-pil
sudo apt-get install libatlas-base-dev
Descarga del código del script
Descargamos el proyecto desde github
git clone https://github.com/frangb/bitclock
Instalamos los paquetes requeridos
cd bitclock
sudo pip3 install -r requirements.txt
Ejecución del script
Para iniciar el script de manera manual, ejecutaremos el siguiente comando desde la carpeta del proyecto:
python3 btc_ticker.py [-h] [-t TIME] [-c {USD,EUR}] [-d {PRICE,BLOCK,PRCBLK}] [-tz TIMEZONE]
Disponemos de los siguientes argumentos opcionales:
-h, –help: Muestra un mensaje de ayuda explicando el uso de cada uno de los parámetros opcionales.
-t, –time: tiempo de refresco (en segundos) tras el que queremos que bitclock actualice el precio. Te recomiendo no usar un intervalo muy corto ya que la página desde donde se obtienen los datos podría bloquear tu IP. Un intervalo de 5 (300) o 10 (600) minutos debe funcionar bien. Si no se indica nada, por defecto se tomarán 60 segundos.
-c, –currency: indicar USD o EUR segun la moneda que queramos utilizar. Si no se indica nada, por defecto se mostrará en USD.
-d, –display: información que mostraremos en la pantalla. Indicar PRICE si queremos unicamente mostrar el precio, BLOCK si queremos mostrar la altura del bloque actual y las fees estimadas para confirmación inmediata / 30 min / 1 hora, o PRCBLK si queremos que la pantalla vaya alternando entre ambos modos. Si no se indica nada, por defecto se mostrará el precio.
-tz, –timezone: esto se usa para que aparezca correctamente la hora de la ultima actualización en la parte superior de la pantalla. Puedes consultar las zonas horarias disponibles aqui. Elige una de las zonas de la columna «TZ database name», por ejemplo «Europe/Madrid». Si no se indica nada, por defecto se usará la zona «Europe/Madrid».
a) Si queremos que se el script inicie automáticamente al enchufar la Raspberry Pi Zero, debemos añadir la siguiente linea al archivo rc.local. Para editar el archivo utilizaremos el siguiente comando:
sudo nano /etc/rc.local
Al final del archivo, antes de la linea exit 0
, añadimos la siguiente línea:
python3 /home/pi/bitclock/btc_ticker.py -t 300 -c USD -d PRICE -tz Europe/Madrid &
En este ejemplo he utilizado como intervalo de refresco 5 minutos (300 segundos) y como zona horaria Europe/Madrid, pero puedes cambiar estos parámetros a tu conveniencia.
Finalmente para guardar los cambios y salir del editor, pulsaremos «Ctrl + X», y cuando nos pregunte si queremos guardar los cambios, presionaremos «Y».
b) Si queremos poner en marcha el script nosotros manualmente, y queremos que continúe en ejecución aun después de haber cerrado la sesión SSH con nuestra Raspberry Pi, debemos ejecutarlo de la siguiente forma:
nohup python3 /home/pi/bitclock/btc_ticker.py -t 300 -c USD -d PRICE -tz Europe/Madrid
Opcional
Si la luz verde del LED de la Raspberry Pi Zero W nos parece molesta, podemos desactivarla mediante siguiente comando:
echo none | sudo tee /sys/class/leds/led0/trigger
Esta linea también la podemos añadir en el archivo rc.local
si lo deseamos, para que la luz se apague siempre al reiniciar la Raspberry Pi Zero
¿Cómo actualizar?
Si el proyecto ha sufrido algún cambio y deseas actualizarlo, únicamente tienes que acceder por SSH a tu Raspberry Pi Zero, borrar la carpeta del proyecto mediante el comando:
rm -rf bitclock
y a continuación volver a descargar el repositorio con el siguiente comando:
git clone https://github.com/frangb/bitclock
Opciones para la carcasa
Si te animas a construir una carcasa hecha con piezas de LEGO, en la subcarpeta «lego» encontrarás un modelo y la lista de piezas necesarias para construirlo. Por supuesto, este modelo es sólo una sugerencia, y si lo deseas puedes echarle imaginación y construir el tuyo propio, de manera que tu bitclock se convierta en una pieza única.

Si tienes acceso a una impresora 3D, Lunaticoin ha preparado este fantástico modelo para que tu bitclock luzca como en las siguientes imágenes:


Encontrarás todo lo necesario para imprimir las piezas del modelo 3D en https://github.com/frangb/bitclock/tree/master/cases/3d_printed
¡Y esto es todo! ¡Disfruta de tu nuevo bitclock!
Sobre el autor de este artículo
Informático y apasionado por la tecnología.
Co-fundador de https://blockchain3rs.com/
Si te ha gustado el proyecto, puedes seguirme en Twitter @fgbernal o dejarme una propina a través de Lightning Network
