Cacharraje para domótica
1. Arquitectura
- Controlador.
Para nosotros, es un programa de ordenador que orquesta el funcionamiento de la red domótica, como Domoticz, OpenHAB, Home Assistant ... Para otros puede ser también un paquete hardware-software, cerrado o no completamente abierto.
- Gateways.
Cuando el software corre en hw estándar, se necesitan dispositivos-puente que intermedien entre el controlador y las redes de sensores/actuadores que no comunican por medios soportados por ese hs. Por supuesto, los puentes pueden ser dispositivos externos comunicando por vía aérea, conectados por cable, enchufables ... A menudo, controlador y puentes se comunican mediante un broker MQTT, un sistema de mensajería ligero y bien pertrechado de elementos de seguridad, que permite entenderse a controladores y gateways que no soportan el mismo protocolo.
- Elementos de campo: Sensores y actuadores.
Ezo
2. Tecnologías
2.1. Serial RS232 vs TTL
- El rango de voltaje de las señales RS-232 es +/-13V, mientras que en TTL es de 0 a 3.3V/5V.
- La lógica binaria en relación a los niveles de voltaje está invertida: mientras que en RS232 el voltaje alto equivale a un 0, en TTL es un 1.
3. Gateways
3.1. ESP32/8266
Utilizado como gateway WiFi/MQTT a BLE, RF, IR, RS232, pero también como dispositivos actuadores/sensores WiFi. Pero la potencia de estos chips los hace candidatos a desempeñar un papel mayor que el de simples gateways: La diversidad de sus canales de comunicación y el que puedan a su vez integrar sensores/actuadores, les puede permitir hacer de pequeños controladores por sí mismos (sobretodo ESP32), con su web server para interactuar con el usuario o con otro sistema vía REST. Hay todo un mundo alrededor de esto.
Respecto a Bluetooth, ESP32 soporta tanto clásico como LE.
3.1.1. Software ESP
Normalmente, se les puede cargar con sw abierto, como es el que aquí mencionamos.
- Oficial Expressif
ESP-IDF, Firmaware oficial Expressif, con partes propietarias en forma binary blobs. Soporta SPI.
- Tasmota
tasmota. Software genérico alternativo para ESP8266; con soporte para ESP32 en beta.
Según una nota aquí no soporta SPI (? ESP32 tiene hasta 4 controladores SPI), pero sí I2C. Y tiene pintas de ser cierto pq aquí no aparece, y si buscas tasmota spi no se encuentra na de interés.
- ESPHome
ESPHome, otro software genérico alternativo. Soporta SPI, CAN Bus, I2C y UART.
- NodeMCU
Firmware 8266. Una vez flasheado, soporta programación tipo nodejs (event driven), pero en lua.
- ESPEasy
Este es similar a NodeMCU, solo que ya trae definidos muchos devices para los que solo hay que enchufar y usar. Estos sí que tienen una lista de hw soportado, pero pa enterarte de cómo funciona el tema no hay manera: ha que tirar de Wikipedia. Al final, parece, este es similar a tasmota o esphome.
- OpenMQTTGateway
OpenMQTTGateway, que permite usar un dispositivo ESP32 como puente a sensores que comuniquen vía BLE ( Mi Flora ), Lora, 433/315MHz básico, IR, RS232. Da acceso a una amplia lista de sensores (cuidado, ESP32 no soporta por sí misma Lora: necesita un hack). Y tampoco los genéricos 433 MHz: hay que conectarle, p.e. un RFLink vía SPI(I2C.
También se puede usar conectando transceivers RF a cualquier ESP soportado. Como éste o éste, con doc aquí y ejemplo de programa.
- Otros
Gateway Mi Flora a MQTT, Puente serial-IP (cuidado, esto es solo un cacho de código, no un paquete listo para compilar/instalar), Sistemas operativos como Mongoose o Zephyr, y Settimino, librería para comunicar con PLCs de Siemens.
3.1.2. Productos ESP
Algunas tiendas y productos.
3.1.2.1. Tiendas
- m5stack, con cores ESP32 empaquetados y sensores, como el M5StickC ESP32-PICO. El M5StickC PLUS es 2'5€ mas carillo, pero tiene el LCD un pelín mas grande, buzzer, mas batería y un par de GPIOs mas. Ambos llevan un ESP-PICO-D4, paise. Ambos tienen mini LCDs, 2 botones, IR, RTC, batería, USB, un led rojo y conector grove. Para ese conector hay hats, expansiones , entre las que M5StickC Proto Hat viene con una mini-plaquita para cablear ahí sensores y eso, otros hat incluyen un PIR, que es sensor infrarrojos para vigilancia, con alcance 5m, un RS485, ENV hat, que proporciona temperatura, humedad y presión de aire vía I2C.
- Muchas cosas en Seeedstudio. Las plaquitas vienen sin carcasa, pero hay tb muchos sensores y actuadores (ver categorías grove y MakerPro al menos.
- Olimex
- Baggood
- Wemos tiene plaquitas baratísimas ESP con numerosos componentes adicionales como shields. Y también Wemos D1 mini lleva un ESP2866EX se alimenta a 5VDC (aunque la especs que pone en su página dice 3'3 operating voltage, la alimentación es a 5'5 y luego en la placa se rebaja a los 3'3 que necesita el ESP: https://www.esp8266.com/viewtopic.php?t=19625. La página oficial remite para comprar a Aliexpress y ESP32, que vale solo un poquito mas
3.1.2.2. Listas de productos
- Página de boards de OpenMQTTGateway
- Productos que se venden con firmware Tasmota. Y los que ya tienen plantilla en Tasmota para usarlos sin configurar nada tras transferirles Tasmota.
3.1.2.3. Productos
- DOIT ESP32, con doc en Zerynth.
- ESP32 empaquetado en placa compatible arduino es una buena idea, porque se supone que facilita encontrar carcasas y otros componentes. Un ejemplo es Freematics Sprit, comprable akí.
- La cosa mas pequeña que he visto: no llega a 30x30, tiene conectores para pincharle las cosas y hay una pantallita de aprox 60x90 que lleva el ESP32 dentro y conectores en dos lados para los 40 pines x 20€.
- Wio link, un ESP8266 con chorro de conectores Grove.
- Relé wifi 10A, de Olimex con ESP8266EX. Lleva un relé, un jack de alimentación y un conector UEXT de 10 pines para GPIOs, i2c, SPI y serial. Su doc en shoptrónica, su página en olimex y su página en dikikey, que remite a how-to arduino para la placa completa, how-to upgrade para el chip, y ESP8266EX data sheet del chip. Además, está el how-to change working mode de olimex.
- Y otro relé wifi de 5A, de origen mas oscuro. En la página del fabricante no dice muxo y como info técnica da un enlace que ni se puede pinchar; descargué un zip que tengo en ~/domo. Tb hay algo akí. Aquí describen el esp8266 concreto que lleva, con los gpios que expone, cómo hacer para programarlo ... Está casi soportado en Tasmota: hay una diferencia y es que el de Tasmota lleva un header de 3 pines adicional que éste no lo lleva, y la página del fabricante es distinta, pero como los paratos se describen mediante plantillas basadas en otra plantilla, valdría para configurarlo.
- Placa-soporte para ESP32-DevKitC con bornero para todos los pines y zócalo para pinchar la placa cruda.
3.2. Gateways Zigbee
- Zigate, con conexión USB, para el que hay paquete debian con plugin domoticz. También está disponible aquí.
- PiZiGate es un hat que se pincha directamente a la Pi interactuando mediante la UART de la Pi. Aquí hay instrucciones para la Pi 4B (hay que modificar cosas relativas a la UART en configuración de boot). El plugin Zigate para Domoticz sirve igualmente, que es el citado mas arriba empaquetado para Debian.
- SONOFF Zigbee bridge, con conexión WiFi. Está soportado en Tasmota, que trabaja en coordinación con Zigbee2Tasmota (Z2T). El enlace de tasmota describe el flasheado de las dos partes (Z2T se ocupa del chip zigbee y enchufa la info a tasmota; cuidado pq Z2T es aplicable a dos rangos de dispositivos, éstos y los USB que se describen mas abajo). No parece que cuente con el soporte DIY de otros dispositivos Sonoff (al menos, no está listado entre los soportados). Parece mas barato que el Zigate akí, akí.
- zigbeetomqtt, para linux, en node, para puentes con USB.
- Zigbee2Tasmota (Z2T) también es aplicable a otro rango de dispositivos que hayan sido flasheados con Z-Stack. Aunque estos cacharros suelen ser puentes zigbee-usb, en este caso, https://tasmota.github.io/docs/CC2530/,se prescinde| del usb y se cablea para comunicación serie, se supone que al ESP82xx; Aquí está el procedimiento para quemar el firmware al puente zigbee desde una Pi.
3.3. Gateways RF
3.3.1. Software
- OpenMQTTGateway se puede cargar en cacharros preparados para esta frecuencia, como el SONOFF 433 RF Bridge. Y en otros dispositivos Sonoff con ese mismo chip, como el SONOFF BASIC R3.
- Tasmota incluye soporte para RF 433MHz Protocol.
3.3.2. Sonoff 433 RF Bridge
Un puente WiFi - 433MHz basado en ESP8285, con la doc oficial akí (especial interés su enlace a este pdf con el protocolo serie utilizado entre el chip RF y el ESP8245, Soportado en:
- en Tasmota, con documentación específica, y mas akí.
- OpenMQTTGateway.
- Un vídeo en español que explica cómo conectar el sonoff al convertidor USB-TTL y tb el flasheado de Tasmota, pero no el flasheado del chip RF, que se hace ya vía web con tasmota andando en el sonoff.
El flasheado con tasmota es muy fácil con tasmotizer. Una vez descargado y descomprimido, basta entrar al directorio y ejecutar python3 tasmotizer.py ... el resto es una GUI simple y efectiva.
3.3.3. RFLink Gateway
Es un gateway a redes 433 MHz vía usb (serial desde el lado host): tiene conector USB pero lo que habla con el host es serial. Hay también por ahí plaquitas para arduino que se pueden conectar a ESP e incluso sw RFLink-ESP. Se pueden comprar los componentes listos para ensablar un PCB con enlace I2C.
3.4. Nordic
nRF52832 es un SoC low energy con ARM Cortex M4 (32 bits) a 64 MHz, BTLE 5, 32 GPIO, PPI, SPI, I2S, UART, 8 x 12-bit ADC, coprocesador crypto y NFC. Se puede comprar p.e. en aliexpress o aquí; en adafruit vale un dinerillo, pero está muy completito y bien presentado. Es programable con GCC y tiene los internals bien documentados. Aunque no incluye WiFi, puede ser un buen ayudante para ESP8266 x su buen soporte BTLE, amplitud de buses de campo y pines ADC.
Hay otros chips mas potentes: el nRF52833 añade Zigbee. El nRF5340 lleva ARM Cortex M33 a 128 MHz, mejor crypto
4. Sensores y actuadores
4.1. BLE
El estándar incluye protocolos, asociaciones, profiles ... Ver akí una introducción. Es decir, funciona como USB: tu enchufas el parato y ya se entienden entre ellos: aquí lo emparejas y yastá, conocío de toa la vida.
- Monitor inteligente Mi Flora (Xiaomi).
- Actuador BLE con 4 salidas digitales. Eso sí, ni pizca de doc.
4.2. MODBUS RTU
Aquí hay sondas que comunican vía MB RTU. Froman parte de una plataforma de esas de nube privada (que los cacharros se conectan a la nube del fabricante sí o sí), pero las sondas x sí mismas deben tener un mapa modbus y x tanto utilizables en otros entornos. No todas parecen tener documentación, pero sí, p.e. la TH30S-B.
4.3. Zigbee
Está soportado x sistemas populares como Amazon echo/alexa, Samsung SmartThings, Philips Hue ... Lo que aumenta las posibilidades de encontrar artilugios que lo usen. Lo habitual es conectar a traves de un adaptador USB, aunque los hay tb por wifi o 485 24VDC.
- Esta bombilla OSRAM vale 8€ y es dimmable. Y esta alargadera tiene dos enchufes Zigbee y dos fijos.
- aquí hay lista de terminales Zigbee. Y tb aquí.
4.4. WiFi
Productos WiFi como los Sonoff tienen un modo wifi abierto, en este caso llamado DIY, una ifaz HTTP, en contraste al modo cerrado habitual que consiste en conectarse a la nube particular de fabricante para que hagas todo desde ahí. En el caso de Sonoff, solo los productos marcados como DIY tienen esta posibilidad.
4.5. SPI
Un termopar con chip de comunicación SPI cuesta unos $15: https://www.amazon.com/dp/B07TZ7CCVL/ref=dp_prsubs_3.
4.6. I2C
Aquí hay sensores de temperatura I2C
sensor de temperatura y humedad bien empaquetadito (grove).
Esta es una placa don dos relés controlados vía I2C.
5. Otros
Da la impresión de que esto es un gazpacho de voltajes DC. Esto u otros parecidos, pueden ayudar. Estos son level shifters mas orientados a convertir señales que alimentación.
Un artefacto para proteger el cacharraje de sol y agua.
Aquí tb hay un porrón de cosas.
6. Boards y PCBs
Como es prácticamente imposible que lo que uno quiere hacer se pueda montar sin utilizar componentes sin desnudos, que hay que montar en una placa, pues aki va una introducción. Hay todo un universo de tipos, derivados de tipos, mixes de tipos ...
- PCB
Placa de circuito impreso donde los componentes van soldados y en la que se dibujan de alguna manera pistas que conectan los componentes entre sí.
- Breadboard
No necesitan soldadura: tiene matrices de perforaciones con conexiones entre ellas formando bloques. Los componentes y cables se pinchan en los agujeros y quedan (mas o menos) conectados a lo que pueda haber pinchado en los agujeros que comparten cada bloque. Para conectar bloques entre sí, se utiliza cableado.
Pero a partir de ahí hay todo un universo. Donde existen perforaciones pre-fabricadas la distancia entre ellas suele ser 0.1 pulgadas (2.54mm).
- Protoboard
PCB hecho con perforaciones distribuídas y pre-conectadas como en las Breadboards. Es decir, una breadboard en la que hay que soldar cada pincho que metes en un agujero.
- Perfboard
Parece que también llamado Matrixboard. PCB perforado con cuadrícula donde cada agujero está aislado de los demás ( wikipedia ). Las conexiones entre perforaciones se hacen con cable o, si son contiguas, se unen mediante soldadura. Se puede considerar una variante la Stripboard, PCB también totalmete cubierto por cuadrícula de perforaciones donde los agujeros de una misma fila estan todos conectados entre sí, donde para desconectar agujeros de la misma fila hay que cortar la lámina de cobre que discurre entre ellos. Y tb puede ser otra variante el modelo Perf+, que es similar a la Stripboard, pero la lámina que no une los agujeros corre paralela, de forma que una pequeña soldadura une el agujero a la lámina, conectandose así a otros.