Tabla de contenido
resumen
En este tutorial introductorio, aprenderá cómo enviar Datos del sensor DHT11 Desde el nodo MCU ESP8266 dirección Microsoft Azure IoT CentralEl Internet de las cosas (IoT) es una red de dispositivos físicos que se conectan e intercambian. datos con otros dispositivos y servicios a través de Internet u otras redes. Lo que puedes integrar en lo que necesitas sensor El software se puede conectar a través de Internet.
Azure IoT Central es una plataforma de aplicaciones IoT (aPaaS) que simplifica la creación de soluciones IoT. Azure IoT Central proporciona una superficie de API y experiencia de usuario lista para usar creada para conectar, administrar y operar flotas de dispositivos a escala.
Anteriormente, aprendió sobre AWS IoT Core con el ESP8266. Microsoft Azure es similar a Amazon AWS IoT Core. Este tutorial es para principiantes que quieren aprender. Azure IoT Central para Aplicaciones de IoTEsta guía le ayuda a aprender a establecer la comunicación entre NodeMCU ESP8266 y Azure IoT Central. En esta guía se explica cómo configurar una cuenta de Azure IoT, crear una aplicación de IoT Central, agregar dispositivos, crear plantillas, publicar dispositivos en plantillas y visualizar datos.
Configuración de hardware
La configuración de hardware requerida para este proyecto es el módulo NodeMCU ESP8266 Wifi. Además, se utiliza un sensor de humedad y temperatura DHT11 para la parte del sensor.
Conecte el sensor DHT11 a la placa NodeMCU ESP8266 de acuerdo con este esquema. Conecte los pines VCC, GND y de salida de la DHT11 a los pines NodeMCU ESP8266 3.3V, GND y D4, respectivamente.
Puede usar una placa de pruebas o un cable conector macho a hembra para la conexión.
Introducción a Azure IoT Central con ESP8266
El primer paso es asegurarse de que su PC esté configurado para comunicarse con la placa NodeMCU ESP8266. A continuación, debe seguir una serie de pasos de la siguiente manera:
Paso 1: Crear una cuenta de Microsoft Azure
Debe tener una cuenta Microsoft para crear una cuenta de Microsoft Azure. perspectiva o Hotmail.
Visítenos ahora azure.microsoft.comEscribe tus datos aquí y regístrate con tu cuenta Microsoft. Durante la creación de la cuenta, se le pedirá que ingrese los detalles de su tarjeta de débito / crédito. Las tarifas de un mes no están incluidas.
Al final serás llevado a Azure PortalPor lo tanto, se crea una cuenta.
Paso 2: Configurar la aplicación IoT Central
En la barra de búsqueda, escribaAplicación IoT CentralPróximo[IoT Central アプリケーション]Clic. Vaya a la página siguiente:
En la parte de suscripción, reserva.debajo Grupo de recursospara crear un nuevo grupo y darle el nombre de su elección. En la parte de detalles de la instancia, asígnele un nombre de su elección recurso Y Dirección URL de la aplicación.
En la parte de plantilla, haga clic en Plantillas personalizadas Y región Dependiendo de la ubicación geográfica más cercana. Además Planes de preciosLuego, finalmente, haga clic en Revisar + Crear.
Aparecerá la página de revisión.
Cuando vea un mensaje que indica que se ha superado la validación,[作成]Clic. El proceso de implementación lleva algún tiempo.
Una vez completada la implementación, aparece el siguiente mensaje en la pantalla:
próximo[リソースに移動]Clic.
Ahora ha creado correctamente una aplicación de IoT Central.
Paso 3: Crear una plantilla de dispositivo
Debe crear una plantilla o plano para su dispositivo, y la plantilla se estructurará de acuerdo con el tipo de datos que espera de su dispositivo. Por lo tanto, lo primero que debe configurar es la plantilla del dispositivo.
Desde la página anterior, obtendrá Dirección URL de la aplicación IoT Central. Al hacer clic en la URL lo llevará a la página siguiente.
En el lado izquierdo del panel, haga clic en Plantillas de dispositivoA continuación, haga clic en Crear una plantilla de dispositivo.
Hay tantas plantillas listas para usar creadas por muchos proveedores. Pero necesitamos crear nuestra propia plantilla. Para ello, Dispositivos IoTA continuación, haga clic en Siguiente:Personalizar.
A continuación, asigne a la plantilla de dispositivo un nombre de su elección.
Luego haga clic en próximo entonces crearPor lo tanto, la plantilla de dispositivo se crea correctamente.
Entonces necesitas agregar poder a la plantilla de dispositivo que ha creado.
Desde que publicamos temperatura Y humedad Dado que se trata de datos, añadiremos dos funciones con los siguientes parámetros:
Luego haga clic en salvarA continuación, haga clic en Modo de visualización.
elegir Vista predeterminada típicaA continuación, haga clic en Generación de una vista de panel predeterminada.
La parte de vista muestra cómo se muestran los datos. Establezca la temperatura y la humedad en “Último valor conocidoDespués de esto, “salvary puedes seguir escribir Su plantilla.
Paso 4: Configura tu dispositivo
Después de crear un blueprint de dispositivo con una plantilla de dispositivo, la siguiente tarea es configurar el dispositivo.
Haga clic en el botón dispositivo y, a continuación, haga clic en Agregar un dispositivo.
dar Nombre del dispositivo Y ID del dispositivo Como quieras.[デバイス テンプレート]En la pieza, seleccione la plantilla de dispositivo que creó anteriormente. Luego haga clic en crear.
Finalmente, se crea el dispositivo.
Cuando haga clic en el nombre del dispositivo, verá muchas pestañas como Descripción general, visión general, datos sin procesarY Aliados mapeadosLa visualización de datos es[概要]Se realiza en pestañas.
En la parte superior izquierda, haz clic en[接続]Aparecen las opciones. Así que haga clic en el botón conectar.
Aquí verá la información que necesita para conectar su NodeMCU ESP8266 a Azure IoT Central, incluido el identificador del dispositivo, el nombre, la clave principal y la clave pública.
Código fuente/Programa
El código original para este proyecto es Samuel AdesoraEl código está escrito en el IDE de Arduino. Por lo tanto, el IDE de Arduino debe tener la placa ESP8266 preinstalada.
Descargue la carpeta completa del proyecto desde Enlace de Github.
Una vez completada la descarga, extraiga la carpeta y verá todos los archivos de origen y carpetas de biblioteca allí. Abra un boceto de Arduino desde la misma carpeta.
El boceto de Arduino necesita algunos cambios. Cámbialo primero SSID de LAN inalámbrica Y contraseña Conéctese a una red WiFi.
#define WIFI_SSID “******” #define WIFI_PASSWORD “******” |
A continuación, debe cambiar el ámbito de ID, el ID de dispositivo y la clave de dispositivo principal. Copie estos parámetros obtenidos durante la configuración del dispositivo desde arriba.
constante chamuscar* SCOPE_ID = “*********************”; constante chamuscar* DEVICE_ID = “*********************”; constante chamuscar* DEVICE_KEY = “*********************”; |
Aquí está el código final. Puede copiar este código y cargarlo en su placa NodeMCU ESP8266. Por lo tanto, la comunicación entre Azure IoT Central y el ESP8266 se puede establecer mediante una red WiFi.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | Derechos de autor (c) Microsoft. Todos los derechos reservados. Licenciado bajo la Licencia MIT. Ver el archivo LICENSE raíz completo del proyecto Información de licencia. #include <ESP8266WiFi.h> #include “src/iotc/common/string_buffer.h” #include “src/iotc/iotc.h” #include “DHT.h” #define DHTPIN 2 #define DHT Tipo DHT11 // DHT 11 #define WIFI_SSID “******” #define WIFI_PASSWORD “******” constante chamuscar* SCOPE_ID = “****************”; constante chamuscar* DEVICE_ID = “****************”; constante chamuscar* DEVICE_KEY = “****************”; Teletipo Teletipo(Teletipo, Tipo AJC); No válido on_event(IOTContext Teletipo, Información de IOT Allback* Información de devolución de llamada); #include “src/connection.h” No válido on_event(IOTContext Teletipo, Información de IOT Allback* Información de devolución de llamada) { Estado de la conexión Si (strcmp(Información de devolución de llamada–>Nombre del evento, Estado de la conexión) == 0) { LOG_VERBOSE(“¿Está conectado?%s (%d)”, Información de devolución de llamada–>Códigos de estado == IOTC_CONNECTION_OK ? “Sí”. : “No”., Información de devolución de llamada–>Códigos de estado); Conexo = Información de devolución de llamada–>Códigos de estado == IOTC_CONNECTION_OK; devolución; } El búfer de carga útil no termina con null. Agregar valores nulos terminados por otro búfer antes de imprimir AzureIOT::Búfer de cadena búfer; Si (Información de devolución de llamada–>Longitud de la carga útil > 0) { búfer.inicializar(Información de devolución de llamada–>carga útil, Información de devolución de llamada–>Longitud de la carga útil); } LOG_VERBOSE(“- [%s] Se recibió un evento. payload=> %s\n”, Información de devolución de llamada–>Nombre del evento, búfer.getLength() ? *búfer : “Cielo”); Si (strcmp(Información de devolución de llamada–>Nombre del evento, Mandar) == 0) { LOG_VERBOSE(“- El nombre del comando es => %s\r\n”, Información de devolución de llamada–>etiqueta); } } No válido arreglo() { serial.empezar(9600); connect_wifi(WIFI_SSID, WIFI_PASSWORD); connect_client(SCOPE_ID, DEVICE_ID, DEVICE_KEY); Si (contexto != nulo) { Último tick = 0; Establezca un temporizador pasado para habilitar la primera telemetría A.S.A.P. } Teletipo.empezar(); } No válido bucle() { flotar h = Teletipo.Leer humedad(); flotar t = Teletipo.Temperatura de lectura();
Si (Conexo) { Unsigned largo Sra = Milis(); Si (Sra – Último tick > 10000) { Enviar telemetría cada 10 segundos chamuscar …msg[64] = {0}; entero ubicación = 0, Error = 0; Último tick = Sra; Si (bucle++ % 2 == 0) { Enviar telemetría ubicación = SNPRINTF(…msg, tamaño(…msg) – 1, “{\”Temperatura\”: %f}”, t); Error = iotc_send_telemetry(contexto, …msg, ubicación);
ubicación = SNPRINTF(…msg, tamaño(…msg) – 1, “{\”humedad\”:%f}”, h); Error = iotc_send_telemetry(contexto, …msg, ubicación);
} de otra manera { Envío de propiedades
}
…msg[pos] = 0; Si (Error != 0) { LOG_ERROR(“Error al enviar el mensaje con el error c aether %d”, Error); } } iotc_do_work(contexto); Trabajo de antecedentes de IOTC } de otra manera { iotc_free_context(contexto); contexto = nulo; connect_client(SCOPE_ID, DEVICE_ID, DEVICE_KEY); } } |
Nota: Si recibe un mensaje de error de compilación al cargar el código, degrade la versión ESP8266 a 2.7.4 desde Board Manager.
Visualización y pruebas de datos
Una vez cargado el código, el ESP8266 puede establecer una conexión con Azure IoT Central mediante la red WiFi. Cuando abra el monitor serie, verá una serie de instrucciones para conectarse a servidores WiFi y Azure.
Una vez conectado a Azure Server, el ESP8266 comienza a cargar datos de humedad y temperatura DHT11 en Azure IoT Central.
A continuación, vaya a la pestaña de descripción general del dispositivo y podrá visualizar los datos del sensor desde el ESP8266.
En la pestaña Datos sin procesar, los registros de temperatura y humedad se almacenan en forma de telemetría. Los ejemplos de telemetría recibidos de los dispositivos incluyen datos del sensor como velocidad y temperatura, mensajes de error como eventos perdidos y mensajes informativos que indican que el dispositivo está en buenas condiciones.
Así es como se envían los datos del sensor DHT11 desde el ESP8266 a Microsoft Azure IoT Central.
Video Tutorial y Guía
Introducción a Microsoft Azure IoT Central con NodeMCU ESP8266