El mc-Demo205 es un potente dispositivo IoT, que combina SIGFOX™, GNSS y el nuevo protocolo mcAir en un solo dispositivo. Echa un vistazo más de cerca al video promocional de mc-Demo205 a continuación, o a la hoja de especificaciones de mcDemo para obtener más detalles sobre el dispositivo.
Siguiendo esta guía, podrás comenzar con tu mc-Demo205 y Ubidots en solo un par de minutos, ¡así que empecemos!
Requisitos
mc-Demo205, dispositivo mcThings
mc-Dongle, dispositivo mcThings
Último Firmware para el Dispositivo mcDemo
Antes de comenzar tus aplicaciones IoT usando el mcDemo205, siempre es mejor asegurarte de que tienes el último firmware actualizado. Sigue esta guía de inicio para asegurarte de que tu dispositivo esté al día.
1. Registrando el mcDemo205 en el backend de Sigfox
Para activar tu mcDemo necesitamos establecer el dispositivo con la red Sigfox. Para esto, necesitas el ID de Sigfox (ID del dispositivo) y el PAC de Sigfox impresos claramente en tu unidad mcDemo205.
NOTA IMPORTANTE: Este mcDemo205 no incluye una Suscripción a la Red SIGFOX™. Para más información visita SIGFOX™ en línea para comprar tu suscripción.
Sigue los pasos a continuación para activar el módulo:
Ve al portal de activación de Sigfox para los dispositivos mcThings.
Selecciona el país de la ubicación de tu dispositivo y agrega el ID de Sigfox (ID del dispositivo) y el PAC de Sigfox donde se indica.
Para confirmar que tu dispositivo está registrado - selecciona la sección "Tipo de Dispositivo" en el backend de Sigfox para encontrar tu dispositivo.
Consejo Profesional: En lugar de activar a través de la página del kit, puedes ir a la sección "Dispositivos", luego presionar "nuevo" para crear un nuevo dispositivo. Desde aquí, asigna los parámetros requeridos como ID del Dispositivo, PAC y la información de la cuenta.
Preguntas Frecuentes y Solución de Problemas: Si recibes algún problema durante el proceso de activación, contacta a Soporte de Sigfox, y un especialista te asistirá durante el proceso de configuración.
2. Configurando el callback de Sigfox a la Nube de Ubidots
La gestión de los datos entre Sigfox y Ubidots requiere un "Callback". El dispositivo mcDemo leerá los sensores y enviará los valores a Sigfox donde los mensajes serán decodificados usando la configuración de carga útil personalizada y luego retransmitidos a Ubidots para visualización, computación y almacenamiento.
Ahora es el momento de configurar el callback.
Ve a la sección Dispositivo y haz clic en el dispositivo registrado:
A continuación, verifica la información de tu dispositivo y selecciona "CALLBACKS" en el menú a la izquierda de la página, como puedes ver a continuación:
Los callbacks de Sigfox te permiten reportar datos a un sistema externo como Ubidots. Para configurar un callback a la API de Ubidots, usa estos parámetros:
Tipo:
DATA
-UPLINK
Canal:
URL
Configuración de carga útil personalizada:
lat::float:32:little-endian lng::float:32:little-endian
Patrón de URL:
https://things.ubidots.com/api/v1.6/devices/{device}
Usar método HTTP:
POST
Enviar SNI:
Deshabilitar
Encabezados:
x-auth-token
-{your_ubidots_token}
Tipo de Contenido:
application/json
Cuerpo:
{ "snr" : "{snr}", "avgSnr" : "{avgSnr}", "rssi" : "{rssi}", "position":{"value":0,"context":{"lat":"{customData#lat}","lng":"{customData#lng}"}}}
NOTA IMPORTANTE: El campo "configuración de carga útil personalizada" te permite especificar cómo te gustaría que Sigfox decodificara la carga útil de tu dispositivo. Podrías, por ejemplo, desear decodificar un byte entrante como un entero sin signo. Un ejemplo de esto es la primera línea del ejemplo a continuación donde "int1" es el nombre del valor y "uint:8" especifica el tipo de dato y el número de bits, respectivamente.
int1::uint:8 // Entero sin signo de 8 bits con nombre int1str::char:6 // Cadena de caracteres de 6 letras con nombre strb1::bool:7 // Booleano basado en el valor del bit en la posición 7 con nombre b1
Para aprender más sobre cómo construir la configuración de carga útil personalizada, consulta la documentación de Sigfox presionando el ícono de pregunta en la parte superior derecha de la página mostrada.
NOTA IMPORTANTE DE DESPLIEGUE: Ubidots y Sigfox se comunican a través de URL o Batch URL (utilizado para grandes despliegues). Este tutorial explica el canal estándar de URL. Si tienes una red de sensores a gran escala, por favor contacta a support@ubidots.com para recibir información adicional sobre integraciones de Batch URL.
La carga útil de Sigfox decodificará el mensaje y luego retransmitirá los datos a Ubidots a través del callback. Ten en cuenta que debes establecer el mismo formato para el código de tu dispositivo que el que está en Sigfox y si no, los datos no serán recibidos por Sigfox. Para verificar si el mensaje es recibido por Sigfox, ve a la sección Dispositivo, luego selecciona el ID del dispositivo:
Para verificar que los datos están siendo recibidos, haz clic en "mensaje" en el panel izquierdo para visualizar los mensajes recibidos:
Ten en cuenta que el "customData#..." del campo cuerpo contendrá la información de ubicación real. En este ejemplo veremos "lat" y "lng". Si deseas enviar más valores, debes asignar estos puntos de datos como parte de la configuración de carga útil personalizada, luego asignarlo en el cuerpo siguiendo la misma estructura.
Dentro de esta guía, configuramos dos variables "lat" y "lng" como valores de punto flotante; puedes usar cualquier formato que desees, pero ten en cuenta que el dispositivo debe enviar los valores utilizando el mismo formato asignado por ti en la configuración de carga útil personalizada. Y esta carga útil también debe coincidir con el código cargado en el dispositivo.
3. Configuración Completa del Backend de Sigfox
Después de configurar el callback, tu configuración del backend de Sigfox debería verse así:
Una vez que verifiques el callback, presiona "OK". Ahora tu callback está listo y habilitado para publicar datos en la Nube de Ubidots.
4. Configurando el proyecto mcStudio
Ahora que tu callback de Sigfox está configurado, es hora de configurar el mcStudio para programar tu dispositivo. Asegúrate de haber completado el mcThings getting started antes de intentar codificar tu mcDemo205.
1. Abre el mcStudio IDE
2. Crea un nuevo proyecto – Selecciona Archivo > Nuevo Proyecto
A continuación, asigna "ubidotsGPS" como el Nombre del Proyecto, luego asigna la ubicación donde deseas guardar el proyecto. Asegúrate de asignar el mcDemo205 como el Tipo de Dispositivo, y luego presiona "Ok". La imagen a continuación sirve como guía:
Una vez que el proyecto esté creado correctamente, verás el nombre del proyecto en la parte superior del IDE de mcStudio.
3. Establece la conexión entre el mcDemo205 y el mcStudio. Para esto, consulta la siguiente guía de mcThings y sigue todos los pasos mencionados. Una vez que el mcDemo205 esté correctamente conectado, verás el UID del dispositivo aparecer en la parte superior de tu barra de título.
4. Construimos el siguiente código de ejemplo para enviar un mensaje a Sigfox que contenga las coordenadas del dispositivo cada vez que se presiona el botón "SW1".
Para probar este código de ejemplo, borra la clase asignada cuando creaste el proyecto y copia/guarda el código a continuación:
NOTA IMPORTANTE: Asegúrate de asignar la zona de radio de Sigfox adecuada para tu país.
Class ubidotsGPS ' Tipos de Mensaje Const MSGTYPE_LOCATION As Byte = 1 ' Constantes de Configuración Const GPS_TIMEOUT_uS As Integer = 120000000 'timeout de 120 segundos Const GPS_MIN_SAT_COUNT As Integer = 3 'mínimo de satélites para obtener una fijación Shared Event Boot() ' Establecer la zona de radio de Sigfox a EE. UU. 'Lplan.SigfoxRadioZone(SigfoxRadioZone.US) ' Establecer la zona de radio de Sigfox a Australia Lplan.SigfoxRadioZone(SigfoxRadioZone.Australia) End Event ' Iniciar adquisición de GNSS al presionar el Botón 1 Shared Event SW1FallingEdge() ' Encender LED2 para indicar que la adquisición de GNSS ha comenzado Led2 = True Device.StartGPS(GPS_TIMEOUT_uS, GPS_MIN_SAT_COUNT) End Event ' Llamado cuando se adquiere la ubicación GNSS o ocurre un timeout Shared Event LocationDelivery() ' Obtener latitud Dim Lat As Float = Device.GetLatitude() ' Obtener longitud Dim Lng As Float = Device.GetLongitude() ' Obtener tiempo de fijación GNSS Dim timeIntUs As Integer = Device.GetGpsFixTime() ' Crear lista de bytes de Sigfox Dim sigfoxMsg As ListOfByte = New ListOfByte() 'Dim timeIntSec As Float = timeIntUs / 1000000 'Dim timeShortSec As Short = timeIntSec.ToShort ' Verificar si la lat y lng fueron obtenidas correctamente If Lat.IsNaN() Then Lat = 0.0 End If If Lng.IsNaN() Then Lng = 0.0 End If ' Agregar datos al mensaje de Sigfox sigfoxMsg.AddFloat(Lat) sigfoxMsg.AddFloat(Lng) 'sigfoxMsg.AddByte(GetTemperature()) If Lat <> 0.0 Then ' Enviar Mensaje de Sigfox Lplan.Sigfox(sigfoxMsg) ' Apagar LED2 para indicar que la transmisión de Sigfox se ha completado Led2 = False End If End Event End Class
Subir el código en el mcDemo205
El mcStudio te permite ejecutar el código en un modo de depuración para pruebas, si es necesario. Ejecuta una prueba de tu código presionando el ícono "Ejecutar" ubicado en la parte superior derecha de la barra de herramientas del IDE.
Como puedes ver a continuación, el proyecto está en ejecución. Si deseas hacer una modificación adicional en el código después de "ejecutar" el código, recuerda detener el modo de depuración antes de editar el código.
1. Con tu código verificado como depurado, ahora necesitas Construir la Aplicación presionando el ícono de martillo. Construir tu aplicación permite primero compilar la aplicación y luego genera el modo de listado.
A continuación, presiona el ícono ubicado a la derecha del ícono de martillo para Cargar y Guardar el programa en el dispositivo:
2. Apaga el mcDemo205 y espera un par de segundos, luego reinicia tu mcDemo. Con el código correctamente cargado en el mcDemo205, presiona el botón "SW1" para comenzar a recibir la ubicación GPS. Esto puede tardar hasta 120 segundos en recibir la primera ubicación GPS dependiendo de tu cobertura. Una vez que se reciba la ubicación GPS, puedes ver el mensaje recibido en la sección mensajes en el backend de Sigfox y luego en Ubidots donde tus datos son visualizados, computados y almacenados.
NOTA IMPORTANTE: Para poder recibir una ubicación GPS, asegúrate de no tener interferencias de edificios (estimado a 20 metros de distancia) y debes tener la antena apuntando al cielo; la antena es el bloque amarillo/blanco encima del logo de Sigfox y mcThings:
NOTA DE DESPLIEGUE: Configuramos el LED2 del mcDemo205 para verificar el comportamiento del dispositivo. Una vez que se presiona el botón SW1, el LED2 se encenderá hasta que la ubicación GPS sea recibida correctamente. Una vez que se reciba la ubicación GPS, los datos se enviarán a Sigfox y el LED2 se apagará.
3. Una vez que hayas recibido las primeras coordenadas y el LED2 se haya apagado, el mensaje de Sigfox se enviará al backend de Sigfox, y luego se retransmitirá a Ubidots para su visualización. Para visualizar el dispositivo creado en Ubidots, ve a la sección Dispositivo de tu cuenta de Ubidots donde tu dispositivo y ubicación GPS se crean y actualizan automáticamente.
Ten en cuenta que la "Etiqueta de API del Dispositivo" será la misma que el campo {device} de Sigfox.
Si deseas cambiar los nombres de tu dispositivo y variables a uno más amigable, consulta este artículo a continuación.
Resultado
Usando esta guía, hicimos un simple rastreador GPS sobre Sigfox para rastrear activos en y a través de diferentes países a un precio asequible. El mcDemo205 tiene otras características además de GPS; para maximizar las capacidades de tu dispositivo y tu aplicación IoT, echa un vistazo a la hoja de datos del producto mcDemo205.
Para preguntas y respuestas adicionales sobre tu mcDemo205 o un proyecto previsto, consulta el foro de mcThings.
Ahora es el momento de crear un tablero para controlar y gestionar las variables de tu dispositivo mcDemo205. Para aprender más sobre los widgets y eventos de Ubidots, consulta estos tutoriales en video.
¡Feliz hacking! :)