Tabla de contenido:

Solución IoTea LoRa de Seeed (con Azure, actualización 1812): 5 pasos
Solución IoTea LoRa de Seeed (con Azure, actualización 1812): 5 pasos

Video: Solución IoTea LoRa de Seeed (con Azure, actualización 1812): 5 pasos

Video: Solución IoTea LoRa de Seeed (con Azure, actualización 1812): 5 pasos
Video: Seeed IoTea Lora Solution 2024, Junio
Anonim
Solución IoTea LoRa de Seeed (con Azure, actualización 1812)
Solución IoTea LoRa de Seeed (con Azure, actualización 1812)

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.

Imagen
Imagen

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.

Imagen
Imagen

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.

Imagen
Imagen

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.

Imagen
Imagen

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.

Imagen
Imagen

Paso 4. Agregar dispositivo Iot

Haga clic en Dispositivos en la lista de la izquierda en LORIOT, copie su Dispositivo EUI.

Imagen
Imagen

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.

Imagen
Imagen

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.

Imagen
Imagen

Después de eso, puede iniciar el programa:

gunicorn iothub_recv: aplicación

Recomendado: