Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Microsoft Azure är en molntjänst som ger mer kraftfull och stabil datorkraft. Den här gången försökte vi skicka vår IoTea -data till den.
Steg 1: Saker som används i detta projekt
Hårdvarukomponenter
- Grove - koldioxidgivare (MH -Z16)
- Grove - Digital ljussensor
- Grove - Dammsensor (PPD42NS)
- Grove-Oxygen Sensor (ME2-O2-Ф20)
- Jordfuktighet och temperatursensor
- LoRa LoRaWAN Gateway - 868MHz -kit med Raspberry Pi 3
- Grove - Temp & Humi & Barometersensor (BME280)
Programvaruappar och onlinetjänster
- Microsoft Visual Studio 2015
- Microsoft Azure
Steg 2: Berättelse
På Mengdingberget nordost om Ya’an, Sichuan, löper bergskammen väst mot öst i ett grönt hav. Detta är en mycket bekant syn för 36-åriga Deng, en av de få Mengding-tebryggarna i sin generation, med en plantage på 50mu (= 3,3 hektar) som ligger 1100 m över havet. Deng kommer från en familj av tebryggare, men det är ingen lätt uppgift att fortsätta med arvet från familjen.”Våra teer odlas på hög höjd i en organisk miljö för att säkerställa dess utmärkta kvalitet. Men samtidigt är tillväxttätheten låg, kostnaden hög och spirande är ojämn, vilket gör te svårt att skörda. Det är därför högfjällste är normalt små skördar och deras värderingar återspeglas inte på marknaden.”Under de senaste två åren har Deng försökt öka konsumenternas medvetenhet om högbergste för att främja deras värde. Och när han träffade Fan, som letade efter en plantage för att implementera Seeeds IoTea -teknik, gjordes en perfekt matchning för en lösning.
Steg 3: Maskinvaruanslutning
Följ föregående handledning för att ansluta din maskinvara.
Steg 4: Molnkonfiguration
Steg 1. Skapa resursgrupp
Klicka här för att logga in på Microsoft Azure. Ange sedan resursgrupper i listan till vänster på instrumentpanelen, klicka på Lägg till för att lägga till en resursgrupp.
En resursgrupp används för att hantera alla resurser i projektet, efter att ha använt molnresurser, ta bort resursgrupp för att radera alla resurser för att undvika avgifter. På den öppnade sidan fyller du i resursgruppens namn (t.ex. iotea), väljer prenumeration och plats för resursgrupp, klicka på Skapa för att skapa en resursgrupp.
Steg 2. Skapa Iot Hub
Nu kan du skapa en molnresurs, klicka på Skapa en resurs till vänster, välj Internet of Things - Iot Hub, det öppnar en ny sida.
På fliken Grunder väljer du den resursgrupp du just skapade och fyller i Iot Hub -namn (t.ex. iotea), väljer prenumeration och region om det behövs och vänder sedan till fliken Storlek och skal.
På fliken Storlek och skala, välj F1: Gratis nivå eller B1: Grundnivå i Prissättning och kombinationsnivå, Basic Tier tar 10,00 USD per månad. Slutligen, gå till fliken Granska + skapa, kontrollera din inmatning och klicka på Skapa för att skapa en Iot Hub.
Steg 3. Konfigurera LORIOT
Ange Iot Hub som du just skapat, klicka på Policyer för delad åtkomst - enhet, kopiera primärnyckeln på sidan till höger.
Öppna ett nytt webbläsarfönster (eller flik), logga in på din LORIOT -kontrollpanel, gå till Program - SampleApp, klicka på Datautmatning i kontrollgrupp - Ändra. I gruppen Ändra utdatatyp väljer du Azure Iot Hub, fyller i ditt Iot Hub -namn och din primära nyckel och klickar på knappen Bekräfta ändring längst ned.
Steg 4. Lägg till Iot -enhet
Klicka på Enheter i listan till vänster i LORIOT, kopiera din enhet EUI.
Tillbaka till Azure Iot Hub, klicka på Iot -enheter i listan till vänster om Iot Hub. Klicka på Lägg till, fyll enhetens EUI till enhets -ID på den öppnade sidan.
VIKTIGT: RADERA ALL SEPRATOR I ENHET EUI, låt det se ut som 1122334455667788.
Klicka på Spara, allt klart.
Steg 5. Ta emot D2C (Device to Cloud) -meddelanden
Du kan följa Microsoft Docs för att läsa D2C -meddelanden.
Steg 5: Programvaruprogrammering
Programvaruprogrammering är uppdelad i tre delar: Nod, Gateway och Webbplats, följ föregående handledning för att programmera Noddel och Gateway -del. Steg 1 till 8 i webbplatsdelen är också samma som föregående självstudie.
Om du redan har konfigurerat Microsoft Azure, öppna en terminal, ange webbplatsens rotmapp, aktivera virtuellt miljö:
cd ~/iotea-hb
källfack/aktivera
installera Azure Event Hub -modulen via pip och skapa en new.py -fil (t.ex. iothub_recv.py):
pip installera azure-eventhub
tryck på iothub_recv.py
och skriv sedan koder efter det:
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. Alla rättigheter förbehållna. # Licensierad enligt MIT -licensen. Se License.txt i projektroten för licensinformation. # ------------------------------------------------- ------------------------------------------- från azurblå import eventhub från azurblå. 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 (hours = +8) date = cntime.strftime ('%Y-{}-{}'). Format (cntime.strftime ('%m'). Zfill (2), cntime.strftime ('%d'). Zfill (2)) timme = cntime.strftime ('%H'). Zfill (2) minut = cntime.strftime ('%M'). Zfill (2) andra = cntime.strftime ('%S'). Zfill (2) retur [datum, timme, minut, sekund] def get_iothub_data (): list = ['0'] * 11 klient = 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) received = receiver.receive (timeout = 5) skriv ut (mottaget) för objekt i mottaget: jag ssage = json.loads (str (item.message)) print (meddelande) om 'data' i meddelandet: data = meddelande ['data'] air_temp = str (int (data [0: 2], 16)) air_hum = str (int (data [2: 4], 16)) tryck = str (int ((data [4: 8]), 16)) co2 = str (int (data [8:12], 16)) damm = str (int (data [12:16], 16)) belysning = str (int (data [16:20], 16)) o2 = str (rund (int (data [20:22], 16) / 10, 1)) jord_temp = str (int (data [22:24], 16)) jord_hum = str (int (data [24:26], 16)) spänning = str (rund (int (data [26:28], 16) / int ('ff', 16) * 5, 1)) error = str (int (data [28:], 16)) list = [air_temp, air_hum, tryck, co2, damm, belysning, o2, jordtemp, jord_hum, spänning, fel] äntligen: client.stop () returlista medan True: list = get_time () + get_iothub_data () db.insert (list) print (list)
Innan du kör programmet ändrar du din anslutningssträng
klient = EventHubClient.from_iothub_connection_string ('', debug = True)
du kan få din anslutningssträng genom att klicka på Delade åtkomstpolicyer - iotowner i Iot Hub, anslutningssträngens primärnyckel på den öppna sidan är anslutningssträngen.
Därefter kan du starta programmet:
gunicorn iothub_recv: app