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?

Conclusión

Si te interesan las nuevas tecnologías de comunicaciones IoT, Sigfox es de lo más interesante sobre todo por su precio aunque como todo tiene sus limitaciones.
Lo bueno

• El precio de las comunicaciones (<1 EUR/mes) es insuperable y su cobertura casi total en toda Europa (y empezando en USA y resto del mundo).
• El MKR1200FOX dispone de toda la potencia de una placa de Arduino con todas las posibilidades que le da SIGFOX.
• Sin muchos problemas puedes enviar información de 5 ó 6 sensores en un mensaje único y cada 15 minutos lo que es suficiente en muchos casos.
• La información recibida de puede utilizar con las más modernas herramientas de cálculo (por ejemplo, Matlab) en el desarrollo de soluciones analíticas a tus problemas diarios.
• Es posible integrar la información recibida en Home Assistant como un sensor más … aunque situado a cientos (o miles9 de kilómetro de tu casa!
Lo malo
• Una vez acabado los dos años de licencia de Sigfox no está claro que se pueda renovar (para compras individuales).
• Habrá que seguir “animando” en el Foro de Home Assistante para que saquen tiempo de integrar nuestras ideas en un nuevo componente Sigfox

PUNTUACIÓN: 9.5

 

Fabricante:Arduino y Sigfox
Precio :Unos 32 EUR el MKR1200FOX (incluyendo dos años de servicio Sigfox) y unos 12 EUR el barómetro / termómetro Grove de Seedstudio.

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.

Impactos: 259

Deja un comentario

A %d blogueros les gusta esto: