Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
Microsoft Azure es un servicio en la nube que proporciona una potencia informática más potente y estable. Esta vez intentamos enviarle nuestros datos de IoTea.
Paso 1: Cosas utilizadas en este proyecto
Componentes de hardware
- Grove - Sensor de dióxido de carbono (MH-Z16)
- Grove - Sensor de luz digital
- Grove - Sensor de polvo (PPD42NS)
- Grove - Sensor de oxígeno (ME2-O2-Ф20)
- Sensor de temperatura y humedad del suelo
- LoRa LoRaWAN Gateway - Kit de 868MHz con Raspberry Pi 3
- Grove - Sensor de temperatura, Humi y barómetro (BME280)
Aplicaciones de software y servicios en línea
- Microsoft Visual Studio 2015
- Microsoft Azure
Paso 2: historia
En la montaña Mengding al noreste de Ya'an, Sichuan, la cresta de la montaña corre de oeste a este en un mar verde. Este es un espectáculo muy familiar para Deng, de 36 años, uno de los pocos fabricantes de té Mengding de su generación, con una plantación de 50mu (= 3,3 hectáreas) situada a 1100 m sobre el nivel del mar. Deng proviene de una familia de fabricantes de té, pero continuar con el legado familiar no es una tarea fácil. “Nuestros tés se cultivan a gran altura en un entorno orgánico para garantizar su excelente calidad. Pero al mismo tiempo, la densidad de crecimiento es baja, el costo es alto y la brotación es desigual, lo que dificulta la cosecha del té. Es por eso que los tés de alta montaña normalmente son cosechas pequeñas y sus valores no se reflejan en el mercado”. Durante los últimos dos años, Deng ha estado tratando de aumentar la conciencia de los consumidores sobre el té de alta montaña para promover su valor. Y cuando conoció a Fan, que estaba buscando una plantación para implementar la tecnología IoTea de Seeed, se hizo una combinación perfecta para una solución.
Paso 3: Conexión de hardware
Siga el tutorial anterior para conectar su hardware.
Paso 4: Configuración de la nube
Paso 1. Crear grupo de recursos
Haga clic aquí para iniciar sesión en Microsoft Azure. Y luego, ingrese Grupos de recursos en la lista a la izquierda del tablero, haga clic en Agregar para agregar un Grupo de recursos.
Un grupo de recursos se usa para administrar todos los recursos en el proyecto, después de usar los recursos de la nube, elimine el grupo de recursos para eliminar todos los recursos y evitar cargos. En la página abierta, complete el nombre del grupo de recursos (como iotea), elija Suscripción y ubicación del grupo de recursos si es necesario, haga clic en Crear para crear un grupo de recursos.
Paso 2. Crea Iot Hub
Ahora puede crear un recurso en la nube, haga clic en Crear un recurso a la izquierda, elija Internet de las cosas - Iot Hub, se abrirá una nueva página.
En la pestaña Conceptos básicos, elija el Grupo de recursos que acaba de crear y complete el Nombre del centro de Iot (como iotea), elija Suscripción y Región si es necesario, y luego diríjase a la pestaña Tamaño y escleo.
En la pestaña Tamaño y escala, elija F1: Nivel gratuito o B1: Nivel básico en la combinación de precios y niveles de escala, el Nivel básico tomará 10,00 USD por mes. Finalmente, diríjase a la pestaña Revisar + crear, verifique su entrada y haga clic en Crear para crear un Iot Hub.
Paso 3. Configurar LORIOT
Ingrese al Iot Hub que acaba de crear, haga clic en Políticas de acceso compartido - dispositivo, copie la clave principal en la página de la derecha.
Abra una nueva ventana (o pestaña) del navegador, inicie sesión en su Panel de control de LORIOT, vaya a Aplicación - SampleApp, haga clic en Salida de datos en el grupo de Control - Cambiar. En el grupo Cambiar tipo de salida, elija Azure Iot Hub, complete el nombre de Iot Hub y la clave principal, y haga clic en el botón Confirmar cambio en la parte inferior.
Paso 4. Agregar dispositivo Iot
Haga clic en Dispositivos en la lista de la izquierda en LORIOT, copie su Dispositivo EUI.
Volver a Azure Iot Hub, haga clic en Iot devices en la lista a la izquierda de Iot Hub. Haga clic en Agregar, complete la EUI del dispositivo a la ID del dispositivo en la página abierta.
IMPORTANTE: ELIMINE TODO EL SEPRADOR EN EL DISPOSITIVO EUI, deje que se vea como 1122334455667788.
Haga clic en Guardar, todo listo.
Paso 5. Recibir mensajes D2C (dispositivo a nube)
Puede seguir Microsoft Docs para leer los mensajes D2C.
Paso 5: Programación de software
La programación de software se divide en 3 partes: nodo, puerta de enlace y sitio web; siga el tutorial anterior para programar la parte de nodo y la parte de puerta de enlace. Los pasos 1 a 8 de la parte del sitio web también son los mismos que en el tutorial anterior.
Si ya configuró Microsoft Azure, abra una terminal, ingrese a la carpeta raíz de su sitio web, active el entorno virtual:
cd ~ / iotea-hb
bin de origen / activar
instale el módulo Azure Event Hub a través de pip y cree un archivo new.py (como iothub_recv.py):
pip instalar azure-eventhub
toque iothub_recv.py
y luego escriba los códigos siguientes:
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. Reservados todos los derechos. # Licenciado bajo la licencia MIT. Consulte License.txt en la raíz del proyecto para obtener información sobre la licencia. # ------------------------------------------------- ------------------------------------------- de azure import eventhub de azure. eventhub import EventData, EventHubClient, Offset import logging logger = logging.getLogger ('azure.eventhub') import db, json, time, datetime def get_time (): cntime = datetime.datetime.now () + datetime.timedelta (horas = +8) fecha = cntime.strftime ('% Y - {} - {}'). Format (cntime.strftime ('% m'). Zfill (2), cntime.strftime ('% d'). Zfill (2)) hora = cntime.strftime ('% H'). Zfill (2) minuto = cntime.strftime ('% M'). Zfill (2) segundo = cntime.strftime ('% S'). Zfill (2) return [fecha, hora, minuto, segundo] def get_iothub_data (): list = ['0'] * 11 cliente = EventHubClient.from_iothub_connection_string ('', debug = True) receptor = cliente.add_receiver ("$ predeterminado", " 3 ", operación = '/ mensajes / eventos', offset = Offset (datetime.datetime.utcnow ())) intente: client.run () eh_info = client.get_eventhub_info () print (eh_info) recibido = receptor.receive (timeout = 5) imprimir (recibido) para el artículo recibido: yo ssage = json.loads (str (item.message)) print (mensaje) si 'datos' en el mensaje: datos = mensaje ['datos'] air_temp = str (int (datos [0: 2], 16)) air_hum = str (int (datos [2: 4], 16)) presión = str (int ((datos [4: 8]), 16)) co2 = str (int (datos [8:12], 16)) polvo = str (int (datos [12:16], 16)) iluminación = str (int (datos [16:20], 16)) o2 = str (round (int (datos [20:22], 16) / 10, 1)) suelo_temp = str (int (datos [22:24], 16)) suelo_hum = str (int (datos [24:26], 16)) voltaje = str (round (int (datos [26:28], 16) / int ('ff', 16) * 5, 1)) error = str (int (data [28:], 16)) list = [air_temp, air_hum, presión, co2, polvo, iluminación, o2, suelo_temp, ground_hum, voltage, error] finalmente: client.stop () return list while True: list = get_time () + get_iothub_data () db.insert (list) print (list)
Antes de ejecutar el programa, cambie su cadena de conexión en
cliente = EventHubClient.from_iothub_connection_string ('', debug = True)
puede obtener su cadena de conexión haciendo clic en Políticas de acceso compartido: iotowner en Iot Hub, la clave principal de la cadena de conexión en la página abierta es la cadena de conexión.
Después de eso, puede iniciar el programa:
gunicorn iothub_recv: aplicación