El paquete de descubrimiento STM32 (P-L496G-CELL01) es una placa base de descubrimiento de bajo consumo basada en el STM32L496AG I6 y una placa de expansión STMod+ Cellular 2G/3G mundial con antena. Siguiendo esta guía, podrás programar el paquete de descubrimiento P-L496G-CELL01 para conectarte con Ubidots.
Requisitos
[OPCIONAL] X-NUCLEO-IKS01A1
Tarjeta SIM activa con plan de datos
Paso a Paso
Introducción
Configuración del firmware
– Configuración de Espruino Web IDE y carga del firmwareManejo de datos con Ubidots
Resultados
Introducción
NOTA IMPORTANTE: Consulta la documentación oficial para una revisión técnica detallada del dispositivo P-L496G-CELL01.
Configuración de Hardware
1. Inserta una tarjeta SIM activada en la placa de expansión celular.
NOTA: Para evitar problemas de conectividad futuros, recomendamos verificar si la tarjeta SIM insertada ya está desbloqueada en la región donde estará operando.
2. Conecta la placa de expansión celular al conector STMod+ de la placa base STM32 Discovery, como se muestra a continuación:
3. Verifica las posiciones predeterminadas del jumper:
JP3 en IDD
JP3 ARD_V5_IN
JP4 y JP5 en 3.3V
JP6 en posición 1-2
JP7 en STLK
JP8 cerrado
JP9 abierto
4. Conecta la placa base STM32 Discovery a un PC usando el conector USB CN5(STLink) (también para alimentar la placa). Los LEDs LD5 (PWR) y LD8 (COM) deberían estar iluminados.
5. Agrega el Paquete de Descubrimiento Celular STM32 al tablero STM32 siguiendo los siguientes pasos:
Abre cualquier emulador de terminal (programa de comunicaciones) basado en el sistema operativo del PC utilizado para establecer la comunicación serial con el Paquete de Descubrimiento STM32. Programas como TeraTerm & Cutecom.
Establece la comunicación con la placa eligiendo el puerto USB COM correcto y configurado a 9600 bps, 8, N, 1.
Sigue los pasos mostrados en el terminal para agregar la placa al Tablero STM32.
NOTA: Si estás trabajando con Windows, asegúrate de que los controladores USB de ST Link estén instalados en el PC.
Configuración del Firmware
1. Una vez que la placa esté agregada al Tablero STM32, desplázate hacia abajo hasta que encuentres "Repositorios de Demos Precompilados"
2. Luego encuentra "Demos de Celular a Ubidots Cloud" y descarga el archivo .zip presionando el botón de descarga respectivo.
3. Una vez que el archivo .zip esté descargado, descomprímelo y confirma que el archivo contiene y es similar al de la imagen a continuación:
NOTA: Esta guía proporcionará todos los pasos necesarios para integrar la placa con Ubidots. Para evitar errores, es aconsejable leer y familiarizarse con "Lo que hacen estos archivos JS" y "readme-CellularToUbidotsCloud." que están incluidos en el archivo zip que se descarga cuando presionas en "Repositorios de Demos Precompilados".
4. Para evitar problemas con el firewall, el archivo *.JS en este zip ha sido renombrado como *_JS.txt. Por favor renómbralo de nuevo a la extensión .js antes de usarlos con Espruino JS Engine.
Los ejemplos proporcionados en la carpeta son:
ubidots_MQTT_w_sensors_JS.txt (renombrar como ubidots_MQTT_w_sensors.js) : Esta es una demostración donde se puede reportar un valor y mapearlo a un recurso en la Nube. El mismo recurso se puede leer desde la Nube.
Además, se puede registrar una suscripción y un callback cuando la nube actualiza el recurso. Si la placa de sensores ambientales está conectada, el usuario puede lanzar un informe periódico de sus valores a su perfil.
ubidots_REST_w_sensors_JS.txt (renombrar como ubidots_REST_w_sensors.js) : Esta es una demostración donde se puede reportar un valor y mapearlo a un recurso en la Nube. El mismo recurso se puede leer desde la Nube.
Si la placa de sensores ambientales está conectada, el usuario puede lanzar un informe periódico de sus valores a su perfil.
Configuración de Espruino Web IDE y Carga del Firmware
1. Descarga o abre el Espruino Web IDE si aún no lo tienes.
2. Descarga el firmware actualizado de Espruino para el STM32L496 proporcionado aquí. El archivo descargado debería titularse:
espruino_1v97.35_stm32l496gdiscovery.bin
Donde 1v97.35
es la última versión (hasta la publicación de este artículo), pero puede ser más reciente.
3. Carga el archivo bin descargado previamente en el Paquete de Descubrimiento STM32L496. Para cargar el firmware, sigue los siguientes pasos:
Conecta el PC al conector USB ST Link de la placa (USB STLINK CN5)
Abre el Explorador de Archivos de Windows y asegúrate de que la placa de descubrimiento esté presente como una unidad con el nombre de volumen "DIS_L496ZG".
Obtén el archivo BIN descargado previamente y arrástralo y suéltalo en el nombre de volumen.
El LED de ST Link (LD5) debería alternar entre color rojo y verde hasta que la programación esté completa
4. Una vez que el firmware esté actualizado correctamente en la placa. Abre el Espruino Web IDE y asigna un SandBox si aún no lo tienes. Para seleccionar la carpeta SandBox ve a Configuración > Proyecto y asigna la carpeta deseada.
Una vez que la carpeta esté asignada, las carpetas requeridas se generarán automáticamente, como se muestra a continuación:
El SandBox se encarga de manejar y cargar todos los requisitos del programa, como módulos, firmwares, archivos binarios, etc.
5. Conecta el STM32L496 Discovery al Espruino Web IDE. Para conectar la placa, presiona el ícono de conexión ubicado en la parte superior derecha del IDE:
El PUERTO de la placa será detectado automáticamente en el Espruino Web IDE, así que selecciona el correcto asignado o con el que estás trabajando:
Espera un par de segundos hasta que la placa esté conectada correctamente:
6. Abre los archivos que se van a cargar. Para abrir el archivo, selecciona el ícono de carpeta y elige uno de los dos scripts proporcionados:
ubidots_MQTT_w_sensors.js
-o–ubidots_REST_w_sensors.js
7. Actualiza la primera parte de ambos archivos .js
Parámetros de Red Celular (APN, NOMBRE DE USUARIO, CONTRASEÑA)
Credenciales de la cuenta de Ubidots (Ubidots TOKEN)
Servidor de Ubidots basado en tu suscripción a Ubidots
industrial.api.ubidots.com
CONSEJO PROFESIONAL: Además, para depurar el comportamiento de la conexión celular, te recomendamos encarecidamente que configures el debug en verdadero. Para esto, debes modificar la siguiente línea al final del código (ubidots_MQTT_w_sensors.js o ubidots_REST_w_sensors.js)
Antes:
// iniciar el módem y la conexión QuectelStart();
Después:
// iniciar el módem y la conexión QuectelStart(true, true);
8. Con los parámetros actualizados, envía el código a Espruino presionando el ícono de enviar que se muestra a continuación:
Este proceso tomará un par de minutos, así que por favor ten paciencia.
9. Una vez que el código se envíe correctamente, deberías comenzar a presentar el comportamiento a continuación en la consola de depuración del Espruino Web IDE:
Cuando se complete, encontrarás las líneas de respuesta: "¡Buena suerte con la nube de Ubidots!" al final del proceso de conexión. Una vez que se asigne una dirección IP, tu "módem está listo para usar."
¡Ahora es el momento de comenzar tu desarrollo de aplicaciones con Ubidots!
Manejo de Datos con Ubidots
Si no te diste cuenta, los primeros mensajes de depuración proporcionaron los comandos de inicialización para manejar datos con Ubidots.
NOTA IMPORTANTE: Los archivos .js proporcionados (MQTT y REST) tienen diferentes comandos de inicialización, así que asegúrate de usar los comandos proporcionados según tu archivo. Para tu información, el archivo utilizado en este tutorial es el ubidots_MQTT_w_sensors.js
1. Cuando obtengas una dirección IP, instala tu dispositivo y activa el token de conexión usando el siguiente comando:
dev = ubidotsMQTT(YOUR_DEVICE_NAME); dev.activate();
El "dispositivo MQTT YOUR_DEVICE_NAME está conectado" debería aparecer en la pantalla.
2. Para publicar datos en Ubidots, usa el siguiente comando donde el argumento es la etiqueta de variable de la variable que deseas publicar:
dev.publish("temperature", 23.0);
Resultados:
3. Luego, para suscribirte a diferentes temas, usa el siguiente comando donde el argumento es la etiqueta de variable de la variable a la que deseas suscribirte:
dev.subscribe("Pressure");dev.subscribe("Temperature");
Como ejemplo, decidí establecer la suscripción con la variable publicada previamente temperature; resultando en:
Como puedes ver, el mensaje recibido es 23 que fue el último valor publicado en la variable asignada al comando (temperature).
4. Puedes comenzar a leer los sensores X-NUCLEO-IKS01A1 con
SensorStart()
con actualización periódica (30s). Después de 30 minutos, el SensorStop()
desactiva la lectura. Para habilitar la actualización del servicio en la nube con datos del sensor, llama a:
dev.startLogging();
Resultado:
5. Al final de la sesión, cierra la conexión con:
QuectelStop();
Ahora es el momento de crear Tableros de Ubidots para visualizar y entender tus datos para tomar las mejores decisiones, de manera simple y coherente.
Resultados
STMicroelectronics brinda libertad y flexibilidad a los desarrolladores de mercado masivo configurando dispositivos IoT que funcionan sobre conectividad celular 2G o 3G o las próximas redes LTE Cat M1/NB1.
El Paquete de Descubrimiento Celular STM32L4 está listo para usar, fuera de la caja, y los desarrolladores pueden comenzar rápidamente a ejecutar y personalizar scripts de muestra en el motor de JavaScript sin inversión adicional. Si estás pensando en una solución IoT escalable y robusta, Ubidots recomienda revisar el paquete de expansión X-CUBE-CLD-GEN, respaldado por las herramientas de software STM32Cube, bibliotecas, middleware y ejemplos de código para acelerar el desarrollo de código C para un rendimiento óptimo y creación de valor positivo.
¡Feliz desarrollo :)