
Dieses Beispiel zeigt, wie der AVR64DD32 verwendet werden kann, um einen Lorawan -Endknoten zu erzeugen, der Temperatur, Luftfeuchtigkeit, barometrische Druck und Bodenfeuchtigkeit überwacht und diese Daten alle drei Minuten über das Dings Network (TTN) überträgt. Der Knoten kann zwischen zehn Metern und fünf Kilometern von einem Lorawan -Tor in städtischen Umgebungen entfernt werden, aber die Reichweite ist für Vorstädten breiter. Das Design zeigt, wie ein Endknoten, selbst in großer Reichweite, so konfiguriert werden kann, dass sie sehr niedrige Stromversorgung konsumieren/eine lange Akkulaufzeit haben, während sie sicher wertvolle Daten bewegt. Dieses Design kann leicht skaliert werden, um die Erfassung von Bodenvariabilitätsdaten zu ermöglichen, indem zusätzliche Knoten in einem landwirtschaftlichen Grundstück platziert werden, ohne dass zusätzliche Gateways oder Infrastrukturen hinzugefügt werden müssen.
Diese Demo verwendet das RN2903A -Modul, das im 915 -MHz -Frequenzband arbeitet und für Projekte ansässig ist. Das Projekt ist jedoch leicht für die Auswahl eines alternativen Click Board ™ und Gateway für Ihre Region geeignet.
Fügen Sie die Komponenten der Nano -Adapterplatine hinzu.
Legen Sie den LR2 auf Mikrobus ™ 2 und das Wetter klicken Sie auf Mikrobus 1.
Schließen Sie die Feuchtigkeitssensor -Leitungen an, wie in Abbildung 1 gezeigt.
Fügen Sie zuletzt einen Jumper -Draht zwischen (PA1) und PD1 hinzu, um das Zurücksetzen des LR2 -Klicks zu ermöglichen. (PA1) ist standardmäßig nicht angeschlossen (da es bereits mit einer externen Uhr verbunden ist), dadurch ermöglicht dieses Projekt dem PD1 -Pin, das Reset -Signal zu steuern.
| Jumper -Draht | Stift |
|---|---|
| VCC - Red Draht aus dem Feuchtigkeitssensor | VCC |
| GND - Schwarzer Draht aus dem Feuchtigkeitssensor | GND |
| AOUT - gelber Draht aus dem Feuchtigkeitssensor | PD2 |
| (PA1) - Platzieren Sie einen Jumper zwischen | PD1 |

Abbildung 1. Hardware -Setup

Abbildung 2. Öffnen Sie das Projekt in MPLAB X.
Sobald das Projekt eröffnet wurde, kalibrieren Sie zunächst die Sensoren.
Um den Feuchtigkeitssensor zu kalibrieren, öffnen Sie die Datei application.c und ändern Sie den Anfangszustand in TEST_MOISTURE .

Abbildung 3. Setzen Sie den Anfangszustand auf test_moisture
Später können diese Einstellungen für Ihren Boden und Ihre Pflanzenbedürfnisse spezifisch gemacht werden. Beginnen Sie jedoch für die Kürze mit den oberen und unteren Grenzen für Messungen durch Testen in trockener Luft und in einer Tasse Wasser.
Legen Sie den Sensor so, dass er in trockener Luft aufgehängt ist.

Abbildung 4. Sensor in trockener Luft positioniert
Starten Sie den Data Visualizer mit den folgenden Einstellungen:
Baud Rate: 9600
Char -Länge: 8 Bit
Parität: Keine
Stop Bits: 1
Klicken Sie an das Terminal senden, dann das Gerät erstellen und programmieren.

Abbildung 5. Datenvisualisierer an das Terminal senden

Abbildung 6. Machen und programmieren Sie das Gerät
Sobald das Programm beginnt, werden Sie aufgefordert, die Taste zu drücken, um einen analog-digital-Wandler (ADC) zu erzeugen. Drücken Sie die Taste ein paar Mal mit dem Sensor in trockener Luft, platzieren Sie den Sensor eine Tasse Wasser und drücken Sie die Taste noch ein paar Mal.
Abbildung 7 zeigt zwei Messwerte. Beim Sammeln von trockenen Luftproben liegt der ADC -Wert nahe 3000. Beim Sammeln von Wasserproben liegt der Messwert nahe 1400.

Abbildung 7. ADC -Werte in trockener Luft und in einer Tasse Wasser
Beachten Sie Ihre Ergebnisse und öffnen Sie die Datei application.h . Ersetzen Sie die Definitionen für IN_MAX und IN_MIN durch Ihre Ergebnisse und verwenden Sie diese Werte, um den CONVERSION_PERCENT mit der angezeigten Formel zu berechnen.

Abbildung 8. Bodenfeuchtigkeitsdefinitionen
Um das Wetterklick zu kalibrieren, ist nur eine kleine Änderung erforderlich. Der Rest wird in der Software erledigt. Um einen genauen Druck zu haben, muss das Gerät Ihre aktuelle Höhe über dem Meeresspiegel verwenden. Geben Sie diesen Wert in Zeile 24 der bme.h -Datei ein.

Abbildung 9. Erhöhung für das Wetterklick
Richten Sie als nächstes die TTN -Seite des Projekts ein.
Wenn Sie dies noch nicht getan haben, richten Sie ein A -Konto bei TTN ein. Die Community Edition ist kostenlos für den fairen Gebrauch. Die Einrichtung des Kontos beginnt mit der Auswahl eines regionalen Clusters. Klicken Sie hier, um loszulegen.
Navigieren Sie nach dem Einrichten Ihres Kontos zu Ihrer Konsole und klicken Sie auf Gehen Sie zu Anwendungen .

Abbildung 10. Anwendungsaufbau
Klicken Sie auf die Schaltfläche Anwendung erstellen und befolgen Sie die Anweisungen, um eine Anwendung zu erstellen.

Abbildung 11. Anwendung erstellen
Klicken Sie auf Payload -Formatter und dann auf Uplink .

Abbildung 12. Anwendung Uplink Nutzlastformatierer
Wählen Sie unter Setup -Formattertyp*die benutzerdefinierte JavaScript -Formatatter aus.

Abbildung 13. Wählen Sie benutzerdefinierte JavaScript -Formatierer
Ersetzen Sie die Standard decodeUplink -Funktion durch das folgende Snippet:
function decodeUplink ( input ) {
var data = { } ;
data . temp = input . bytes [ 0 ] ;
data . humidity = input . bytes [ 1 ] ;
data . moisture = input . bytes [ 2 ] ;
data . pressure = ( input . bytes [ 3 ] + 900 ) ;
return {
data : data
} ;
}Abbildung 14. Dekodieren Sie Uplink -Code -Snippet
Klicken Sie auf Speichern und kehren Sie zur Übersicht zurück.
Klicken Sie auf der Seite "Anwendungsübersicht" auf die Schaltfläche "End Gerät registrieren" .

Abbildung 15. Registrieren eines Endgeräts für OTAA
Um das Gerät zu registrieren, sind einige Details aus dem Modul erforderlich. Öffnen Sie die Datei application.c erneut und ändern Sie den Status, um sich zu registrieren.

Abbildung 16. Ändern des Status, sich zu registrieren
Starten Sie den Data Visualizer und erstellen und programmieren Sie das Gerät erneut. Wenn das Programm ausgeführt wird, kopieren Sie die HWEUI und beachten Sie die Lorawan -Spezifikation.

Abbildung 17. Endgerätedetails im Data Visualizer
Kehren Sie zum Fenster "Endgeräte für das Register" auf TTN zurück und wählen Sie manuell aus. Wählen Sie Ihren Frequenzplan basierend auf Ihrem Standort und wählen Sie die Lorawan -Spezifikation. Geben Sie im Abschnitt "Bereitstellungsinformationen" alle Nullen für das Feld joineui ein und klicken Sie dann auf Bestätigung .

Abbildung 18. Registrieren eines neuen Geräts
Fügen Sie die HWEUI ein, die Sie zuvor in das Feld Deveui kopiert haben, und klicken Sie auf Generieren , um einen neuen Appey zu generieren.

Abbildung 19. Generieren Sie einen neuen Appey
Das Endgerät wird jetzt erstellt und muss über eine Nutzlastformaterin verfügen.
Der schnellste Weg, um das Formatierer einzurichten, besteht darin, die Schaltfläche Antragsformatierer einfügen . Klicken Sie auf die Schaltfläche Payload -Formatter , und wählen Sie dann die Option "benutzerdefinierte JavaScript -Formatierter" und drücken Sie die Antragsformatiererin einfügen .

Abbildung 20. Fügen Sie das Anwendungsformatier ein
Öffnen Sie auf TTN die Seite "Endgeräteübersicht". Es gibt zwei Felder, die für das Projekt kopieren und in die RN2XX3 -Header -Datei einfügen können. Klicken Sie auf das Deveui und fügen Sie sie in die Definition RN2xx3.h in das Feld hWeui ein. Kopieren Sie das Feld Appey und fügen Sie es in die Appey -Definition ein.

Abbildung 21. Kopieren Sie die Deveui und den Appey in die Zwischenablage

Abbildung 22. Aktualisieren Sie die HWEUI- und Appey -Definitionen
In diesem Beispiel geht davon aus, dass Sie entweder öffentliches TTN -Gateway in Ihrer Nähe haben oder selbst einen eingerichtet haben. Ein eigenes Gateway zu haben ist sehr hilfreich für die Fehlerbehebung, wenn Sie Probleme treffen. Wenn Sie Ihr eigenes Gateway einrichten möchten, finden Sie zwei hilfreiche Leitfäden unter: Hackster Project und Rak Developer Gateway.
Sobald Sie Zugriff auf ein Gateway haben, setzen Sie den Test fort, indem Sie die Datei application.c erneut öffnen und den Status wieder in Init ändern.

Abbildung 23. Wechseln Sie zurück in Init
Starten Sie den Data Visualizer erneut und programmieren Sie das Gerät neu.

Abbildung 24. Data Visualizer starten
Wenn die Anwendung beginnt, werden die Module initialisiert. Drücken Sie die Taste, um die TTN -Prozedur zu starten.
Die Einrichtung des Kanalfrequenzplans dauert ungefähr zehn Sekunden. Wenn die Join -Anfrage anschließend angenommen wird, sendet das Gerät seine erste Nutzlast. Wenn das Gerät keine Verbindung herstellt, werden einige Vorschläge gegeben. Häufige Probleme sind zu nahe an einem Gateway, falschen Schlüssel oder dem Gateway, das möglicherweise vorübergehend getrennt ist. Normalerweise sollten Sie einen Ausgang wie den in Abbildung 25 sehen.

Abbildung 25. Ausgabe, wenn die Join -Anfrage angenommen wird
Für dieses Projekt sendet der Knoten alle drei Minuten neue Daten. Einmal pro Tag sendet es die Daten als bestätigte Nutzlast wie in dieser ersten Übertragung. Bestätigte Nachrichten erfordern eine Bestätigung aus dem Netzwerk, verbrauchen aber auch Sendezeit am Gateway und eine zusätzliche Akkulaufzeit für den Knoten. Die nächsten 479 Nachrichten pro Tag werden also als unbestätigte Nachrichten gesendet.
Dieses Projekt sendet alle bestätigten Nachrichten auf Port 10 und unbestätigte Nachrichten auf Port 11. In Abbildung 26 finden Sie das Fenster Live -Daten für Anwendungsdaten, dass der Knoten nach dem Verbinden und Senden einer anfänglichen bestätigten Nachricht alle drei Minuten eine unbestätigte Nachricht an die Anwendung sendet.

Abbildung 26. Bestätigte Nachrichten auf Port 10 und unbestätigte Nachrichten auf Port 11
In diesem Beispiel wird angezeigt, wie ein Lorawan -Endknoten mit dem AVR64DD32 mit dem Mikroe LR2 -Klick, dem Mikroe -Wetter -Klick und einem Bodenfeuchtigkeitssensor mit hoher Reichweite unter Verwendung von geringer Leistung und einem Bodenfeuchtigkeitssensor eingerichtet wird.