Skip to main content

Conectar Wio Terminal a Microsoft Azure IoT Central

pir

Introducción

En este tutorial, te guiaremos a través del proceso de conectar el Wio Terminal a Microsoft Azure IoT Central y enviar datos de telemetría desde los sensores/hardware integrados en el Wio Terminal, como el acelerómetro de 3 ejes, sensor de luz, 3 botones a Microsoft Azure IoT Central. Luego podrás visualizar los datos del sensor en paneles interactivos. También podrás usar Azure IoT Central para controlar hardware como hacer sonar el zumbador integrado en el Wio Terminal. Microsoft Azure IoT Central soporta los protocolos HTTP, MQTT y AMQP para comunicación, pero utilizaremos el protocolo MQTT en este tutorial.

¿Qué es Microsoft Azure?

Microsoft Azure es la plataforma de computación en la nube pública de Microsoft. Puedes usar Microsoft Azure para construir, probar, desplegar y gestionar aplicaciones y servicios a través de centros de datos gestionados por Microsoft.

Además, proporciona una gama de servicios en la nube, incluyendo computación, análisis, almacenamiento y redes. Microsoft Azure proporciona software como servicio (SaaS), plataforma como servicio (PaaS), infraestructura como servicio (IaaS) y sin servidor. Finalmente, soporta muchos lenguajes de programación, herramientas y marcos de trabajo diferentes.

¿Qué es Microsoft Azure IoT?

Microsoft Azure IoT es una colección de servicios en la nube gestionados por Microsoft que conectan, monitorean y controlan miles de millones de activos IoT. Incluye seguridad y sistemas operativos para dispositivos y equipos, junto con datos y análisis que ayudan a las empresas a construir, desplegar y gestionar aplicaciones IoT.

pir

¿Qué es Microsoft Azure IoT Central?

Microsoft Azure IoT Central es una solución SaaS (software como servicio) IoT global completamente gestionada que facilita conectar, monitorear y gestionar tus activos IoT a escala. Es altamente segura, escala con tu negocio a medida que crece, asegura que tus inversiones sean repetibles y se integra con tus aplicaciones empresariales existentes. También cierra la brecha entre tus aplicaciones empresariales y los datos IoT. Finalmente ofrece gestión centralizada para reconfigurar y actualizar tus dispositivos.

¿Qué es IoT Plug and Play?

IoT Plug and Play permite a los constructores de soluciones integrar dispositivos inteligentes con sus soluciones sin ninguna configuración manual. En el núcleo de IoT Plug and Play, está un modelo de dispositivo que un dispositivo usa para anunciar sus capacidades a una aplicación habilitada para IoT Plug and Play. Contiene:

  • Propiedades: representa el estado de solo lectura o escribible de un dispositivo u otra entidad
  • Telemetría: datos enviados por un dispositivo
  • Comandos: describe una función u operación que se puede realizar en un dispositivo

Los dispositivos certificados IoT Plug and Play eliminan la molestia de configurar dispositivos en Azure IoT Central, como crear plantillas y agregar características e interfaces.

Dispositivos Certificados IoT Plug and Play

Los Dispositivos Certificados IoT Plug and Play son dispositivos listados en el Catálogo de Dispositivos Certificados de Azure con la insignia IoT Plug and Play.

Wio Terminal es un Dispositivo Certificado IoT Plug and Play.

pir

Para ser Certificado IoT Plug and Play, necesitarás cumplir algunos criterios, uno de los cuales es publicar un modelo DTDL (Lenguaje de Definición de Gemelos Digitales) que define las capacidades del dispositivo en Azure/iot-plugandplay-models (DMR) en GitHub.

Esto permite que los servicios en la nube que usan Dispositivos Certificados IoT Plug and Play aprendan sobre las capacidades del dispositivo desde este repositorio.

pir

Conectando Wio Terminal a Microsoft Azure IoT Central vía MQTT

Como se explicó anteriormente, utilizaremos MQTT para la comunicación entre el Wio Terminal y Microsoft Azure IoT Central. Sin embargo, también puedes usar el puente HTTP si ese es tu requerimiento.

pir

pir

Configuración de Microsoft Azure IoT Central

Primero, necesitas visitar Microsoft Azure IoT Central, iniciar sesión en tu cuenta de Microsoft y crear una nueva aplicación para tu proyecto.

  • PASO 1: Visita aquí para crear una nueva aplicación

  • PASO 2: Haz clic en Build desde el menú de navegación de la izquierda, y haz clic en Custom apps

Nota: Inicia sesión en tu cuenta de Microsoft si se te solicita

  • PASO 3: Completa el Application name y elige Free bajo el Pricing plan.

Nota: La URL de la aplicación se creará automáticamente cuando completes el nombre de la aplicación

  • PASO 4: Haz clic en Create para crear la nueva aplicación

¡Ahora has configurado exitosamente Azure IoT Central!

Configurar Wio Terminal

Actualizar Firmware RTL8720

Necesitamos actualizar el firmware para el núcleo inalámbrico Realtek RTL8720 en el Wio Terminal. Sigue esta wiki para actualizar el firmware RTL8720.

Nota: Asegúrate de actualizar el firmware según la versión especificada bajo la descripción del lanzamiento.

Descargar y Subir Código Demo al Wio Terminal

Primero usaremos un código demo que envía datos de telemetría desde los sensores integrados en el Wio Terminal a Microsoft Azure IoT Central.

Descargar el Código Demo
  • PASO 1: Navega a este repositorio en GitHub
  • PASO 2: Haz clic en Releases
  • PASO 3: Bajo el Latest release, haz clic en wioterminal-aziot-example.uf2 para descargar el archivo .uf2
Subir el Código Demo al Wio Terminal
  • PASO 1: Conecta el Wio Terminal a la PC y enciéndelo
  • PASO 2: Entra al Bootloader Mode deslizando hacia abajo el interruptor de encendido más lejos de la posición "ON", suelta, desliza nuevamente y suelta

pir

Nota: Una vez que el Wio Terminal esté en modo Bootloader, el LED azul comenzará a respirar de una manera diferente al parpadeo

  • PASO 3: Abre el Explorador de Archivos en tu PC y verás una nueva unidad externa, llamada Arduino

  • PASO 4: Arrastra el archivo .uf2 previamente descargado a esta unidad Arduino.

  • PASO 5: Apaga el Wio Terminal

Ahora hemos subido exitosamente el código demo al Wio Terminal

Configuración de Wi-Fi y Azure IoT

A continuación, pasemos a configurar la conexión Wi-Fi y Azure IoT

  • PASO 1: Mantén presionados los 3 botones y enciende el Wio Terminal para entrar al modo de configuración

pir

  • PASO 2: Abre una aplicación de consola serial como PUTTY

  • PASO 3: Escribe el puerto COM serial correcto, establece 9600 como la velocidad de baudios y entra al Wio Terminal

pir

  • PASO 4: Presiona ENTER en el teclado y escribe help en la terminal serial para ver el uso de la configuración

  • PASO 5: Establece el SSID de Wi-Fi escribiendo set_wifissid nombre_de_tu_red_Wi-Fi

Nota: Asegúrate de agregar un solo espacio entre los campos

  • PASO 6: Establece la contraseña de Wi-Fi escribiendo set_wifipwd contraseña_de_tu_red_Wi-Fi

Nota: Asegúrate de agregar un solo espacio entre los campos

  • PASO 7: Establece la información de conexión de Azure IoT visitando la aplicación previamente creada en Azure IoT Central

  • PASO 8: Navega a Administration > Device Connection desde el menú de navegación izquierdo, y copia el ID scope en el bloc de notas

  • PASO 9: Haz clic en SAS-IoT-Devices y copia la primary key en el bloc de notas

  • PASO 10: Visita la terminal serial previamente abierta y escribe set_az_iotc tu_ID_scope tu_primary_key tu_nombre_de_dispositivo

Nota: Asegúrate de agregar un solo espacio entre cada campo y puedes decidir un nombre de dispositivo de tu elección.

  • PASO 11: Reinicia el Wio Terminal deslizando hacia abajo el interruptor más lejos de la posición ON y soltando

pir

Ahora podrás ver la pantalla LCD del Wio Terminal mostrando que se está conectando a Wi-Fi y luego a Azure IoT Hub. Después de eso mostrará los datos de telemetría siendo enviados a Azure IoT Central.

Mostrar Datos de Telemetría en Microsoft Azure IoT Central

Pasaremos a mostrar los datos de telemetría entrantes del acelerómetro de 3 ejes, sensor de luz y 3 botones del Wio Terminal en el Dashboard de Azure IoT Central.

  • PASO 1: Abre el Dashboard de Azure IoT Central que visitaste antes

  • PASO 2: Haz clic en Devices desde el menú de navegación izquierdo

  • PASO 3: Verás Seeed Wio Terminal aparecer bajo Devices. Haz clic en él

  • PASO 4: Haz clic en la entrada con el nombre de dispositivo que configuraste antes.

pir

Ahora podrás visualizar los datos del acelerómetro de 3 ejes integrado en un panel interactivo.

pir

Esta es la vista predeterminada y necesitamos hacer algunos cambios para mostrar también los otros datos de telemetría.

  • PASO 5: Haz clic en Plantillas de dispositivo desde el menú de navegación izquierdo y haz clic en Seeed Wio Terminal para configurar la plantilla

pir

  • PASO 6: Haz clic en Resumen en el menú de navegación izquierdo

pir

  • PASO 7: Despliega el menú desplegable seleccionar una telemetría y selecciona la telemetría que deseas visualizar.

pir

  • PASO 8: Haz clic en Agregar mosaico y verás el mosaico agregado al Panel de Azure IoT Central

pir

Nota: Puedes redimensionar o cambiar la visualización de los mosaicos según tu preferencia

pir

  • PASO 9: Repite lo mismo para los 3 botones (izquierdo, central, derecho)

pir

Nota: Aquí hemos configurado lo siguiente:

Nombre del MosaicoTamaño del MosaicoVisualización del Mosaico
Intensidad de Luz2 x 2Gráfico de líneas
Botón izquierdo1 x 1KPI
Botón derecho1 x 1KPI
Botón central2 x 2KPI
  • PASO 10: Haz clic en Save y Publish

pir

  • PASO 11: Regresa al panel de control de Azure IoT Central y podrás visualizar todos los datos que llegan desde el Wio Terminal.

pir

  • PASO 12: También puedes hacer clic en la pestaña Raw data para ver todos los datos de telemetría en tiempo real.

pir

Agregar una Regla para Enviar un Correo Electrónico

Las reglas en IoT Central sirven como una herramienta de respuesta personalizable que se activa con eventos monitoreados activamente desde dispositivos conectados. Por ejemplo, en esta demostración, podemos configurar IoT Central para enviar un correo electrónico cuando el nivel de intensidad de luz esté por debajo de 50.

  • PASO 1: Haz clic en Rules desde el menú de navegación izquierdo en Azure IoT Central.

  • PASO 2: Haz clic en +New o Create a rule

  • PASO 3: Ingresa un nombre para la regla

  • PASO 4: Bajo Device template, selecciona Seeed Wio Terminal

pir

  • PASO 5: Bajo Conditions, activa time aggregation y selecciona una time window de tu elección. Aquí la configuraremos como 5 minutes

Nota: Cada xx minutos, la regla evalúa una vez los últimos xx minutos de datos

  • PASO 6: Bajo Telemetry, selecciona la telemetría de tu elección. Aquí la configuraremos como Light intensity

  • PASO 7: Bajo Aggregation, selecciona Average. Esto tomará el valor promedio durante la time window configurada anteriormente

  • PASO 8: Bajo Operator, selecciona una condición de tu elección. Aquí usaremos la condición is less than

  • PASO 9: Bajo Value, escribe un valor. Aquí escribiremos 50

pir

  • PASO 10: Bajo Actions, haz clic en Email

  • PASO 11: Escribe un Display name, To address y Note para el correo electrónico

pir

Nota: Ten en cuenta que la dirección de correo electrónico aquí debe agregarse a esta Aplicación de Azure IoT Central y también haber iniciado sesión al menos una vez.

  • Navega a Administration > Users, haz clic en Assign user, completa el Email, asigna un Role y haz clic en Save

pir

  • PASO 12: Haz clic en Done

  • PASO 13: Finalmente, haz clic en Save

Ahora hemos creado exitosamente una regla para enviar un correo electrónico

Controlar Hardware desde Microsoft Azure IoT Central

No solo puedes ver los datos de telemetría en Azure IoT Central, sino también usarlo para controlar hardware. En esta demostración, podremos controlar el zumbador integrado en el Wio Terminal y especificar una duración de tiempo en la cual el zumbador sonará

  • PASO 1: Haz clic en la pestaña Command

  • PASO 2: Ingresa un value dentro de la columna bajo Duration

Nota: los valores están en unidades de milisegundos. ej: 1000 = 1000ms = 1s

  • PASO 3: Cuando hagas clic en Run, podrás escuchar un sonido de pitido del zumbador durante la duración de tiempo especificada arriba

pir

¿Cómo Agregar Otros Sensores?

Puedes agregar cualquier sensor al Wio Terminal y enviar datos de telemetría desde el sensor conectado a Azure IoT Central. ¡Conectaremos un Grove - Sensor de Temperatura y Humedad (DHT11) al Wio Terminal y enviaremos datos de temperatura y humedad a Azure IoT Central para visualizarlos en paneles!

Configuración de Microsoft Visual Studio Code

Descargar, Instalar y Configurar Visual Studio Code

Si queremos agregar más sensores al Wio Terminal para enviar datos de telemetría a Azure IoT Central, no podemos usar fácilmente el archivo .uf2 como lo hicimos antes. Porque los códigos ya están compilados dentro de ese archivo .uf2. Entonces, si queremos agregar más códigos a la demostración, necesitamos usar un IDE llamado Microsoft Visual Studio Code, agregar los códigos necesarios y finalmente subirlos al Wio Terminal.

Así que ahora, procedamos a instalar Microsoft Visual Studio Code en la computadora

  • PASO 1: Visita code.visualstudio.com y haz clic en Download

Nota: Elige el instalador según tu sistema operativo

  • PASO 2: Sigue el asistente de instalación y completa la instalación

  • PASO 3: Abre Visual Studio Code

  • PASO 4: Haz clic en Extensions desde el menú de navegación izquierdo y escribe platformIO en el cuadro de búsqueda

pir

  • PASO 5: Haz clic en install

pir

Código para la Demostración en Visual Studio Code

  • PASO 1: Visita este enlace para encontrar las versiones disponibles dentro del repositorio SeeedJP/wioterminal-aziot-example

  • PASO 2: Navega a la Última versión y bajo Assets, haz clic en Source code (zip). Esto descargará el código fuente como un archivo .zip

  • PASO 3: Extrae el archivo .zip

  • PASO 4: Regresa a Visual Studio Code y navega a File > Open Folder...

  • PASO 5: Elige la carpeta que extrajimos antes y haz clic en Select Folder

  • PASO 6: Navega a wioterminal-aziot-example-0.10 > include > config.h desde el menú de navegación izquierdo

  • PASO 7: Una vez que config.h esté abierto, busca "dtmi:seeedkk:wioterminal:wioterminal_aziot_example;5" y cámbialo a "dtmi:local:wioterminal_aziot_example;5"

Nota: dtmi:local:wioterminal_aziot_example;5 es el ID del Modelo

  • PASO 8: Navega a wioterminal-aziot-example-0.10 > seeedkk-wioterminal-wioterminal_aziot_example.json desde el menú de navegación izquierdo

  • PASO 9: Una vez que seeedkk-wioterminal-wioterminal_aziot_example.json esté abierto, busca "dtmi:seeedkk:wioterminal:wioterminal_aziot_example;5" y cámbialo a "dtmi:local:wioterminal_aziot_example;5" también

Nota: seeedkk-wioterminal-wioterminal_aziot_example.json es el modelo DTDL que hemos mencionado antes

Actualmente el modelo está definido para datos de aceleración, intensidad de luz y conteo de botones. Procederemos a agregar temperatura y humedad a este modelo DTDL.

  • PASO 10: Agrega los siguientes códigos debajo de "contents": [:
  "contents": [
{
"@type": [
"Telemetry",
"Temperature"
],
"name": "temp",
"unit": "degreeCelsius",
"displayName": {
"en": "Temperature (C)",
"ja": "温度"
},
"schema": "integer"
},
{
"@type": "Telemetry",
"name": "humi",
"displayName": {
"en": "Humidity (%RH)",
"ja": "湿度"
},
"schema": "integer"
},

Nota: Aquí, name es lo que usaremos para identificar datos de telemetría específicos más adelante en los códigos, unit es la unidad correspondiente a los datos, displayName es el nombre que se muestra en Azure IoT Central ("en" para inglés/ "ja" para japonés) y schema es el tipo de datos

lib_deps = 
https://github.com/Seeed-Studio/Grove_Temperature_And_Humidity_Sensor

Nota: Esta es la biblioteca para Grove - Sensor de Temperatura y Humedad (DHT11)

  • PASO 13: Navega a wioterminal-aziot-example-0.10 > src > main.cpp desde el menú de navegación izquierdo

  • PASO 14: Una vez que main.cpp esté abierto, añade la biblioteca DHT11 después de la línea #include "CliMode.h"

#include "CliMode.h"
#include "DHT.h"
  • PASO 15: Añade las definiciones del DHT11 y las inicializaciones después de la línea LIS3DHTR AccelSensor;
LIS3DHTR<TwoWire> AccelSensor;

#define DHTPIN 0 //Define signal pin of DHT sensor
// #define DHTPIN PIN_WIRE_SCL //Use I2C port as Digital Port */
#define DHTTYPE DHT11 //Define DHT sensor type
DHT dht(DHTPIN, DHTTYPE); //Initializing DHT sensor

Nota: El sensor DHT11 puede conectarse a ambos puertos Grove en el Wio Terminal. Si se usa el Puerto Digital, el pin puede definirse como 0 y si se usa el puerto I2C, el pin puede definirse como PIN_WIRE_SCL. El diagrama del puerto se mostrará más adelante en este documento

  • PASO 16: Añade los siguientes códigos bajo la función SendTelemetry() para analizar el archivo json junto con los datos de telemetría
static az_result SendTelemetry()
{
float accelX;
float accelY;
float accelZ;
AccelSensor.getAcceleration(&accelX, &accelY, &accelZ);

int light;
light = analogRead(WIO_LIGHT) * 100 / 1023;

int temp; //assign variable to store temperature
int humi; //assign variable to store humidity
temp = dht.readTemperature(); //read temperature
humi = dht.readHumidity(); //read humidity

char telemetry_topic[128];
if (az_result_failed(az_iot_hub_client_telemetry_get_publish_topic(&HubClient, NULL, telemetry_topic, sizeof(telemetry_topic), NULL)))
{
Log("Failed az_iot_hub_client_telemetry_get_publish_topic" DLM);
return AZ_ERROR_NOT_SUPPORTED;
}

az_json_writer json_builder;
char telemetry_payload[200];
AZ_RETURN_IF_FAILED(az_json_writer_init(&json_builder, AZ_SPAN_FROM_BUFFER(telemetry_payload), NULL));
AZ_RETURN_IF_FAILED(az_json_writer_append_begin_object(&json_builder));
AZ_RETURN_IF_FAILED(az_json_writer_append_property_name(&json_builder, AZ_SPAN_LITERAL_FROM_STR("temp")));
AZ_RETURN_IF_FAILED(az_json_writer_append_int32(&json_builder, temp));
AZ_RETURN_IF_FAILED(az_json_writer_append_property_name(&json_builder, AZ_SPAN_LITERAL_FROM_STR("humi")));
AZ_RETURN_IF_FAILED(az_json_writer_append_int32(&json_builder, humi));
  • PASO 17: Añade los siguientes códigos después de la línea ntp.begin, para iniciar el sensor DHT11
dht.begin(); //start DHT sensor

Ahora hemos completado todos los códigos para esta demostración.

  • PASO 18: Haz clic en el icono de PlatformIO desde el menú de navegación izquierdo y haz clic en Build

pir

Si ves el siguiente mensaje, has compilado exitosamente el código:

================================== [SUCCESS] Took 30.56 seconds ==================================

Configuración de Microsoft Azure IoT Central

Ahora necesitamos crear una plantilla de dispositivo personalizada para que los datos del Wio Terminal puedan visualizarse en el Panel de Control de Azure IoT Central

Creando una Nueva Plantilla de Dispositivo

  • PASO 1: Visita Azure IoT Central y haz clic en Device templates desde el menú de navegación izquierdo

  • PASO 2: Haz clic en + New, haz clic en IoT device y haz clic en Next:Customize

  • PASO 3: Escribe un nombre dentro del cuadro Device template name y haz clic en Next:Review

  • PASO 4: Haz clic en Create

Importando un Modelo de Dispositivo Personalizado

  • PASO 1: Haz clic en Import a model

  • PASO 2: Navega a la carpeta wioterminal-aziot-example-0.10 que usamos antes, encuentra el archivo seeedkk-wioterminal-wioterminal_aziot_example.json y haz clic en él

  • PASO 3: Haz clic en Open

  • PASO 4: Haz clic en Views desde el menú izquierdo y haz clic en Generate default views

  • PASO 5: Haz clic en Generate default dashboard view(s)

  • PASO 6: Navega a Overview desde el menú izquierdo y personaliza el panel de control según tu preferencia.

Nota: Hemos mencionado previamente en este documento, cómo personalizar el panel de control

  • PASO 7: Sigue la siguiente configuración
Nombre del MosaicoTamaño del MosaicoVisualización del Mosaico
Light Intensity2 x 2Line chart
Light Intensity1 x 1Last Known Value
Temperature (C), Humidity (%RH)2 x 2Line chart
Temperature (C)1 x 1Last Known Value
Humidity (%RH)1 x 1Last Known Value
Left button1 x 1KPI
Middle button1 x 1KPI
Right button1 x 1KPI

pir

  • PASO 8: Haz clic en Guardar y Publicar

Configuración del Wio Terminal

Configuración del Hardware

  • Conecta el Grove - Sensor de Temperatura y Humedad (DHT11) al Puerto Digital Grove en el Wio Terminal

pir

Configuración del Software

Cargar Código al Wio Terminal

Ahora necesitamos cargar el código al Wio Terminal para enviar los datos de telemetría a Azure IoT Central

  • PASO 1: Regresa a VS Code, haz clic en el icono de PlatformIO y haz clic en Cargar

pir

Configuración de Wi-Fi y Azure IoT

A continuación, pasemos a configurar la conexión Wi-Fi y Azure IoT tal como lo hicimos antes

  • PASO 1: Mantén presionados los 3 botones y ENCIENDE el Wio Terminal para entrar al modo de configuración

pir

  • PASO 2: Abre una aplicación de consola serial como PUTTY

  • PASO 3: Escribe el Puerto COM serial correcto, establece 9600 como la velocidad de baudios e ingresa al Wio Terminal

pir

  • PASO 4: Presiona ENTER en el teclado y escribe help en la terminal serial para ver el uso de la configuración

Nota: Ahora no necesitamos ingresar el SSID y contraseña de WiFi porque ya están guardados de la configuración anterior

  • PASO 5: Establece la información de conexión de Azure IoT visitando la aplicación creada previamente en Azure IoT Central

  • PASO 6: Navega a Administración > Conexión de Dispositivos desde el menú de navegación izquierdo, y copia el ámbito de ID en el bloc de notas

  • PASO 7: Haz clic en SAS-IoT-Devices y copia la clave primaria en el bloc de notas

  • PASO 8: Visita la terminal serial abierta previamente y escribe set_az_iotc tu_ámbito_de_ID tu_clave_primaria tu_nombre_de_dispositivo

Nota: Asegúrate de agregar un solo espacio entre cada campo y puedes decidir un nombre de dispositivo de tu elección.

  • PASO 9: Reinicia el Wio Terminal deslizando hacia abajo el interruptor más alejado de la posición ON y liberándolo

pir

Ahora podrás ver la pantalla LCD del Wio Terminal mostrando que se está conectando a Wi-Fi y luego a Azure IoT Hub. Después de eso, mostrará los datos de telemetría siendo enviados a Azure IoT Central.

Visualizar en Azure IoT Central

Regresa a Azure IoT Central y desde el menú de navegación izquierdo, haz clic en Dispositivos, haz clic en tu Nombre de Dispositivo

pir

¡Ahora podrás visualizar todos los datos del sensor del Wio Terminal en el Panel de Control de Microsoft Azure IoT Central!

Soporte Técnico y Discusión de Productos

si tienes algún problema técnico. envía el problema a nuestro foro. ¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.

Loading Comments...