Saltar al contenido

Bleskomat Hazlo Tú Mismo

Este tutorial te enseñará lo básico sobre cómo construir tu propio Bleskomat-hazlo-tú-mismo.

Cabe mencionar las diferencias entre Bleskomat-DIY (Bleskomat Hazlo Tú Mismo) y Bleskomat. Bleskomat-DIY es un proyecto para aficionados a la electrónica y entusiastas de Bitcoin. El objetivo es que cada uno lo pueda construir en su casa con pocos medios y básicos conocimientos de electrónica y software.

En cambio, Bleskomat es un producto comercial mucho más robusto destinado para emprendedores de comercios físicos a los que acude gente (cafeterías, restaurantes, peluquerías…) y que quieran dar el servicio extra de venta de Bitcoin y así obtener una forma de ingresos con las comisiones.

¿Para qué necesito un Bleskomat Hazlo Tú Mismo?

  • Bleskomat es ideal para comunidades locales de Bitcoin.
  • Es una estupenda herramienta que ayuda a iniciar a familiares, amigos o compañeros de trabajo, entre otros, en Bitcoin dándole la oportunidad de adquirir sus primeros sats y experimentar la magia de Bitcoin de primera mano.
  • Puedes juntar los cables y configurarlo simplemente siguiendo las instrucciones, pero, como todo es de código libre, puedes también extenderlo y aprender cómo construir algo similar.

Principales características del cajero Bleskomat

Bleskomat-hazlo-tú-mismo (DIY) es un proyecto de código libre para construir un cajero de Bitcoin utilizando la red relámpago (Lightning Network).

  • Funciona sin conexión a internet (no necesita ningún tipo de conexión a internet).
  • Económico y con componentes que son fáciles de conseguir.
  • Fácil de «hackear» y extender.

El cajero Bleskomat debe ir acompañado de bleskomat-server (https://github.com/samotari/bleskomat-server), el cual se encarga de gestionar los pagos en la red relámpago para uno o más cajeros ya que el cajero en sí nunca se conecta a internet. Si compras el kit de Bleskomat-hazlo-tú-mismo en la tienda oficial de Bleskomat, este incluye una subscripción para un año a la platforma Bleskomat para que no tengas que correr el servidor por tu cuenta si no tienes el tiempo o las habilidades para hacerlo.

Requerimientos de hardware

  • Cables con conectores dupont macho-macho
  • Cables con conectores dupont macho-hembra
  • 2 conectores de 3 pines
  • 2 conectores de 6 pines
  • 2 conectores de 2 pines
  • Placa de desarrollo ESP32
  • Aceptor de monedas hx616
  • Pantalla TFT 1.8″
  • Botón
  • Resistencia de 10k ohm
  • Transformador de corriente continua 12V y ~1A
  • Cable USB – micro USB
  • XL4005 regulador de voltaje

Herramientas necesarias:

  • Multímetro
  • Soldador
  • Destornillador
  • Tarjeta SD (opcional)

Pasos para construir el dispositivo físico

Una vez que has adquirido todos los componentes de hardware y software, puedes empezar a construir tu propio bleskomat-hazlo-tú-mismo.

Flash firmware al ESP32

La forma más facil de flashear el firmware es usando la herramienta de flasheado de la plataforma Bleskomat https://platform.bleskomat.com/serial. Pero si quieres compilar el código fuente y flashearlo desde la línea de comando, puedes hacerlo siguiendo las instrucciones en el repositorio Bleskomat https://github.com/samotari/bleskomat-diy/tree/hx616

La placa de desarrollo ESP32 tienen muchos pins, pero solo usaremos algunos de ellos. En la imagen abajo puedes ver todos los que tienen una de las versiones de placas de desarrollo más comunes.

Descripción de los pines de la placa de desarrollo ESP32.

Dependiendo de tu proveedor, la colocación de los pins puede ser diferente, así que es recomendable seguir los nombres de los pins en lugar de la ubicación en las imagenes de este tutorial.

Fuente de alimentación

El primer paso para la construcción del dispositivo es connectar lo que será la fuente de alimentación.

El conector Jack barrel de 12 V tiene 2 salidas (+/-)

  • Conectar el adaptador de 12V al conector jack barrel.
  • Conectar jack barrel a red de 12V para tener 2 salidas (regulador de voltaje y aceptor de monedas).
  • Crear una red de tierra.
  • Conectar al regulador de voltaje y configurarlo.

Configurar regulador de voltaje (5V)

Lo primero es configurar el regulador de voltaje para que provea una salida de 5 V con una entrada de 12 V. Para ello, debemos conectar las entradas (in+/in-) a los cables del conector Jack barrel que, a su vez, está conectado al adaptador de 12V. Puedes inspirarte y colocarlo como en la imagen abajo.

Regulador de voltaje para configurarlo a 5V

Para ello, debemos conectarlo a la fuente de alimentación que esté conectada a la electrididad y usaremos el multímetro (https://es.wikipedia.org/wiki/Mult%C3%ADmetro) para comprobar que el voltaje a la salida del regulador de voltaje es 5. Para ello, tenemos que regularlo usando el tornillo amarillo.

Una vez que hayamos conseguido una salida de 5V del regulador de voltaje, podemos conectarlo a dos conectores: uno para 5V y otro que va a ser el ground de nuestro sistema. Puedes tomar inspiración de la siguiente imagen:

Conectar la pantalla TFT

Conecta el módulo con la pantalla TFT a la placa de pruebas. La imagen abajo te da una idea de cómo la puedes situar para fácilmente poderla conectar a la placa de desarrollo ESP32.

La tabla abajo contiene los nombres con los pins de la patalla que tienen que ir conectados al ESP32. Algunos pins tienen un nombre entre paréntesis, lo cual es debibo a que algunos proveedores de placas de desarrollo ESP32 los llaman de una manera y otros, de la otra.

ESP32TFT5VGND
VCCV5
GNDGND
GPIO22CS
GPIO4RESET (RST)
GPIO2AO (RS)
GPIO23SDA
GPIO18SCK (CLK)
Tabla mapeado de pines de la pantalla TFT a la placa de desarrollo ESP32

Algunos de los pins que en la tabla son llamados `GPIOxx` en tu placa de desarrollo pueden estar marcados como `Dxx`.

Como puedes ver en la imagen abajo, 5 de los pines de la pantalla TFT van al ESP32 y los otros dos van, uno al conector que previamente hemos preparado para 5V, y el otro conector que previamente hemos preparado, para ground.

Conectar el botón

Conecta el botón donde creas que es más práctico, normalmente en alguna de las esquinas de las placas de pruebas para poder acceder y presionarlo sin tener muchos cables por medio.

ESP32Botón
VIN (V5)pin izquierdo
GPIO33pin derecho

Conecta el pin derecho del botón a la toma de tierra (GND) con una resistencia de 10k ohm tal y como figura en la imagen abajo.

La conexión con la resistencia de 10K ohm se puede realizar de muchas formas. Para evitar soldar, en este tutorial mostramos una forma sencilla usando dos conectores de cables:

Una vez que tienes la resistencia correctamente incorporada entre dos cables, se puede completar el circuito de botón como es sugerido en la imagen abajo:

Conectar el aceptor de monedas (hx616)

El aceptor de monedas DG600F funciona con comunicación por pulsos y hay que conectarlo a la alimentación de 12V de corriente contínua.

ESP32Aceptor de monedas (HX616)Alimentación
DC12V+ 12V DC
GPIO3 (RX0)COIN
GND– Ground

Configuración y entrenamiento del aceptor de monedas (hx616)

La primera es la configuración física del dispositivo. En la parte de atrás tiene 2 selectores que deben ser configurados tal y como es descrito abajo:

  • Selector (NO/NC) -> NO
  • Selector (Fast/Medium/Slow) -> Fast

Ahora tenemos que configurar el dispositivo para que funcione con las monedas que queremos. El HX-616 aprende cuáles son las monedas que debe aceptar mediante un proceso de entrenamiento en el cual introduciremos varias muestras de las denominaciones que queremos que nuestro Bleskomat acepte.

Configuración interna

  1. Presiona los botones ADD y MINUS a la vez hasta que aparezca la letra «A».
  2. Presiona el botón SET hasta que aparezca la letra «E» y utiliza ADD y MINUS para seleccionar cuántas denominaciones quieres usar (entre 1 y 6), es decir, cuántas denominaciones de la misma moneda quieres usar. Si quieres que funcione solo con monedas de 1 EUR, entonces selecionas 1. En cambio, si quieres que funcione con monedas de 0.05, 0.10, 0.20, 0.50, 1 y 2 EUR, debes seleccionar 6.
  3. Presiona el botón SET hasta que aparezca la letra «H1» y utiliza ADD y MINUS para seleccionar cuántas muestras de la primera denominación quieres usar.
  4. Presiona el botón SET hasta que aparezca la letra «P1» y utiliza ADD y MINUS para seleccionar el valor de señal de la denominación. En caso de que sea 0.05 EUR, el valor de señal será 1, ya que 0.05 será el valor de unidad que vamos a configurar en «coinValueIncrement», como veremos en la sección «Configurar Bleskomat».
  5. Presiona el botón SET hasta que aparezca la letra «F1» y utiliza ADD y MINUS para seleccionar el valor de precision. El fabricante del dispositivo recomienda utilizar 8.
  6. Presiona el botón SET hasta que aparezca «H2» y repite los pasos descritos en los puntos 3, 4 y 5 para cada una de las denominaciones que deseas utilizar.

Entrenamiento con muestras de monedas

  1. Mantén pulsado el botón SET hasta que aparezca la letra «A» y el primer LED en el grupo de LEDs junto al botón SET se ilumine.
  2. Presiona el botón SET otra vez hasta que aparezca la «A1» en la pantalla del aceptor de monedas. A continuación, inserta las monedas de muestra de la denominación que fue configurada en el paso anterior para «H1».
  3. Una vez que todas las muestras de la primera denominación han sido introducidas, todos los leds se iluminan uno detrás de otro.
  4. Ahora debería aparecer «A2″en la pantalla del aceptor de monedas y debes seguir el paso descrito en el punto 2 para la segunda denominación, y así hasta que completes todas las denominaciones deseadas y configuradas en el paso «Configuración interna».

Configurar Bleskomat

Si has llegado hasta aquí, ya tienes casi todos los cables conectados. Ahora tenemos que configurar el dispositivo.

Con tarjeta SD

La tarjeta SD solo tienes que usarla si decides usar la opción de configurar Bleskomat con tarjeta SD. Esta opción te permite cambiar la configuración de tu Bleskomat-hazlo-tú-mismo sin la necesidad de compilar el códico cada vez.

La pantalla TFT dispone de un lector de tarjetas micro SD. Los pins deberían ir soldados y luego conectados al ESP32. Las conexiones deben ir tal y como figuran en la tabla abajo:

ESP32TFT
GPIO15SD_CS
GPIO13SD_MOSI
GPIO12SD_MISO
GPIO14SD_SCK
Mapeado de los pines de la tarjeta SD en la parte trasera de la pantalla TFT con el ESP32

La tarjeta debe estar formateada para sistema de archivos FAT.

Crea un nuevo archivo con nombre `bleskomat.conf` en la raiz de la tarjeta SD.

Un ejemplo de datos que debe contener el archivo `bleskomat.conf`:

apiKey.id=6d830ddeb0
apiKey.key=b11cd6b002916691ccf3097eee3b49e51759225704dde88ecfced76ad95324c9
apiKey.encoding=hex
callbackUrl=https://your-bleskomat-server/u
shorten=true
uriSchemaPrefix=
fiatCurrency=EUR
fiatPrecision=2
coinValueIncrement=0.05

Directamente en el código fuente

Puedes cambiar los valores para configurar Bleskomat-DIY directamente en el código si vas al archivo [config.cpp](https://github.com/samotari/bleskomat-diy/blob/hx616/src/config.cpp#L155).

Esta opción te obliga a compilar y subir el nuevo firmware a tu microcontrolador cada vez que modifiques algún atributo, pero te permite no usar tarjeta SD.

¿Dudas?

Si todavía te quedan dudas, no dudes en venir a nuestro canal de telegram https://t.me/bleskomat y preguntar.