Sommario:

Seeed IoTea LoRa Solution (con Azure, Update 1812): 5 passaggi
Seeed IoTea LoRa Solution (con Azure, Update 1812): 5 passaggi

Video: Seeed IoTea LoRa Solution (con Azure, Update 1812): 5 passaggi

Video: Seeed IoTea LoRa Solution (con Azure, Update 1812): 5 passaggi
Video: Seeed IoTea Lora Solution 2024, Dicembre
Anonim
Seeed IoTea LoRa Solution (con Azure, aggiornamento 1812)
Seeed IoTea LoRa Solution (con Azure, aggiornamento 1812)

Microsoft Azure è un servizio cloud che fornisce una potenza di calcolo più potente e stabile. Questa volta abbiamo provato a inviargli i nostri dati IoTea.

Passaggio 1: cose utilizzate in questo progetto

Componenti hardware

  • Grove - Sensore di anidride carbonica (MH-Z16)
  • Grove - Sensore di luce digitale
  • Grove - Sensore di polvere (PPD42NS)
  • Grove - Sensore di ossigeno (ME2-O2-Ф20)
  • Sensore di umidità e temperatura del suolo
  • LoRa LoRaWAN Gateway - Kit 868MHz con Raspberry Pi 3
  • Grove - Sensore Temp&Humi&Barometro (BME280)

App software e servizi online

  • Microsoft Visual Studio 2015
  • Microsoft Azure

Fase 2: Storia

Sul monte Mengding a nord-est di Ya'an, nel Sichuan, la cresta della montagna corre da ovest a est in un mare di verde. Questo è uno spettacolo molto familiare per il 36enne Deng, uno dei pochissimi produttori di tè Mengding della sua generazione, con una piantagione di 50 mu (= 3,3 ettari) situata a 1100 m sul livello del mare. Deng proviene da una famiglia di produttori di tè, ma portare avanti l'eredità di famiglia non è un compito facile. “I nostri tè sono coltivati ad alta quota in un ambiente biologico per garantirne l'eccellente qualità. Ma allo stesso tempo, la densità di crescita è bassa, il costo è alto e il germogliamento è irregolare, rendendo il tè difficile da raccogliere. Ecco perché i tè di alta montagna sono normalmente raccolti piccoli e i loro valori non si riflettono sul mercato. Negli ultimi due anni, Deng ha cercato di sensibilizzare i consumatori sul tè di alta montagna per promuoverne il valore. E quando ha incontrato Fan, che stava cercando una piantagione per implementare la tecnologia IoTea di Seeed, è stata creata una soluzione perfetta.

Passaggio 3: connessione hardware

Segui il tutorial precedente per connettere il tuo hardware.

Passaggio 4: configurazione cloud

Passaggio 1. Creare un gruppo di risorse

Fare clic qui per accedere a Microsoft Azure. Quindi, inserisci Gruppi di risorse nell'elenco a sinistra del dashboard, fai clic su Aggiungi per aggiungere un gruppo di risorse.

Immagine
Immagine

Un gruppo di risorse viene utilizzato per gestire tutte le risorse nel progetto, dopo aver utilizzato le risorse cloud, eliminare il gruppo di risorse per eliminare tutte le risorse per evitare addebiti. Nella pagina aperta, inserisci il nome del gruppo di risorse (come iotea), scegli Sottoscrizione e Posizione del gruppo di risorse se necessario, fai clic su Crea per creare un gruppo di risorse.

Passaggio 2. Crea un hub Iot

Ora puoi creare una risorsa cloud, fai clic su Crea una risorsa a sinistra, scegli Internet of Things - Iot Hub, si aprirà una nuova pagina.

Nella scheda Basics, scegli il Resource Group appena creato e inserisci Iot Hub Name (come iotea), scegli Subscription e Region se necessario, quindi passa alla scheda Size and scle.

Immagine
Immagine

Nella scheda Dimensioni e scala, scegli F1: Livello gratuito o B1: Livello di base in Combinazione di prezzi e scalabilità, il livello di base richiederà 10.00 USD al mese. Infine, passa a Rivedi + crea scheda controlla l'input e fai clic su Crea per creare un hub Iot.

Immagine
Immagine

Passaggio 3. Configura LORIOT

Inserisci l'hub Iot che hai appena creato, fai clic su Criteri di accesso condiviso - dispositivo, copia la chiave primaria nella pagina a destra.

Immagine
Immagine

Aprire una nuova finestra (o scheda) del browser, accedere al Pannello di controllo LORIOT, passare a Applicazione - SampleApp, fare clic su Output dati nel gruppo Controllo - Modifica. Nel gruppo Modifica tipo di output scegliere Hub Iot di Azure, inserire il nome dell'hub Iot e la chiave primaria e fare clic sul pulsante Conferma modifica in basso.

Immagine
Immagine

Passaggio 4. Aggiungi dispositivo Iot

Fare clic su Dispositivi nell'elenco a sinistra in LORIOT, copiare l'EUI del dispositivo.

Immagine
Immagine

Tornando all'hub Iot di Azure, fare clic su Dispositivi Iot nell'elenco a sinistra dell'hub Iot. Fare clic su Aggiungi, compilare l'EUI del dispositivo in ID dispositivo nella pagina aperta.

IMPORTANTE: ELIMINA TUTTO IL SEPARATORE IN DEVICE EUI, lascia che assomigli a 1122334455667788.

Immagine
Immagine

Fai clic su Salva, tutto fatto.

Passaggio 5. Ricevi messaggi D2C (da dispositivo a cloud)

Puoi seguire Microsoft Docs per leggere i messaggi D2C.

Passaggio 5: programmazione del software

La programmazione del software è suddivisa in 3 parti: nodo, gateway e sito Web, seguire il tutorial precedente per programmare la parte del nodo e la parte del gateway. Anche i passaggi da 1 a 8 della parte del sito Web sono gli stessi dell'esercitazione precedente.

Se hai già configurato Microsoft Azure, apri un terminale, entra nella cartella principale del tuo sito web, attiva l'ambiente virtuale:

cd ~/iotea-hb

raccoglitore sorgente/attiva

installa il modulo Hub eventi di Azure tramite pip e crea un file new.py (come iothub_recv.py):

pip install azure-eventhub

toccare iothub_recv.py

e quindi scrivi i codici seguenti:

# --------------------------------------------------------------------------------------------

# Copyright (c) Microsoft Corporation. Tutti i diritti riservati. # Concesso in licenza con la licenza MIT. Vedere License.txt nella radice del progetto per informazioni sulla licenza. # -------------------------------------------------- ------------------------------------------- da azure import eventhub da azure. eventhub import EventData, EventHubClient, Offset import import logger = logging.getLogger('azure.eventhub') import db, json, time, datetime def get_time(): cntime = datetime.datetime.now() + datetime.timedelta(hours = +8) date = cntime.strftime('%Y-{}-{}').format(cntime.strftime('%m').zfill(2), cntime.strftime('%d').zfill(2)) ora = cntime.strftime('%H').zfill(2) minuto = cntime.strftime('%M').zfill(2) secondo = cntime.strftime('%S').zfill(2) return [data, ora, minuto, secondo] def get_iothub_data(): list = ['0'] * 11 client = EventHubClient.from_iothub_connection_string('', debug=True) receiver = client.add_receiver("$default", " 3", operation='/messages/events', offset = Offset(datetime.datetime.utcnow())) try: client.run() eh_info = client.get_eventhub_info() print(eh_info) ricevuto = receiver.receive(timeout =5) stampa (ricevuto) per l'articolo ricevuto: me ssage = json.loads(str(item.message)) print(message) if 'data' in message: data = message['data'] air_temp = str(int(data[0:2], 16)) air_hum = str(int(dati[2:4], 16)) pressione = str(int((dati[4:8]), 16)) co2 = str(int(dati[8:12], 16)) polvere = str(int(data[12:16], 16)) illuminazione = str(int(data[16:20], 16)) o2 = str(round(int(data[20:22], 16) / 10, 1)) soil_temp = str(int(data[22:24], 16)) soil_hum = str(int(data[24:26], 16)) voltage = str(round(int(data[26:28], 16) / int('ff', 16) * 5, 1)) error = str(int(data[28:], 16)) list = [air_temp, air_hum, pressione, co2, polvere, illuminazione, o2, soil_temp, soil_hum, voltage, error] infine: client.stop() restituisce la lista mentre True: list = get_time() + get_iothub_data() db.insert(list) print(list)

Prima di eseguire il programma, cambia la stringa di connessione in

client = EventHubClient.from_iothub_connection_string('', debug=True)

è possibile ottenere la stringa di connessione facendo clic su Criteri di accesso condivisi - iotowner nell'hub Iot, la chiave primaria della stringa di connessione nella pagina aperta è la stringa di connessione.

Immagine
Immagine

Successivamente, puoi avviare il programma:

gunicorn iothub_recv:app

Consigliato: