Inhaltsverzeichnis:

Verbinden Sie Ihre Anlage mit der Cloud - Gunook
Verbinden Sie Ihre Anlage mit der Cloud - Gunook

Video: Verbinden Sie Ihre Anlage mit der Cloud - Gunook

Video: Verbinden Sie Ihre Anlage mit der Cloud - Gunook
Video: Betrieb der Hoymiles S-Miles Cloud (APP): Erstellen von Anlagen in 4 Schritten 2024, Juli
Anonim
Verbinden Sie Ihre Anlage mit der Cloud
Verbinden Sie Ihre Anlage mit der Cloud
Verbinden Sie Ihre Anlage mit der Cloud
Verbinden Sie Ihre Anlage mit der Cloud
Verbinden Sie Ihre Anlage mit der Cloud
Verbinden Sie Ihre Anlage mit der Cloud

In unserem Büro steht ein Kaktus, der nicht die Aufmerksamkeit bekommt, die er verdient. Da ich bei einem IT-Unternehmen arbeite und mit LoRa, serverlosen Lösungen und AWS experimentieren wollte, habe ich unseren Kaktus Steeve genannt und ihn mit der Cloud verbunden. Sie können Steeve jetzt von fast überall auf der Welt aus überwachen, indem Sie die Webseite verwenden, die ich für ihn erstellt habe: Steeves Webinterface.

Lieferungen

1 Kaktus / deine Lieblingspflanze

1 Arduino MKR WAN 1300 (Arduino-Shop)

1 868 mHz/914 mHz (je nach Standort) Antenne (Amazon)

1 LoRa Gateway, wenn nicht in Reichweite von einem (Amazon)

2 AA-Batterien

1 TMP102-Sensor (Amazon)

1 Bodenfeuchtesensor (Amazon)

Leitfähige Kabel (Amazon)

Lötkolben

Batteriehalter (Amazon)

Fall

optional: 3D-Drucker (wenn Sie einen 3D-Drucker verwenden können, benötigen Sie keinen Batteriehalter oder ein Gehäuse)

Schritt 1: Drucken des Gehäuses (optional)

Drucken des Gehäuses (optional)
Drucken des Gehäuses (optional)
Drucken des Gehäuses (optional)
Drucken des Gehäuses (optional)

Laden Sie diese Zip-Datei herunter, entpacken Sie sie und drucken Sie die Dateien aus. Die Dateien sind mit der Bedarfsmenge des Artikels gekennzeichnet.

Fühlen Sie sich frei, etwas zum Deckel hinzuzufügen, wie ich es getan habe.

Ich habe diese mit einer Schichthöhe von 0,2 mm und 15% Infill gedruckt.

Die Boxhaken können mit M3-Schrauben befestigt werden.

Wenn die Box gedruckt ist, können Sie mit etwas Draht die erforderlichen Verbindungen am Batteriehalter herstellen. Sie können das bereitgestellte Bild als Referenz verwenden.

Schritt 2: Verkabelung

Verdrahtung
Verdrahtung
  • Stellen Sie vor dem Einschalten des Arduino sicher, dass die Antenne angeschlossen ist. Das Einschalten des Arduino ohne die Antenne kann zu Schäden führen.
  • Schließen Sie alles gemäß dem mitgelieferten Schaltplan an.
  • Wenn Sie diese Drähte löten, stellen Sie sicher, dass Sie keine Pins an den Sensoren oder dem Arduino überbrücken!

Schritt 3: Erstellen Sie eine App im Things-Netzwerk

  • Gehen Sie zu https://www.thethingsnetwork.org/ und wenn Sie noch kein Konto haben, erstellen Sie eines.
  • Sobald Sie ein Konto haben und angemeldet sind, können Sie zur Konsole gehen (obere rechte Ecke, klicken Sie auf Ihren Benutzernamen und dann auf Konsole).
  • Klicken Sie auf Anwendungen.
  • Sobald die Seite geladen ist, sollten Sie in der Lage sein, auf "Anwendung hinzufügen" zu klicken.
  • Füllen Sie das Formular aus und wählen Sie unten die richtige Region aus. Klicken Sie auf „Anwendung hinzufügen“.
  • Herzlichen Glückwunsch, Sie haben gerade eine Anwendung im Netzwerk der Dinge erstellt. =D

Schritt 4: Verbinden des Arduino mit dem Things-Netzwerk

Um das Arduino zu programmieren, empfehle ich Ihnen, die Online-Arduino-Ide zu verwenden, dies macht das Laden in die benötigte Bibliothek sehr einfach.

  • Öffnen Sie Ihre Anwendung im Netzwerk der Dinge.
  • Es sollte ein Feld mit dem Titel Geräte angezeigt werden, klicken Sie auf Gerät registrieren.
  • Sie sehen ein Feld namens Geräte-ID. Dies ist der Name, den Sie Ihrem Sensor geben möchten. Es sollte eine andere mit der Bezeichnung Geräte-EUI geben. Dies ist der eindeutige Schlüssel, den Ihr Arduino verwendet, um sich zu authentifizieren.
  • Um diesen Schlüssel zu erhalten, müssen wir das Arduino mit einer bestimmten Skizze flashen. Die Skizze finden Sie hier. Dieser Sketch sollte laufen und über den seriellen Monitor soll das eui gesendet werden. Kopieren Sie die eui vom seriellen Monitor in das Geräte-EUI-Feld im Netzwerk der Dinge.
  • Klicken Sie auf Registrieren.
  • Jetzt haben wir unser Arduino in der Cloud registriert. Es ist Zeit, mit dem Senden von Nachrichten zu beginnen.
  • Sie sollten auf eine Seite namens Geräteübersicht weitergeleitet worden sein. Hier sehen Sie Ihr Geräte-Eui, App-Eui und App-Schlüssel.
  • Um fortzufahren, müssen wir die endgültige Skizze auf das Arduino flashen. Die Skizze finden Sie hier.
  • Wenn Sie diesen Link öffnen, sehen Sie, dass es mehrere Registerkarten gibt. Öffnen Sie die Registerkarte Geheimnisse. Es gibt 2 Schlüssel, die Sie vom Netzwerk der Dinge bis zur Secrets-Datei benötigen.
  • Sobald diese Schlüssel ausgefüllt sind, können Sie das Arduino flashen. Es beginnt einmal pro Stunde, Daten an das Netzwerk der Dinge zu senden.
  • Wenn alles richtig gelaufen ist, sollten Sie beim Zurücksetzen des Arduino (die einzige Schaltfläche auf dem Board) Nachrichten sehen können, die auf der Registerkarte Daten im Netzwerk der Dinge eingehen.

    • Wenn hier keine Daten angezeigt werden, kann dies bedeuten, dass Sie sich nicht in Reichweite eines korrekten LoRa-Gateways befinden. Sie können eine Karte mit allen verfügbaren Gateways auf https://thethingsnetwork.org überprüfen. Die Einkanal-LoRa-Gateways funktionieren nicht mit dem empfohlenen Arduino.
    • Wenn Sie sich nicht in Reichweite eines Gateways befinden, können Sie Ihr eigenes Gateway an das Netzwerk der Dinge koppeln. Diese Gateways haben normalerweise ziemlich gute Tutorials, wie man sie verbindet. Suchen Sie in der Angebotsliste nach dem empfohlenen Gateway.

Schritt 5: Interpretieren der Daten im Netzwerk der Dinge

  • Um brauchbare Daten aus den Nachrichten im Netzwerk der Dinge zu erhalten, müssen wir den Bytestream decodieren.
  • Gehen Sie auf das Dinge-Netzwerk zu Ihrer Anwendung.
  • Es sollte eine Registerkarte mit der Bezeichnung "Payload-Formate" vorhanden sein. Klicken Sie auf diese Registerkarte.
  • Es gibt 4 Schaltflächen nebeneinander: "Decoder", "Konverter", "Validator", "Encoder".
  • Klicken Sie auf Decoder.
  • Fügen Sie dort den folgenden Code ein.

function Decoder(bytes, port) { // Dekodiere eine Uplink-Nachricht aus einem Puffer // (Array) von Bytes zu einem Objekt von Feldern. var stringToDecode=bin2String(Bytes); var res=stringToDecode.split(" "); var temp=res[1]; var feucht= res[3]; var bat= res[5]; var decoded = {"temperature":temp, "moisture":moist, "battery":bat}; Rückkehr dekodiert; } Funktion bin2String(array) { var result = ""; for(var i = 0; i < array.length; ++i){ result+= (String.fromCharCode(array)); } Ergebnis zurückgeben;}

  • Klicken Sie auf Speichern.
  • Wenn Sie das Arduino zurücksetzen und Ihre Datenregisterkarte anzeigen, sollten Sie ein gut formatiertes Json-Objekt sehen, das Sie leicht lesen können.

Schritt 6: Verbinden Ihrer App mit AWS

Wir werden AWS verwenden, um die Daten aus dem Netzwerk der Dinge zu speichern und zu verwenden. Alle Ressourcen, die wir verwenden werden, fallen unter das kostenlose Kontingent von AWS.

  • Gehen Sie zu AWS
  • Einloggen oder Konto erstellen.
  • Um Ihre Anwendung im Things-Netzwerk mit AWS zu verbinden, empfehle ich, dieses Tutorial zu befolgen:
  • Nachdem Sie dieses Tutorial abgeschlossen haben, navigieren Sie in der aws-Konsole zum IoT-Core-Segment.
  • In der linken Menüleiste befindet sich ein Label "Verwalten", klicken Sie darauf.
  • Sie sollten nun eine Karte mit dem Namen Ihres Sensors sehen.
  • Klicken Sie erneut in der linken Menüleiste auf "Act"
  • Wenn es eine Karte mit der Aufschrift Store gibt, können Sie loslegen.
  • Wenn nicht, klicken Sie auf „Erstellen“.
  • Geben Sie den Namen "Shop" ein.
  • Sie können eine Beschreibung hinzufügen, wenn Sie möchten.
  • Geben Sie als Abfrageanweisung den folgenden Code ein:SELECT dev_id, metadata.time, payload_fields.temperature, payload_fields.moisture, payload_fields.battery FROM 'cactus_network/devices/+/up'.
  • Klicken Sie unter "Eine oder mehrere Aktionen festlegen" auf Aktion hinzufügen.
  • Wählen Sie "Nachricht in mehrere Spalten einer DynamoDb-Tabelle aufteilen (DynamoDBv2)".
  • Klicken Sie auf Aktion konfigurieren
  • Klicken Sie auf Neue Ressource erstellen.
  • Klicken Sie auf Tabelle erstellen und geben Sie Ihrer Tabelle einen Namen.
  • Geben Sie unter Primärschlüssel "dev_id" ein.
  • Klicken Sie auf Sortierschlüssel hinzufügen
  • Geben Sie "Zeit" ein.
  • Klicken Sie auf Erstellen.
  • Wenn alles gut gelaufen ist, sollten Sie sich wieder auf der Konfigurationsaktionsseite befinden.
  • Unter "Rolle auswählen oder erstellen, um AWS IoT-Zugriff zum Ausführen dieser Aktion zu gewähren" befindet sich ein leicht ausgegrauter Bereich.
  • Klicken Sie auf Rolle erstellen und geben Sie dieser Rolle einen Namen.
  • Klicken Sie auf Rolle erstellen.
  • Klicken Sie auf Aktion hinzufügen.
  • Klicken Sie auf Regel erstellen.
  • Sie sollten jetzt eine Regel haben, die automatisch alle eingehenden Nachrichten aus dem Netzwerk der Dinge in DynamoDb speichert.
  • Sie können überprüfen, ob dies funktioniert, indem Sie das Arduino zurücksetzen und in die soeben erstellte DynamoDb-Tabelle schauen.
  • Es sollte eine Aufzeichnung mit der Nachricht sein.

Schritt 7: Erstellen eines Lambda

Um die Daten aus DynamoDB zu lesen, schreiben wir ein AWS-Lambda.

  • In der AWS-Verwaltungskonsole unter Services gibt es einen Link mit der Bezeichnung "Lambda", klicken Sie auf diesen.
  • Klicken Sie auf Funktion erstellen.
  • Wähle einen Namen.
  • Legen Sie die Laufzeit auf Python 3.7 fest.
  • Klicken Sie auf Funktion erstellen.
  • Fügen Sie diesen Code in die integrierte IDE ein.

json importieren

import boto3 import time from datetime import datetime, timedelta from boto3.dynamodb.conditions import Key, Attr def lambda_handler(event, context): return retreive_data() def retreive_data(): # Hole die Dienstressource. dynamodb = boto3.resource('dynamodb') table = dynamodb. Table('TABLE NAME HERE') now = datetime.now() gestern = jetzt - timedelta(hours=24) fe = Key('time'). between(gestern.isoformat(), now.isoformat()) fed =Key('time').lt(yesterday.isoformat()) response = table.scan(FilterExpression=fe) recordsToDelete=table.scan(FilterExpression=fed) for f in recordsToDelete['Items']: #print(f) table.delete_item(Key={'dev_id':f['dev_id'], 'time':f['time']}) data = response['Items '] Daten zurückgeben

  • Ändern Sie den Tabellennamen in den von Ihnen gewählten.
  • Scrollen Sie nach unten zu Ausführungsrolle.
  • Klicken Sie auf Neue Rolle aus AWS-Richtlinienvorlagen erstellen.
  • Wähle einen Namen.
  • Wählen Sie unter Richtlinienvorlagen "Berechtigungen für Kabelbaum testen" und "Einfache Microservice-Berechtigungen" aus.
  • Klicken Sie auf Speichern.
  • Klicken Sie auf Testen.
  • Möglicherweise wird ein Popup angezeigt. Wählen Sie einfach einen Namen und speichern Sie.
  • Klicken Sie erneut auf Testen.
  • Oben sollte ein grünes Banner mit der Aufschrift "Ausführungsergebnis: erfolgreich" angezeigt werden.
  • Wenn Sie auf dieses Banner klicken, sollten Sie die Ausgabe dieser Funktion sehen, dies sollte eine Liste von Sensordaten sein.
  • Bitte beachten Sie, dass dieses Skript alle Daten löscht, die älter als 24 Stunden sind.
  • Falls Ihr Banner nicht grün sondern rot ist, haben Sie etwas übersehen und wenn Sie auf dieses Banner klicken, erhalten Sie die vollständige Fehlermeldung. In diesem Fall ist Google Ihr bester Freund.

Schritt 8: Erstellen eines API-Endpunkts

  • In der AWS-Verwaltungskonsole unter Services gibt es einen Link mit der Bezeichnung "api-gateway", klicken Sie auf diesen.
  • Klicken Sie auf API erstellen.
  • Stellen Sie sicher, dass sowohl "REST" als auch "New API" ausgewählt sind.
  • Wählen Sie einen Namen für Ihre API.
  • Klicken Sie auf API erstellen.
  • Es sollte jetzt eine Schaltfläche mit der Bezeichnung Aktionen auf dem Bildschirm sein, klicken Sie darauf.
  • Klicken Sie dann auf Ressource erstellen.
  • Als Ressourcenname sollten Sie etwas Einfaches wie "plant" oder "plant-data" verwenden.
  • Klicken Sie auf Ressource erstellen.
  • Auf der linken Seite sollte nun der Name stehen, den Sie gerade eingegeben haben. klicken Sie auf diesen Namen.
  • Klicken Sie nun erneut auf Aktionen und dann auf Methode hinzufügen.
  • Wählen Sie ERHALTEN.
  • Klicken Sie auf das Häkchen.
  • Es sollte ein Textfeld mit der Bezeichnung Lambda-Funktion vorhanden sein.
  • Geben Sie hier den Namen ein, den Sie der Lambda-Funktion gegeben haben.
  • Klicken Sie auf Speichern.
  • Möglicherweise wird ein Popup angezeigt, das Sie warnt, dass zusätzliche Berechtigungen erstellt werden.
  • Akzeptieren Sie dieses Popup.
  • Klicken Sie nun unter Aktionen auf Cors aktivieren.
  • Klicken Sie auf "CORS aktivieren und vorhandene CORS-Header ersetzen".
  • Klicken Sie auf „Ja, …“.
  • Klicken Sie erneut auf Aktionen und dann auf API bereitstellen.
  • Wählen Sie unter Bereitstellungsphase [Neue Phase] aus.
  • Wähle einen Namen.
  • Klicken Sie auf Bereitstellen.
  • Sie haben Ihre API jetzt online für die Welt veröffentlicht.
  • Klicken Sie nun auf dem Bildschirm, auf dem Sie angekommen sind, auf "GET" unter der soeben erstellten Ressource.
  • Oben sollte ein Link mit der Bezeichnung "URL aufrufen" sein.
  • Kopieren Sie diesen Link.
  • Fügen Sie es in einen Browser ein und drücken Sie die Eingabetaste.
  • Sie sollten die Daten sehen, die sich in der Datenbank befinden.

Schritt 9: Verbinden Sie Ihre Anlage mit dem Social Plant Network

  • Gehen Sie zu
  • Klicken Sie auf "Anmelden".
  • Klicken Sie auf Konto erstellen.
  • Füllen Sie das Formular aus, um Ihr Konto zu erstellen.
  • Bitte beachten Sie, dass der Benutzername auch Ihre E-Mail sein muss.
  • Klicken Sie auf Konto erstellen.
  • Möglicherweise müssen Sie Ihre E-Mail-Adresse bestätigen, bevor Sie fortfahren können.
  • Stellen Sie sicher, dass Sie eingeloggt sind.
  • Kehren Sie zur Startseite zurück (klicken Sie auf das Logo in der oberen linken Ecke).
  • Klicken Sie auf die Schaltfläche Einstellungen.
  • Füllen Sie das Formular aus, Sie sollten jedes Feld ausfüllen.
  • Der Link zur API ist der Link, den Sie gespeichert haben, nachdem Sie den API-Endpunkt erstellt haben.
  • Wenn alles ausgefüllt ist, klicken Sie auf die Schaltfläche Pflanze speichern. das system überprüft nun den eingegebenen api-link und speichert, falls dieser korrekt ist, ihre anlage im netzwerk.
  • Gehen Sie zurück zur Startseite.
  • Sie können jetzt alle Pflanzen anklicken, Sie sollten alle registrierten Pflanzen sehen können. deine pflanze sollte auch drin sein. Klicken Sie auf die Karte und Sie werden zu einer Übersichtsseite Ihrer Anlage weitergeleitet, die auch Ratschläge basierend auf den von Ihnen in den Einstellungen eingestellten Werten anzeigt.

Schritt 10: Lehnen Sie sich zurück und klopfen Sie sich auf den Rücken

Sie haben gerade eine Anlage mit dem Internet verbunden. Ziemlich beeindruckend, oder?

Empfohlen: