Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Microsoft Azure on pilveteenus, mis pakub võimsamat ja stabiilsemat arvutusvõimsust. Seekord proovisime oma IoTea andmeid sinna saata.
Samm: selles projektis kasutatud asjad
Riistvara komponendid
- Grove - süsinikdioksiidi andur (MH -Z16)
- Grove - digitaalne valgusandur
- Grove - tolmuandur (PPD42NS)
- Grove-hapnikuandur (ME2-O2-Ф20)
- Mulla niiskuse ja temperatuuri andur
- LoRa LoRaWAN Gateway - 868 MHz komplekt koos Raspberry Pi 3 -ga
- Grove - Temp & Humi & Barometer Sensor (BME280)
Tarkvararakendused ja võrguteenused
- Microsoft Visual Studio 2015
- Microsoft Azure
2. samm: lugu
Sichuanis Ya’anist kirdes Mengdingi mäel kulgeb mäeharja rohelises meres läänest itta. See on kõige tuttavam vaatepilt 36-aastasele Dengile, kes on üks vähestest oma põlvkonna Mengdingi tee valmistajatest ja mille istandus 50 m (= 3,3 hektarit) asub 1100 m kõrgusel merepinnast. Deng pärineb teekeetjate perekonnast, kuid perekonna pärandi jätkamine pole lihtne ülesanne. „Meie teed kasvatatakse orgaanilises keskkonnas suurel kõrgusel, et tagada selle suurepärane kvaliteet. Kuid samal ajal on kasvutihedus madal, kulud kõrged ja tärkamine ebaühtlane, mistõttu teed on raske koristada. Seetõttu on kõrgete mägede teed tavaliselt väikesed saagid ja nende väärtused ei kajastu turul.”Viimase kahe aasta jooksul on Deng püüdnud tõsta tarbijate teadlikkust mägiteest, et edendada nende väärtust. Ja kui ta kohtus Faniga, kes otsis istandust Seeedi IoTea tehnoloogia rakendamiseks, leiti lahendus ideaalselt.
Samm: riistvaraühendus
Riistvara ühendamiseks järgige eelmist õpetust.
Samm: pilve seadistamine
Samm 1. Looge ressursirühm
Microsoft Azure'i sisselogimiseks klõpsake siin. Seejärel sisestage armatuurlaua vasakpoolsesse loendisse ressursirühmad ja klõpsake käsku Lisa, et lisada ressursirühm.
Ressursirühma kasutatakse kõigi projekti ressursside haldamiseks, pärast pilveressursside kasutamist kustutage ressursirühm, et tasude vältimiseks kõik ressursid kustutada. Avatud lehel täitke ressursirühma nimi (näiteks iotea), valige tellimus ja vajadusel ressursirühma asukoht, klõpsake ressursirühma loomiseks nuppu Loo.
Samm 2. Looge Iot Hub
Nüüd saate luua pilveressursi, klõpsake vasakul nuppu Loo ressurss, valige Asjade Internet - Iot Hub, see avab uue lehe.
Vahekaardil Põhitõed valige äsja loodud ressursirühm ja täitke Iot Hubi nimi (nt iotea), vajadusel valige Tellimus ja piirkond ning seejärel vahekaart Suurus ja skaleerimine.
Vahekaardil Suurus ja skaala valige F1: Tasuta tase või B1: Põhitase hinnakujunduses ja skaalataseme kombinatsioon, põhitasand võtab 10,00 USD kuus. Lõpuks minge vahekaardile Ülevaade + loomine ja kontrollige sisendit ning klõpsake Iot Hubi loomiseks nuppu Loo.
Samm 3. Seadistage LORIOT
Sisestage äsja loodud Iot Hub, klõpsake jagatud juurdepääsu poliitikat - seade, kopeerige parempoolse lehe primaarvõti.
Avage uus brauseriaken (või vahekaart), logige sisse oma LORIOT -i juhtpaneelile, minge jaotisse Rakendus - SampleApp, klõpsake jaotises Juhtimisrühm - Muuda. Valige rühmas Muuda väljunditüüpi Azure Iot Hub, täitke oma Iot Hubi nimi ja esmane võti ning klõpsake allosas nuppu Kinnita muutmine.
Samm 4. Lisage Iot -seade
Klõpsake LORIOT -i vasakpoolses loendis nuppu Seadmed, kopeerige oma seadme EUI.
Tagasi Azure Iot Hub'i, klõpsake Iot Hub'i vasakpoolses loendis Iot -seadmeid. Avatud lehel klõpsake nuppu Lisa, täitke seadme EUI seadme ID -ga.
TÄHTIS: KUSTUTA KÕIK SEPRATOR SEADMEST EUI, laske välja näha nagu 1122334455667788.
Klõpsake nuppu Salvesta, kõik on valmis.
Samm 5. Võtke vastu D2C (seade pilve) sõnumeid
D2C -sõnumite lugemiseks saate järgida Microsofti dokumente.
Samm: tarkvara programmeerimine
Tarkvara programmeerimine on jagatud kolmeks osaks: Sõlm, Lüüs ja Veebisait, palun järgige Sõlmeosa ja Lüüsiosa programmeerimise eelmist õpetust. Veebisaidi osa sammud 1–8 on samad, mis eelmine õpetus.
Kui olete juba Microsoft Azure'i konfigureerinud, avage terminal, sisestage oma veebisaidi juurkaust ja aktiveerige virtuaalne keskkond.
cd ~/iotea-hb
allikakast/aktiveeri
installige Azure Event Hub moodul pipi kaudu ja looge uus.py -fail (näiteks iothub_recv.py):
pip installige azure-eventhub
puudutage iothub_recv.py
ja kirjutage sellele järgnevad koodid:
# --------------------------------------------------------------------------------------------
# Autoriõigus (c) Microsoft Corporation. Kõik õigused kaitstud. # Litsentsitud MIT litsentsi alusel. Litsentsiteabe saamiseks vaadake projekti juurest License.txt. # ------------------------------------------------- ------------------------------------------- Azure'ist imporditud eventhubist taevasinisest. eventhub import EventData, EventHubClient, Offset import logimise logija = logging.getLogger ('azure.eventhub') import db, json, time, datetime def get_time (): cntime = datetime.datetime.now () + datetime.timedelta (hours = +8) date = cntime.strftime ('%Y-{}-{}'). Formaat (cntime.strftime ('%m'). Zfill (2), cntime.strftime ('%d'). Zfill (2)) tund = cntime.strftime ('%H'). Zfill (2) minut = cntime.strftime ('%M'). Zfill (2) second = cntime.strftime ('%S'). Zfill (2)) return [kuupäev, tund, minut, sekund] def get_iothub_data (): list = ['0'] * 11 client = EventHubClient.from_iothub_connection_string ('', silumine = True) vastuvõtja = client.add_receiver ("$ default", " 3 ", operation = '/messages/events', offset = Offset (datetime.datetime.utcnow ())) proovige: client.run () eh_info = client.get_eventhub_info () print (eh_info) saanud = vastuvõtja.saada (timeout = 5) trükitud (saadud) üksuse kohta: sain ssage = json.loads (str (item.message)) print (message) if 'data' in the message: data = message ['data'] air_temp = str (int (data [0: 2], 16)) air_hum = str (int (andmed [2: 4], 16)) rõhk = str (int ((andmed [4: 8]), 16)) co2 = str (int (andmed [8:12], 16)) tolm = str (int (andmed [12:16], 16)) valgustus = str (int (andmed [16:20], 16)) o2 = str (ümmargused (int (andmed [20:22], 16) / 10, 1)) pinnase_temperatuur = str (int (andmed [22:24], 16)) pinnase_hum = str (int (andmed [24:26], 16)) pinge = str (ümmargune (int (andmed [26:28]), 16) / int ('ff', 16) * 5, 1)) error = str (int (andmed [28:], 16)) list = [air_temp, air_hum, pressure, co2, tolm, valgustus, o2, mullatemperatuur, pinnase_hum, pinge, viga] lõpuks: client.stop () tagastamisloend, samas True: list = get_time () + get_iothub_data () db.insert (list) print (list)
Enne programmi käivitamist muutke ühenduse string
klient = EventHubClient.from_iothub_connection_string ('', silumine = tõene)
saate oma ühenduse stringi hankida, klõpsates jagatud juurdepääsupoliitikaid - iot Huber Iot Hubis, ühenduse stringi esmane võti avatud lehel on ühenduse string.
Pärast seda saate programmi käivitada:
gunicorn iothub_recv: rakendus