Hier möchte ich erklären wie man doch recht einfach ein Gatewy mittels der resin.io Plattform einrichten kann.
Benötigte Teile
- Raspberry PI 3
- RAK 831
- Converter Board (optional)
- Stromversorgung
Grobe Zusammenfassung
- Hardware zusammen stecken
- bei resin.io anmelden
- Etcher installieren
- resin OS auf SD karte brennen
- Gateway starten
- Software für das Gateway clonen
- Gateway in TTN konfigurieren
- Gateway in resin konfigurieren
- Software nach resin clonen
- beobachten wie das Gateway mit der Software versorgt wird und sich am TTN anmeldet
Die Procedur dauert bei gutem Netz für Anfänger ca. 60 Minuten
Anleitung
Die folgende Anleitung hat ihre Quelle in einem Artikel von Matthew Macdonald-Wallace von Mockingbird Consulting.
Das Things Network (TTN) ist eine kostengünstige, von der Community unterstützte Alternative zu 3G und WiFi. Es wird mit LoRaWAN betrieben, einer neuen drahtlosen Datenübertragungstechnologie, die große Reichweite mit geringen Strom- und Bandbreitenanforderungen kombiniert, was sie zu einer idealen Wahl für das Internet der Dinge macht. Das Netzwerk kann von jedem erweitert werden, der ein Gateway bereitstellen möchte.
In dieser Anleitung wird erklärt, wie mit resin.io ein LoRaWAN-Gateway auf Basis eines Raspberry Pi und der IMST iC880A-Gateway-Karte, bzw der alternativen Karte von RAK Wireless installiert und konfiguriert werden kann.
1. Anmelden bei resin.io und eine Applikation erstellen
Melde dich als erstes beim Dashboard von resin.io an und hinterlege einen SSH Key. Ohne SSH Key kann man seine Applikation nicht auf den Raspberry PI übertragen. Wie man einen SSH Key erstellt findet man gut beschrieben bei Thomas Krenn beschrieben. Den dort erzeugten Key am besten gleich noch für die Anmeldung bei Github setzen. Eine Anleitung wie man sich mit dem SSH Key bei Github anmeldet findet man unter dem folgenden Link SSH Key für Github.
Somit ist man nun gerüstet die Applikation bei Resin.io zu erstellen.
2. Konfiguration der Application
Nun gehst du in die neu erstellte Applikation und klickst auf Environment Variables um die Applikation zu konfigurieren.
Dort werden jetzt die folgenden Variablen erstellt:
Variable Name | Value |
---|---|
GW_CONTACT_EMAIL | Die Mailadresse welche auf der Karte angezeigt werden soll |
GW_REGION | Die Region im TTN (EU/US/CN/AU/AS/KR) in der das Gateway erstellt wird |
GW_RESET_PIN | Den GPIO Pin der als Reset genutzt wird. Beim RAK831 Converter Board ist dies der Pin 17 Welcher Pin es beim Converter Board für das IMST Gatewai ist kann ich nicht genau sagen, aber ich glaube das dort der PIN 21 oder 22 genutzt wird |
GW_TYPE | imst-ic880a-spi (wird auch für das RAK381 so gesetzt) |
SNMP_COMMUNITY | wenn du SNMP Netzwerk Überwachung nutzt muss hier ein eindeutiger Name stehen. Diese Variable ist optional |
3. Das Device mit Resion.io verbinden
- Nun wechselst du zurück auf Device um von dort das Resin OS herunter zu laden.
- vor dem Download von ResinOS müssen noch weitere Einstellungen gemacht werden. Hier bei uns laufen die TTN Gateways über das Freifunk Netz, also ist WIFI anzuklicken und die SSID auf slfl.freifunk.net zu stellen. Ein Passwort gibt es in dem Netz nicht, damit bleibt das Feld leer.
- Um nun das herunter geladene Immage auf die SD Karte zu brennen kann man am besten Etcher nutzen. Wenn noch nicht vorher geschehen laden wir nun Etcher auf unseren Rechner.
- Danach können wir Etcher starten, das herunter geladene ResinOS Immage auswählen, die SD Karte einlegen und als Device wählen um dann das Grundprogramm auf die SD zu brennen.
- wenn die SD fertig ist wird sie in den Raspberry PI gesteckt, die Module zusammen gesteckt und mit Strom versorgt.
- Wenn alles funktioniert hat meldet sich der Raspberry PI nun bei Resin.io an und es entsteht dort in der Applikation ein Device. Dieser Prozess dauert ca. 10 Minuten.
- Nun kann man den Namen des Device noch hübsch machen um im nächsten Schritt die Devide Environment Variables einzustellen.
4. Das Gateway bei TTN anmelden
In der Zwischenzeit können wir, wenn noch nicht geschehen, einen Account bei TTN erstellen und dort dann ein neues Gateway registrieren.
- Gateway registrieren kann man in der TTN Console
- Unter Gateways kann man nun ein neues Gateway registrieren.
- Dieses Gateway erhält eine eindeutige GatewayID, eine Beschreibung, der Frequenzplan muss gewählt werden, damit wird der Router automatisch gesetzt und die Location muss in der Karte ausgewählt werden.
- Jetzt kopieren wir uns diese Informationen so das wir die Werte gleich bei resio.io eintragen können.
5. Device Konfigurieren
- Klicke auf den Device Namen und danach auf Environment Variables
- Erstelle nun die folgenden Variablen mit deinen Werten
Variable Name | Value |
---|---|
GW_DESCRIPTION | Die Beschreibung des Gateways |
GW_ID | Die Gateway ID aus dem TTN |
GW_KEY | Der Gateway Key aus dem TTN ttn-account-v2.3PKAtkt… |
GW_REF_ALTITUDE | Die höhe über NN des Gateways wenn kein GPS eingerichtet ist |
GW_REF_LATITUDE | Die latitude des Gateways wenn kein GPS eingerichtet ist |
GW_REF_LONGITUDE | Die longitude des Gateways wenn kein GPS eingerichtet ist |
SNMP_SYS_CONTACT | Der SNMP System Kontakt wenn du SNMP nutzen möchtest |
SNMP_SYS_LOCATION | Die SNMP Location wenn du SNMP nutzen möchtest |
- Einträge speichern und zurück auf die Übersichtsseite des Device gehen.
6. Applikation auf das Device übertragen
Nun machen wir uns die Arbeit von Matthew Macdonald-Wallace und der Mockingbird Consulting. zu nutze und holen uns das GIT mit der Software zu uns auf den lokalen Rechner
- Das Git mit der Gateway Software lokal clonen
git clone https://github.com/mockingbirdconsulting/ttn-pkt-fwd-resin-setup.git
- Auf der Device Übersicht bei resin.io gibt es rechts oben einen Git Befehl den wir uns kopieren
- Diesen Befehl führen wir lokal aus um das lokale Repo mit dem Resin Repo des Device zu verbinden
git remote add resin @git.resin.io:/.git
- Übertragen des Repo nach resin.io
git push resin master
- Du kannst nun den Code Build beobachten und wenn alles erfolgreich ist, wird Ihnen ein Einhorn gezeigt, das dich wissen lässt, dass der Build abgeschlossen ist:
7. Überprüfen ob es funktioniert hat
- nun kannst du bei resin.io beobachten das der Raspberry PI erkennt das eine neue Software vorhanden ist und sich diese nun herunter lät, das Device am ende neu startet und sich wieder mit resin.io verbindet.
- Im der TTN Console wird nach einiger Zeit ein Wert bei “last seen” erscheinen und damit anzeigen das das Gatwes online ist.
- Wenn die Generierung der Gatway json Datei beim TTN durchgelaufen ist erscheint dein Gateway auch auf der TTN Map
Herzlichen Glückwunsch dein Gateway ist nun online
Wenn du es soweit geschafft hast, bist du auf dem besten Wege, eine Flotte von Gateways einzusetzen.
Wiederhole für jedes zusätzliche Gateway, das du bereitstellen möchtest, nur die Schritte 3 bis 5 – alle neuen Geräte, die der Anwendung hinzugefügt werden, erhalten automatisch den Gateway-Code, wenn sie eine Verbindung herstellen. Alle Updates, die du in Zukunft senden wirst, werden automatisch an alle Gateways gesendet und aktualisiert.
Und wenn du bereit bist, weitere IoT-Projekte in Angriff zu nehmen, haben wir eine lange Liste von Tutorials, um dir den Einstieg zu erleichtern!