Una pequeña introducción a Arduino, y como lo uso.

Compartelo con otros!

El meterme en el mundo de esta pequeña placa de desarrollo fue todo un descubrimiento. Mis conocimientos de hardware eran teóricos y de programación solo sabia algo de Visual Basic, pero muy «basic».
Todo empezó con un kit que incluía un Arduino Mega 2560 y unos cuantos accesorios relacionados: breadboard + cables, un LCD y algunos leds+botones.
Este kit me ayudo a entrar en el mundo de Arduino (y su hardware) y a empezar a manejar C++ con más confianza.

arduino mega2560
El «gran» Arduino Mega2560

Una vez teniendo sus principios bajo control, poco más se me ocurría qué podía hacer Arduino por mí, hasta que empecé mi maqueta y el smarthome se volvió más accesible con los SOC ESP8266.

modulo de feedback S88N

Entonces es cuando las ideas empiezan a aparecer y requieren de un hardware en el que correr, así que mi primer proyecto sólido con Arduino fue el crear un reemplazo para los módulos S88N que sirven de feedback de señales de la maqueta, como por ejemplo para ocupación de tramos de vías o para input de comandos.

hardware S88N con OKKIE
S88N con 2x OKKIE de Nico Teering (ArCoMoRa)

Estos módulos se basan en un registro binario de desplazamiento (shifting register), así que lo único que tenía que hacer el Arduino encargado de ello era leer el estado de 16 entradas digitales y llenar dos byte, así al requerirse los datos, solo hay que ir «empujando» cada bit al ritmo que marca la central de control (en mi caso una Central Station 3+ de Märklin).

La única complicación fue que los Arduino funcionan a niveles de 5V, pero el bus S88 de la CS3+ funciona a 12V (no como antiguamente, que el S88 iba a 5V).
Así que usando un MOSFET IRF520N como puerta lógica NOT, que a la vez me bajaba el voltaje a niveles de 5V

y para completar la detección por consumo, usando la OKKIE de Nico Teering, que podéis encontrar en su web donde también las podéis comprar:

https://www.arcomora.com/arloco/

(para saber más detalles de como funciona para poder hacerte uno, aquí)

Decoder DCC para accesorios

Aprovecho para mencionar que de las diferentes opciones en cuanto a código para gestionar los decoder DCC, sin duda es (en mi opinión) el software de ArCoMoRa, llamado MarDec, y para señales ArSigDec.

Siguiente fue entonces intentar lo mismo para otros elementos de control, como por ejemplo los decoder para cambios de vía, que también son elementos caros, y de los que iba a necesitar unos cuantos para el trazado que planeaba.

Primero empecé usando los actuadores estándar de Fleischmann, que actúan sobre el cambio de vía con un doble electroimán, el cual hay que alimentar a 15V-17V y controlar mediante relais o mosfet. en la teoría funcionaba bien, pero no me parecía una solución estable a largo plazo, así que pensé en pasarme a los servos de 9g.

DCC arduino mosfet shield
DCC arduino mosfet shield

Decoder DCC para Servos 9g

¡esta vez fue todo más sencillo: los servos se autogestionan! Solo hay que decirles a que posición tienen que girar. Así que el módulo iba a ser mucho más simple:

arduino pro mini servo shield
Decoder DCC para Servos de 9g

El «bus» que uso se basa en cables de 6 hilos, con conectores RJ12 6P6C. Uso el siguiente pinout:

1- +12V
2- GND (12V)
3- +5V
4- GND (5V)
5- Señal DCC (Rectificada – 5V)
6- GND (DCC)

pinout conector rj12-6p6c
RJ12 – 6P6C

Gestor de riego «Smart»

Este es aún un WIP (Work in Progress), que se está alargando mucho.
Cuenta de momento con una funcionalidad básica y limitada que de momento tiene su utilidad.

maceta con sensor humedad smart
maceta con sensor humedad smart

El propósito del proyecto era hacer un cacharro que nos regara algunas macetas cuando nos vamos de vacaciones, así que tenía que principalmente ser capaz de:
– controlar la humedad de las plantas
– regar al bajar de cierto umbral
– gestionable por MQTT (para que sea smart!)

de momento solo nos da lecturas de humedad en dos plantas, y nos viene muy bien. Mediante openHAB, recibimos un mensaje por Telegram cuando baja la humedad del 20%.

El principal elemento del proyecto es un ESP8266 o ESP32, aunque voy a centrarme en este último, más reciente y más capaz. No es realmente un Arduino, pero se puede usar como si lo fuera, incluso a través del mismo IDE: todo lo aprendido me sigue sirviendo!

OpenMQTTGateway para BLE

y como ultimo gran elemento funcional de nuestro ecosistema de pequeños modulos, puede que el mas simple de todos, es el ESP32 que trabaja como gateway BLE para recojer los mensajes de los pequeños termometros de xiaomi.

Mi primera intención fue usar el BLE de la propia raspberry 4, pero ni fue fácil ni la sensibilidad de la señal era suficiente, así que gracias al proyecto de OpenMQTTGateway y el custom firmware ATC_MiThermometer, todo funcionando en un rato y con los datos «en bandeja» para openHAB!

AliExpress.com Product – ESP-WROOM- 32 WeMos D1 Mini Module Wemos D1 Mini WiFi Development Board Micro USB 3.3V Based On ESP8266 With Pin

Usando un módulo Wemos ESP32 D1 Mini, que cuenta con USB, se puede dejar conectado detrás de cualquier aparato en la casa con USB (router, tele, cargador móvil), que tenga una buena colocación para buena cobertura y a funcionar!

Deja un comentario