Diseño de MeteoHome en Kicad

Durante estas vacaciones de verano, me dediqué a cambiar mi pequeño servidor de domótica donde se ejecuta HomeAssistant, un SolidRun Cubox-i que ha funcionado a las mil maravillas, por un nuevo minipc de Beelink . Poco a poco me fui liando con diferentes cosas y, cuando me di cuenta, me vi retomando el desarrollo de MeteoHome, modificando cosas y con muchas ideas nuevas para mejorarlo.

Pero, ¿qué es MeteoHome? Pues es un proyecto de programación DIY que comencé allá por 2016. Se trata esencialmente de una estación meteorológica que utiliza una devboard ESP8266  y sensores DHT22 y BMPP180. La diferencia con otros proyectos similares es que la configuración se lleva a cabo de manera sencilla a través de un portal web cautivo. Además, utiliza MQTT para enviar los datos a un servidor y está pensado para que todos estos datos puedan ser recolectados por Home Assistant, lo que significa que puedes ver fácilmente el estado actual de los sensores y los gráficos históricos.

Una historia de unicornios
Aprovechando que a mis hijos les gusta hacer cosas en Scratch y que a mí me gusta sentarme con ellos y divertirme, hemos grabado un par de vídeos pensando en que tal vez sirvan como ejemplos para otros niños o para sus padres. El de Paula es muy sencillo. En el se ve cómo iniciar un programa, el bloque deslizar, la grabación de sonidos y el bloque por siempre para hacer un sonido repetitivo. Ella aún no lo maneja, pero pide que le haga lo que se imagina.

Co2 Detector

Después de leer este artículo (ES), comencé a pensar en crear mi propia placa de sensores. Busqué qué sensor usar y el SGP30 me pareció una buena opción. Luego, hice algunas pruebas, modifiqué el código de otro proyecto y más tarde diseñé una PCB. A partir de ese diseño, construí dos prototipos que actualmente están funcionando en mi casa. El dispositivo usa una cola mqtt para enviar datos a un gateway IoT (un minipc que ejecuta Home Assistant en mi caso). Además de eso, hay tres LED para mostrar cuál es el estado actual del aire en función de las partes por millón (PPM) de CO2:

  • Se muestra la luz verde si hay menos de 600 PPM de CO2.
  • Luz amarilla si hay entre 600 y 800 PPM.
  • Rojo cuando el CO2 es superior a 800.

El código fuente y el diseño de PCB (hecho en Kicad) se pueden encontrar aquí. En enero, el proyecto fue certificado como hardware de código abierto por la OSHWA

Probando ACE

Vaya por delante que este post va a ser largo. Haz scroll  si quieres saber cuánto. Tengo muchas cosas en la cabeza que me apetece contar sobre esta batallita y eso implica extenderme. Vayamos al lío...

Llevo unos cuantos días, la última semana si no recuerdo mal, aprovechando mis ratitos de tiempo libre para optimizar el código de prueba de lo que podría llegar a ser un juego para un Commodore Amiga. La cuestión es que si esto lo estuviese haciendo para una máquina contemporánea, no habría necesitado pasar por todo lo que contaré a continuación. Simplemente, habría cogido la idea inicial, la habría plasmado en el algoritmo original que se me pasó por la cabeza y la habría ejecutado. Digamos que, en un i5 opr ejemplo, con varios cores a 2000MHz hubiese funcionado a la primera a bastante más de 50 FPSs. El problema es que si haces eso mismo y lo lanzas en un emulador  de Amiga con procesador Motorola 68030 a 50MHz y obtienes 30 FPS y además tu  intención es hacer que funcione dignamente en un 68000 a 7.1 MHz, tienes un problema y debes optimizar.