Rick McGuire, administrador de desarrollo de aplicaciones, muestra cómo construir y administrar fácilmente una solución de IoT utilizando .NET, Windows 10 IoT, una Raspberry Pi y Azure IoT Central.



¿Alguna vez ha intentado crear una solución de IoT en un dispositivo integrado como una Raspberry Pi con un procesador ARM? ¿Qué lenguages tuviste que usar? ¿Qué pasaría si ese dispositivo tuviera que enviar datos a la nube para realizar paneles y alertas? ¿Cómo construiría el panel y administraría las alertas para los usuarios autorizados?

Microsoft ha simplificado todo este espacio, utilizando Windows 10 IoT ejecutando aplicaciones .NET UWP en una Raspberry Pi combinada con nuestra oferta SaaS para IoT llamada IoT Central.

En esta publicación del blog, analizaremos la configuración de una aplicación UWP de C # .NET que se ejecuta en Windows 10 IoT en un dispositivo Raspberry Pi, la configuración de un proyecto de Azure IoT Central para trazar su telemetría y enviar alertas por correo electrónico basadas en el exceso de telemetría definida por el usuario umbrales!

Aquí está la lista:

  • Lo primero es conseguir  una Raspberry Pi 3 e instalar el sistema operativo Windows 10 IoT. ¡Si prefiere omitir esto y solo probar esta aplicación en su computadora portátil, puede hacerlo también!
  • Clone la aplicación de demostración C# UWP de muestra que enviará datos de telemetría a IoT Central desde GitHub y genere / ejecute el proyecto utilizando Visual Studio.
  • Cree una cuenta de IoT Central y creamos una aplicación con la prueba gratuita de 7 días y configure un dispositivo y defina una regla de telemetría y un activador (alerta).
  • Cree y ejecute la aplicación en su computadora portátil para enviar datos de telemetría a IoT Central; verifique que los datos se registren y las reglas activen las alertas de correo electrónico cuando se excedan los umbrales.
  • Compile la aplicación para ARM, ejecute la aplicación en la Raspberry Pi (opcional pero muy recomendable).
  • Si tiene el corazón puesto en usar un dispositivo remoto, le sugiero que comience con una Raspberry Pi 3. Tengo mis manos en el CanaKit (Raspberry Pi 3 Complete Starter Kit); Lo puedes encontrar en línea por menos de $ 70. Deberá descargar e instalar Windows 10 IoT como paso 1. Una vez que tenga la Raspberry Pi 3, puede seguir estas instrucciones para instalar Windows 10 IoT en la tarjeta SSD. Esencialmente, necesita insertar la tarjeta SSD en el convertidor USB y luego insertarla en el puerto USB de su computadora portátil, luego descargar la aplicación IoT.

Windows 10 IoT Core Dashboard:

https://docs.microsoft.com/en-us/windows/iot-core/connect-your-device/iotdashboard



Si necesita una guía más detallada, le recomiendo que vea este video del canal 9. Instalación de Windows 10 IoT en Raspberry Pi 3 - Guía del programador para Internet of Things - Parte 3: https://channel9.msdn.com/Blogs/MVP-Windows-and-Devices-for-IT/Windows-10-Installation-in-Raspberry-Pi

Ahora que tiene Windows 10 IoT en la Pi, descargue el código de muestra para enviar datos de temperatura a IoT Central. El proyecto Sample C # UWP se usa para simular un dispositivo de temperatura que envía datos de telemetría a IoT Central.

El código de C # de muestra para la aplicación UWP está disponible en GitHub para que lo clone. Esta aplicación tiene una IU que solicita un valor de temperatura y, una vez que presiona el botón OK, enviará los datos a IoT Central. Esta es una aplicación muy básica; pero te ayudará a empezar.

Git Repo: https://github.com/rickmcguire/IoTCentralDevice

Instrucciones para descargar y abrir el proyecto:

Ejecute un símbolo del sistema (cmd), asumiendo que ya tiene Git instalado.

C:\Users\yourname>cd\

C:>md IoTTest

C:>cd IoTTest

C:\IoTTest>git clone https://github.com/rickmcguire/IoTCentralDevice


Abra la solución para "App1" y compile para x86 y ejecute.

App1 aplicación UWP captura de pantalla:



Su aplicación lanzará una excepción hasta que la configure para hablar con IoT Central. Primero salga y haga clic en "Comenzar>" para crear una cuenta de prueba gratuita: https://azure.microsoft.com/en-us/services/iot-central/#. Una vez que haya creado una cuenta, deberá crear una nueva aplicación y un tipo de dispositivo. Como ya hay un gran tutorial, no voy a repasar los detalles de este blog.

Revise este tutorial: defina un nuevo tipo de dispositivo en su aplicación Azure IoT Central:
https://docs.microsoft.com/en-us/azure/iot-central/tutorial-define-device-type

Una vez que haya creado un dispositivo, debe reunir cierta información para que nuestro dispositivo IoT (Pi o PC) pueda conectarse a IoT Central. Deberá seleccionar su dispositivo en el explorador de dispositivos, elegir el dispositivo que creó y hacer clic en "Conectar" en la esquina superior derecha.

Portal Central de IoT:

https://apps.azureiotcentral.com/



Aparecerá un diálogo; necesita capturar el ID de alcance, la clave principal y el ID de dispositivo. Copie estos elementos en el bloc de notas o en OneNote, etc. Necesitará estos valores para crear una cadena de conexión.



Azure IoT Central utiliza el servicio de aprovisionamiento de dispositivos (DPS) de Azure IoT Hub, lo que permite que IoT Central admita la integración y la conexión de dispositivos a gran escala. Para obtener la cadena de conexión necesita descargar el paquete node.js dps-keygen.

Siga estas instrucciones para obtener la cadena de conexión del dispositivo: https://docs.microsoft.com/en-us/azure/iot-central/concepts-connectivity#getting-device-connection-string

NOTA: Si aún no tiene node.js y npm (administrador de paquetes de nodos) instalados en su máquina, descárguelos primero aquí: https://www.npmjs.com/get-npm

Una vez que ejecute la línea de comando que pasa en ID de alcance, ID de dispositivo y clave principal; esto proporcionará la cadena de conexión (incluido el nombre de host que necesita (asegúrese de ir a la carpeta \ bin y luego a la carpeta del sistema operativo que está ejecutando). Deberá descomprimir el ejecutable dps_cstr.exe antes de poder ejecutar el mando.


Consola de Node.js:

C:\Users\yourname\AppData\Roaming\npm\node_modules\dps-keygen\bin\windows\dps_cstr>dps_cstr 0ne00028F38 180ivdg I8lEeZnzfesK0rsXxS79c9EJjpBIcCNJp3uHTlDXlJA=
.....
 
Registration Information received from service: saas-iothub-8d7e4ece-e135-4e66-acec-b78b90d0e2c2.azure-devices.net!
 
Connection String:
 
HostName= saas-iothub-8d7e4ece-e135-4e66-acec-b78b90d0e2c2.azure-devices.net;DeviceId=7f165d77-9fa1-4b96-8870-9967d5161a63;SharedAccessKey=wyL7jfB1+FosnfyKrp6GEYjkr23lR++quk7GNcAbNEc=

En el archivo MainPage.xaml.cs, actualice deviceId, actualice deviceKey con la clave principal y también el valor iotHubUri. Una vez que tenga la información, actualice el código, vuelva a compilarlo y vuelva a ejecutarlo, cuando ingrese los valores de temperatura y presione OK, ya no debería recibir excepciones.

//Function to send telemetry data to IoT Central
static async Task SendDeviceToCloudMessagesAsync(int temp)
 
{
 
string iotHubUri = "saas-iothub-8d7e4ece-e135-4e66-acec-b78b90d0e2c2.azure-devices.net";
 
string deviceId = "180ivdg";
 
string deviceKey = "I8lEeZnzfesK0rsXxS79c9EJjpBIcCNJp3uHTlDXlJA=";


Una vez que ejecute y compile la aplicación, debería poder ingresar valores de temperatura y verificar que estén siendo capturados en el sitio de IoT Central. Vaya a Dispositivos y seleccione el dispositivo que agregó - vea más abajo.



Una de las buenas características de IoT Central es la capacidad de crear alertas de correo electrónico. Puede agregar reglas a sus dispositivos, aquí agregué una regla simple para enviar y un correo electrónico si la temperatura excede un umbral.



Este es el ejemplo de correo electrónico que se envía una vez que una regla detecta que la temperatura excede el valor de umbral. La mayoría de esto es sencillo y hay una gran documentación en el sitio aquí: https://docs.microsoft.com/en-us/azure/iot-central/.



Una vez que tenga esta aplicación ejecutándose en su computadora portátil, simplemente compile esto para ARM y ejecútelo en el dispositivo Raspberry Pi, ¡esto no requerirá ningún cambio en el código! Su aplicación debe comportarse de la misma manera. Deberá tener su Raspberry Pi conectada a la red y asegurarse de que tiene un monitor y un teclado conectados a su dispositivo Pi para que pueda ingresar los datos de temperatura.

Implemente una aplicación C # en su dispositivo Windows 10 IoT Core:
https://docs.microsoft.com/en-us/windows/iot-core/develop-your-app/appdeployment



¡Buena suerte y diviértase! Espero que vea el valor en IoT Central y el potencial con Windows 10 IoT para desarrollar aplicaciones UWP.