Review: HelTec CubeCell Dev-Board HTCC-AB01 + Proyecto de Estación Meteorológica 🌡️💧
Las conclusiones suelen ir al final, pero en esta ocasión, comenzaré esta reseña con una breve opinión personal de lo que me parece esta placa:
Una fantástica aliada para prototipar aplicaciones IoT basadas en nodos LoRa/LoRaWAN.
HelTec CubeCell es una nueva serie de productos fabricados por HelTec para el desarrollo de aplicaciones del Internet de las Cosas mediante nodos LoRa/LoRaWAN.
La serie CubeCell se basa en circuitos integrados ASR605x (ASR6501, ASR6502). Estos chips incluyen el MCU de la serie PSoC 4000 (ARM Cortex M0 + Core) y el transceptor LoRa de Semtech SX1262.
Una de las cosas más interesantes de la placa es que es perfectamente compatible con Arduino y puede ejecutar el protocolo LoRaWAN de manera fiable al respetar las limitaciones específicas del plan de frecuencias de tu país y las políticas de acceso justo a la red (Fair Access Policy).
Además, la placa viene diseñada y preparada para la conexión de baterías y paneles solares por lo que es una característica a destacar frente a otras placas que existen en el mercado.
💡 Los dispositivos LoRa (Long Range) consiguen conexiones inalámbricas de largo alcance y son muy eficientes en el consumo de energía, logrando que se esté convirtiendo en la tecnología de referencia para las redes LPWAN (Low Power Wide Area Network) en todo el mundo. La tecnología LoRa y la especificación abierta LoRaWAN permiten muchas aplicaciones inteligentes de IoT.
Especificaciones y características:
- Placa compatible con Arduino, por tanto compatible en Windows, Mac OS y Linux
- Configurable a través de comandos AT
- Chip CP2102 de puerto serie a USB integrado
- Basada en ASR605x (ASR6501, ASR6502) , esos chips ya están integrados el PSoC ® 4000 serie MCU (ARM ® cortex ® M0 + Core) y SX1262;
- Soporte de la especificación LoRaWAN 1.0.2
- Diseño de energía ultra bajo, sólo 3.5uA en Deep Sleep
- Sistema de gestión de energía solar incluido, se puede conectar directamente con un panel solar de 5-7 V
- Conector SH1.25-2 para baterías incluido, sistema de administración de batería integrado (administración de carga y descarga, protección de sobrecarga, detección de energía de la batería, conmutación automática de energía de batería / USB)
- Interfaz micro USB con protección ESD (Electrostatic Discharge), protección contra cortocircuitos, blindaje RF y otras medidas de protección
- Buena correspondencia de impedancia y larga distancia de comunicación
- Certificación CE y FCC
Configurar el entorno de desarrollo para la serie CubeCell (ASR650x)
Existen distintas opciones, siendo el IDE de Arduino la opción recomendada por el fabricante. No obstante, si utilizas PlatformIO, la plataforma ya es compatible para la serie ASR650x.
A continuación se listan los distintos enlaces de configuración para la opción que más se ajuste a tus necesidades o preferencias:
- Arduino (Recomendado)
- Via Git: Windows, MacOs, Linux (Recomendado sólo para desarrolladores)
- PlatformIO (mi preferido ❤️😅)
Comandos AT
Una de las grandes características que posee la serie CubeCell es que permite configurar ciertos parámetros mediante comandos AT, es decir, no tendrás que modificar el código para realizar algunos ajustes, simplemente enviando el comando AT específico con los parámetros que requiera, la configuración se actualizará.
Diagrama de Pines HTCC-AB01
Proyecto de mini estación meteorológica 🌡️💧: CubeCell + Sensor BME280 + The Things Network + Influxdata TICK Stack
Gracias a lo sencillo que es prototipar un proyecto basado en LoRa/LoRaWAN con la serie CubeCell, creo que el mejor ejemplo con el que empezar a entender como desarrollar una solución E2E (end-to-end) del Internet de las Cosas, es realizar una pequeña estación meteorológica 🌡️💧 con la que podamos obtener los distintos valores recogidos por un sensor para posteriormente almacenarlos en una base de datos y poder graficarlos y/o tratarlos/analizarlos.
Además, creo que es un proyecto muy interesante a realizar por los alumnos y alumnas 🏫 en las aulas ayudados de un profesor con las suficientes ganas de impulsar así la educación STEAM y contribuir al despliegue de la red.
Para ello necesitaremos los siguientes 'ingredientes' hardware 👩🍳:
- Placa CubeCell Dev Board que trabaje en la banda de tu región. En Europa 868MHz
- Sensor Bosch BME280
- Batería LiPo 3.7V con conector JST
- Panel Solar de 6V (opcional)
- Soldador 👨🏭 y estaño 🧵
- Raspberry Pi 3 B+/4
- Impresora 3D (para imprimir las partes que forman la pantalla Stevenson)
- Bobina de filamento PETG Blanco
Para el almacenamiento y muestra de los datos recibidos por el nodo, me he decantado por implementar la solución software (open source) basada en la pila TICK de InfluxDB que consiste en los compontes: Telegraf, InfluxDB, Chronograf y Kapacitor.
Estos componentes se combinan para ofrecer una plataforma para almacenar, capturar, supervisar y visualizar datos almacenados en series temporales.
En este caso, la instalación de la pila software se ejecuta sobre una RaspberryPi ejecutando el S.O Raspberry Pi OS (32-bit) Lite. También existe la posibilidad de optar por una solución Cloud.
🧰 Puedes seguir el siguiente tutorial para realizar su instalación.
Debido a que estamos utilizaremos tecnología LoRa/LoRaWAN, necesitaremos una pasarela de enlace (gateway) que reciba los datos enviados por los nodos y un servidor de red (LoRa Network Server) que se encargue de la gestión, tanto de los nodos como de los mensajes enviados por estos.
Para ello, haremos uso de la red global distribuida y abierta para el Internet de las Cosas, The Things Network.
The Things Network nos ofrece el despliegue de la infraestructura necesaria. Cuenta con gateways instalados por la comunidad y repartidos por todo el mundo. Únicamente has de cerciorarte que en tu ciudad tengas cobertura de red LoRaWAN facilitada por las puertas de enlace que se hayan podido instalar en tu localidad gracias a la comunidad local.
ℹ️ Mapa mundial de la red TTN
En caso de no tener cobertura, no te preocupes, siempre puedes unirte al equipo y animarte a instalar tú mismo un nuevo gateway (⬅️ Tutorial) 😀😉
¡Y es que de eso se trata! ¡de crear una red global de IoT abierta gracias a la innovación abierta distribuida 💡👥!
¡Súmate a la red o contacta con tu comunidad local 📍🗺️!
Por cierto... 🤔 ¿estás leyendo esto, además eres de Asturias y te gustaría contribuir? Pues... ¡contáctanos 📧 o contáctame 👤!
The Things Network facilita un servidor de red LoRaWAN público y gratuito, en el que poder crear tus aplicaciones y registrar tus nodos y/o gateways.
Además, dispone de una completa API con la que poder trabajar para desarrollar tus integraciones en las diversas aplicaciones que puedas desarrollar.
Una de las APIs más interesantes, es la facilitada por el Broker MQTT.
ℹ️ Te recuerdo que MQTT es un protocolo de conectividad M2M/IoT extremadamente ligero que fue diseñado como protocolo de transporte de mensajería basado en publicación/suscripción.
Gracias al Broker MQTT, la conexión de los datos recibidos por tus nodos en la consola The Things Network a la base de datos de InfluxDB es directa mediante el agente Telegraf y el plugin MQTT ¡más sencillo no puede ser 🤯!
🧰 Puedes seguir el siguiente tutorial para ayudarte a realizar su configuración (⚠️en el ejemplo se utiliza otro tipo de nodo diferente a CubeCell)
Una vez configurados agente y plugin, podrás utilizar Chronograf (o cualquier otra herramienta para graficar datos de series temporales, como pueda ser Grafana) para crear tu propio Dashboard 🎛️.
A continuación comparto el repositorio del proyecto con el código de ejemplo necesario para cargar en tu placa mediante PlatformIO y válido para nodos CubeCell que trabajen en la banda Europea 868Mhz.
Fork (compatible con PlatformIO) ➡️ https://github.com/alexcorvis84/mini-lora-weatherstation
Agradecimientos, referencias y enlaces de interés:
👏 Agradecimientos
- Proyecto original código Arduino y diseño de partes impresas de la pantalla Stevenson, créditos para @chrixbuilds ¡thanks again mate 😉!
ℹ️ Referencias
- Build a simple solar-powered weather station with LoRa & The Things Network (part 1)
- Receive and store LoRa sensor data from TTN using a Raspberry Pi (part 2)
- Configuración parámetros LoRaWAN para PlatformIO (ASR605x)
🤔💭 Enlaces de interés
- Hilo de Twitter 🐦que investiga y detalla el consumo 🔋 de la placa CubeCell ¡gracias @kahache7!
- Ejemplo CubeCell para monitorización de temperatura ambiente y del agua de una piscina 🏊♂️ ¡gracias @moifdz!
- Repositorio placa adaptadora (desarrollada en KiCad 🤩) para CubeCell con batería 18650, por @moifdz