Contenido
Probablemente ésta sea la revisión que más nos ha costado hasta la fecha ya que la idea la tenemos desde que nos vinimos del pueblo manchego a la capital hace más de una década, creo recordar. Todavía la domótica era realmente muy cara y la idea de poder regar el jardín manchego a 250 km de distancia era más bien una cosa de ciencia ficción sobre todo si, para ponerlo más difícil, no queríamos contratar ADSL para los meses de verano tan solo.
Con el tiempo hemos ido cambiando las «especificaciones» de nuestro sistema entre otras cosas por un «inesperado» cambio de puesto de trabajo a una empresa en la que no hay jornada de verano y proyectos muy interesantes que no nos dejan demasiado tiempo para pensar en otras cosas.
Por eso al final (al menos en esta primera versión) hemos querido un «producto mínimamente viable» (como solemos decir a nuestros clientes) para demostrar nuestras capacidades para cuando tengamos más tiempo libre podamos seguir mejorando… nuestra «estación meteorológica remota (EMR)» que no es más que un sensor «chino» que permite medir la temperatura ambiente así como la presión conectado a un Arduino y vía Sigfox enviando los datos a nuestro Home Assistant.
Antes que nada pediros disculpas si os parece que esta «revisión» se ha escrito con prisas… pero la verdad es que es así y más que detallaros paso a paso todo lo realizado, «simplemente» queremos que NOS sirva para cuando sigamos mejorándola. En cualquier caso, como siempre, a través del Foro estaremos encantados de responder a esas preguntas que NUNCA nos hacéis y no sabéis lo que os perdéis
MKR1200FOX y SIGFOX
Para empezar, simplemente comentaros que SIGFOX es el nombre de una compañía francesa creada en el año 2009 y que ha inventado una tecnología de comunicaciones muy, muy interesante ya que con un consumo irrisorio es capaz de alcanzar distancias de kilómetros. Su «único» problema es su baja velocidad de transmisión por lo que su protocolo tan solo permite el envío de 140 mensaje al día y cada uno de ello de tan solo 12 Bytes de información (payload) y hasta 4 mensajes de bajada con 8 Bytes.
Nuestro primer contacto con esta tecnología fue cuando hace más de cinco años (y trabajando en una petrolera-perdón empresa energética) estuvimos pensando ya en temas de digitalización. En aquél momento nuestro principal interés radicaba en la geolocalización de los clientes de nuestras Estaciones de Servicio para tenerlos «controlados». Tenía que ser un sistema muy barato y Sigfox lo es comparado con las tarifas telefónicas y por otro lado de gran alcance cosas que, como hemos dicho, también lo es. El problema sin embargo fue que queríamos geolocalización en tiempo real por lo que este Sigfox quedó descartado… hasta ahora.
Afortunadamente en estos años se han encontrado otro tipo de interesantes aplicaciones por lo que Sigfox ha crecido mucho desplegándose por Europa y América apareciendo al mismo tiempo dispositivos basados en RPi o en Arduinos para que los «makers» nos montemos nuestros juguetitos. El MKRFOX1200 es uno de los dispositivos Sigfox más barato y diminutos y se puede alimentar con dos baterías de radio que le dan una autonomía de un par de meses.
PUESTA EN FUNCIONAMIENTO DEL MKR1200FOX
Aunque tenemos por ahí un Arduino con Sigfox que nos regalaron en un curso sobre esta tecnología hemos querido comprar uno de estos miniMKR1200 por cuanto nuestra idea es dejarlo «perdido» sin atención muy alejado del contacto humano… y sin alimentación eléctrica.
Si os adelantábamos que en esta revisión íbamos a ir más rápido de lo normal, lo mejor es demostrarlo por lo que en lugar de poneros paso a paso lo que hemos hecho os dejamos un enlace
a este interesante proyecto para que veáis como se monta del «hardware»
que podéis complementar con este otro excelente artículo de Luis.
Primero os tocará instalar unas cuantas librerías
para tener al final listo para funcionar nuestro Arduino MKR1200FOX
y ejecutar el fichero registro.ino en el IDE de Arduino para «registrar» vuestro dispositivo consiguiendo el ID y la PAC para poder conectarlo a la red de Sigfox.
ACTIVANDO UNA CUENTA EN SIGFOX
Teniendo dichos datos la creación de una nueva cuenta en SIGFOX (o activación de un nuevo dispositivo) es tan sencillo como entrar en el BACKEND de Sigfox eligiendo primero el país
y después el ID y el PAC de antes.
Ya solo queda introducir tus datos personales
con lo que tendrás lista tu cuenta que empezará a contar tiempo desde el momento en el que envíes correctamente el primer mensaje.
Luego ya no queda más que dar de alta a tu dispositivo con DEVICE > NEW > (Select Group) > Device-New
en el que deberás rellenar los datos tal y como te mostramos (aunque evidentemente con los datos de tu dispositivo Sigfox).
Luego en DEVICE TYPE tendrás que rellenar el correspondiente formulario con tus datos
A continuación es necesario crear una NUEVA CALLBACK de tipo UPLINK con la descripción de los campos que componen el PAYLOAD que en mi caso es algo tan fácil de entender como:
La «gracia» de este PAYLOAD es que se aprovechan los 12 Bytes (y todavía sobran) para enviar «empaquetados» un par de temperaturas (la interna del módulo, la presión atmosférica (en dos unidades) y la altitud así como el status de la señal.
La URL es la del servidor de THINGSPEAK (la nube IoT de Matlab) y la API la del mismo y que ya aprenderemos a pedir más adelante.
VERIFICANDO EL FUNCIONAMIENTO DE SIGFOX
Ha llegado ed la verdad y es el momento de comprobar si todo funciona correctamente para lo cual instalamos en el MRK1200 el correspondiente fichero INO que os dejamos aquí que tenéis que copiar junto al ficherito conversions.h que es donde se hace la «magia» del empaquetamiento de los valores en coma flotante a enteros.
Otro «truco» de este pequeño programa es que, para ahorrar batería y poder alargar la vida de ésta un par de meses en funcionamiento, envía un mensaje y «apaga» las comunicaciones hasta el siguiente ciclo que, por limitaciones, del máximo número de mensajes por día (140) … se lleva a cabo cada 15 minutos.
Para evitar tener que estar esperando todo este tiempo entre cada prueba en el programa se ha introducido una variable (oneshot) que para pruebas se debe poner en TRUE. De esa forma en lugar de enviar el dato vía Sigfox tan solo muestra los resultados de las variables medidas vía terminal acabando el programa. Una vez depurado convenientemente el código dicha variable debe ponerse en FALSE con lo cual no verás mensaje alguno por la terminal y el programa se meterá en un bucle infinito del que solo podrás salir mediante DOBLE PULSACION del botón de reset! Ah, por cierto. Si pierdes la conexión a través del correspondiente COM con el PC es lógico ya que cuando decimos que la placa se pone a dormir para no enviar nada vías Sigfox… duerme a pierna suelta y tampoco se comunica no siquiera con el PC
Y ya ha llegado el momento de la verdad, cruza los dedos y comprueba en el backend que todo está en verde!
y luego para que veas que no te hemos engañado también puedes mirar en la lista de mensajes que llegan cada 15 minutos (más o menos)
Incluso puedes ver la localización (aproximada) desde donde te ha llegado cada mensaje para asegurarte, por ejemplo en mi caso, que mi MKR sigue donde lo dejé ayer…
a 250 km de mi casa, más o menos dentro de su correspondiente Tupper …
y oculto de nuestra traviesa perra Yuna.
UTILIZANDOLO CON LA PLATAFORMA (GRATUITA) THINGSPEAK
Teniendo en cuenta la afición desmedida por esto de los Datos que siempre ha tenido uno y que ahora (y desde hace años) le da de comer (y bien por cierto) hemos querido aprovechar esta información integrándola en el servicio de IoT de Mathworks (creadores de Matlab) Thingspeak.
Para ello creamos dos canales idénticos con los tags/valores transmitidos desde el MKR con el primero de ellos conteniendo los valores «brutos» (en valores enteros / normalizados) y el segundo con los datos reales / desnormalizados.
El paso de los recibidos a los calculados se hace en código Matlab
pudiéndose a partir de entonces ver «bonitos» gráficos e incluso aprovechar toda la potencia de dicho programa para aplicar técnicas de Machine Learning como tenemos previsto hacer en el futuro cercano.
Nota: Como curiosidad hemos marcado el momento en el cual movimos nuestro MKR desde Madrid a Puertollano, Se puede ver que faltan media docena de puntos (o sea 6*15 = 90 minutos) correspondientes al tiempo que tardamos en llegar desde una casa a otra. En RESUMEN: El AVE está bien apantallado e impide el funcionamiento en su interior de Sigfox.
Otra cosa que los buenos observadores notarán es que los «picos» de temperatura ambiente eran mucho más pronunciados en Madrid que en La Mancha. Está claro: En Madrid lo teníamos instalado en la buhardilla con aire acondicionado… mientras que en Puertollano lo hemos dejado en casa aguantando sin AC (al menos cuando no estemos nosotros).
SIGFOX COMO UN SENSOR MAS DE HOME ASSISTANT (HA)
Evidentemente visto el vicio que tenemos últimamente nadie pensaría que íbamos a dejar de integrar la medida de Sigfox en nuestro HA casero ¿no?.
Si bien, desde la versión 0.71, hay un componente SIGFOX para HA este solo sirve para recibir una única medida por mensaje lo que es un auténtico desperdicio. Para poder utilizarlo con nuestra información empaquetada nos hemos permitido modificar ligeramente creando nuestro propio custom_component que hemos llamado my_sigfox.py
y que se define lógicamente como el original.
Lo ¿complicado? es convertir la ristra de valores en hexadecimal (debidamente recortados y recolocados) en sus correspondientes valores numéricos cosa que se hace, como no, usando TEMPLATES
Durante unos días hemos tenido dos sensores XIAMI (además del TADO) en la buhardilla junto al SIGFOX para comprobar que todo era correcto … antes de dejarlo triste y solo en la casa manchega esperando nuestro retorno para el próximo fin de semana.
Todavía queda mucho por hacer ya que tenemos la idea de utilizar las capacidades del MKR no solo para recibir información del tiempo sino para que, incluso el propia HA, puede enviar órdenes para que nos ponga la calefacción (en invierno) o el riego por aspersión del césped. Para un primer PMV (producto mínimamente viable) nos conformamos con lo hecho hasta ahora y ya tendremos tiempo de mejorar ¿no?
PUNTUACIÓN: 9.5
Pharizna que está empezando su nuevo proyecto de uso de HA dentro de un docker en Windows para poder montar un «demostrador portátil» y así utilizarlo como práctica de un Máster que sobre Digitalización y Big Data tiene previsto impartir a finales del mes de septiembre en una conocida petrolera española.
4402
La verdad es que tengo mala suerte. Después de dejar abandonado mi HA entre las muchas cosas que han dejado de funcionar ha sido el SIGFOX.
Inicialmente pensaba que se habrían agotado las pilas. Voy las cambio y sigue sin funcionar por lo que pienso que he reseteado el Arduino MKR1200 y se ha borrado la app.
Me traigo el invento a casa. Me toca mover todo a mi PC que cambié allá por el verano pasado y después de conseguir volver a cargar el correspondiente .INO … sigue sin funcionar.
Revisando el BACKEND de Sigfox veo que el problema es que ha pasado el año «gratuito» de envío de datos por lo que o sigo pagando… o se acabó
Al menos ya tengo el nuevo PC preparado para cuando el próximo verano reciba el PocketScreen 😉