Inhoudsopgave:

Seeed IoTea LoRa-oplossing (met Azure, update 1812): 5 stappen
Seeed IoTea LoRa-oplossing (met Azure, update 1812): 5 stappen

Video: Seeed IoTea LoRa-oplossing (met Azure, update 1812): 5 stappen

Video: Seeed IoTea LoRa-oplossing (met Azure, update 1812): 5 stappen
Video: #304 New LoRa chips and Heltec LoRa boards. How good are they? (Arduino, SX1262, ASR6501) 2024, Juni-
Anonim
Seeed IoTea LoRa-oplossing (met Azure, update 1812)
Seeed IoTea LoRa-oplossing (met Azure, update 1812)

Microsoft Azure is een cloudservice die krachtigere en stabielere rekenkracht biedt. Deze keer probeerden we onze IoTea-gegevens ernaartoe te sturen.

Stap 1: Dingen die in dit project worden gebruikt

Hardware onderdelen

  • Grove - Kooldioxidesensor (MH-Z16)
  • Grove - Digitale lichtsensor
  • Grove - Stofsensor (PPD42NS)
  • Grove - Zuurstofsensor (ME2-O2-Ф20)
  • Bodemvocht- en temperatuursensor
  • LoRa LoRaWAN Gateway - 868MHz Kit met Raspberry Pi 3
  • Grove - Temperatuur&Humi&Barometer Sensor (BME280)

Software-apps en online services

  • Microsoft Visual Studio 2015
  • Microsoft Azure

Stap 2: Verhaal

Op de Mengding-berg ten noordoosten van Ya'an, Sichuan, loopt de bergrug van west naar oost in een zee van groen. Dit is een bekend gezicht voor de 36-jarige Deng, een van de weinige Mengding-theemakers van zijn generatie, met een plantage van 50 mu (= 3,3 hectare) op 1100 meter boven zeeniveau. Deng komt uit een familie van theemakers, maar het voortzetten van de familie-erfenis is geen gemakkelijke taak. “Onze theesoorten worden op grote hoogte in een biologische omgeving verbouwd om de uitstekende kwaliteit te garanderen. Maar tegelijkertijd is de groeidichtheid laag, zijn de kosten hoog en is de knop ongelijkmatig, waardoor het moeilijk is om thee te oogsten. Dat is de reden waarom thee uit de hoge bergen normaal gesproken kleine oogsten zijn en hun waarden niet worden weerspiegeld op de markt. De afgelopen twee jaar heeft Deng geprobeerd de consument bewust te maken van thee uit de hoge bergen om hun waarde te promoten. En toen hij Fan ontmoette, die op zoek was naar een plantage om de IoTea-technologie van Seeed te implementeren, werd een perfecte match gemaakt voor een oplossing.

Stap 3: Hardwareverbinding

Volg de vorige zelfstudie om uw hardware aan te sluiten.

Stap 4: Cloud configureren

Stap 1. Resourcegroep maken

Klik hier om in te loggen op Microsoft Azure. Voer vervolgens resourcegroepen in de lijst aan de linkerkant van het dashboard in, klik op Toevoegen om een resourcegroep toe te voegen.

Afbeelding
Afbeelding

Een resourcegroep wordt gebruikt om alle resources in een project te beheren. Verwijder na gebruik van cloudresources de resourcegroep om alle resources te verwijderen om kosten te voorkomen. Vul op de geopende pagina de naam van de resourcegroep in (zoals iotea), kies indien nodig de locatie van het abonnement en de resourcegroep en klik op Maken om een resourcegroep te maken.

Stap 2. Iot Hub maken

Nu kun je een cloudbron maken, klik links op Een bron maken, kies Internet of Things - Iot Hub, er wordt een nieuwe pagina geopend.

Kies op het tabblad Basis de resourcegroep die u zojuist hebt gemaakt en vul Iot Hub-naam in (zoals iotea), kies indien nodig Abonnement en regio en ga vervolgens naar het tabblad Grootte en scle.

Afbeelding
Afbeelding

Kies op het tabblad Grootte en schaal F1: Gratis laag of B1: Basislaag in Prijs- en schaallaagcombinatie, Basislaag kost 10,00 USD per maand. Ga ten slotte naar het tabblad Controleren + maken, controleer uw invoer en klik op Maken om een Iot Hub te maken.

Afbeelding
Afbeelding

Stap 3. Configureer LORIOT

Voer de IoT Hub in die u zojuist hebt gemaakt, klik op Beleid voor gedeelde toegang - apparaat, kopieer de primaire sleutel op de pagina aan de rechterkant.

Afbeelding
Afbeelding

Open een nieuw browservenster (of tabblad), log in op uw LORIOT-configuratiescherm, ga naar Toepassing - SampleApp, klik op Gegevensuitvoer in Controlegroep - Wijzigen. Kies in de groep Uitvoertype wijzigen de optie Azure Iot Hub, vul uw Iot Hub-naam en primaire sleutel in en klik onderaan op de knop Wijziging bevestigen.

Afbeelding
Afbeelding

Stap 4. Iot-apparaat toevoegen

Klik op Apparaten in de lijst aan de linkerkant in LORIOT, kopieer uw apparaat-EUI.

Afbeelding
Afbeelding

Terug naar Azure Iot Hub, klik op Iot-apparaten in de lijst aan de linkerkant van Iot Hub. Klik op Toevoegen, vul Apparaat-EUI in bij Apparaat-ID op de geopende pagina.

BELANGRIJK: VERWIJDER ALLE SCHEIDERS IN DEVICE EUI, laat het eruit zien als 1122334455667788.

Afbeelding
Afbeelding

Klik op Opslaan, klaar.

Stap 5. D2C-berichten (apparaat naar cloud) ontvangen

U kunt Microsoft Docs volgen om D2C-berichten te lezen.

Stap 5: Softwareprogrammering

Softwareprogrammering is opgesplitst in 3 delen: Node, Gateway en Website, volg de vorige tutorial om Node Part en Gateway Part te programmeren. Stappen 1 tot en met 8 van het websitegedeelte zijn ook hetzelfde als de vorige zelfstudie.

Als u Microsoft Azure al hebt geconfigureerd, opent u een terminal, voert u de hoofdmap van uw website in, activeert u de virtuele omgeving:

cd ~/iotea-hb

bron bin/activeren

installeer de Azure Event Hub-module via pip en maak een new.py-bestand (zoals iothub_recv.py):

pip install azure-eventhub

touch iothub_recv.py

en schrijf er vervolgens de volgende codes op:

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

# Auteursrecht (c) Microsoft Corporation. Alle rechten voorbehouden. # Gelicentieerd onder de MIT-licentie. Zie License.txt in de hoofdmap van het project voor licentie-informatie. # ------------------------------------------------- ------------------------------------------- van azure import eventhub van 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(hours = +8) datum = cntime.strftime('%Y-{}-{}').format(cntime.strftime('%m').zfill(2), cntime.strftime('%d').zfill(2)) uur = cntime.strftime('%H').zfill(2) minuut = cntime.strftime('%M').zfill(2) seconde = cntime.strftime('%S').zfill(2) return [datum, uur, minuut, seconde] def get_iothub_data(): list = ['0'] * 11 client = EventHubClient.from_iothub_connection_string('', debug=True) receiver = client.add_receiver("$default", " 3", operations='/messages/events', offset = Offset(datetime.datetime.utcnow())) probeer: client.run() eh_info = client.get_eventhub_info() print(eh_info) ontvangen = receiver.receive(timeout =5) print (ontvangen) voor item in ontvangen: mij 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(data[2:4], 16)) druk = str(int((data[4:8]), 16)) co2 = str(int(data[8:12], 16)) stof = str(int(data[12:16], 16)) verlichting = 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, pressure, co2, dust, lighting, o2, soil_temp, soil_hum, voltage, error] eindelijk: client.stop() return list while True: list = get_time() + get_iothub_data() db.insert(list) print(list)

Voordat u het programma uitvoert, wijzigt u uw verbindingsreeks in

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

u kunt uw verbindingsreeks ophalen door op Beleid voor gedeelde toegang te klikken - iotowner in Iot Hub, de primaire sleutel van de verbindingsreeks op de geopende pagina is de verbindingsreeks.

Afbeelding
Afbeelding

Daarna kunt u het programma starten:

gunicorn iothub_recv:app

Aanbevolen: