Erste Schritte mit dem RAK 831 Lora Gateway und RPi3
Dieses Projekt führt Sie durch alle Schritte, die erforderlich sind, um Ihr RAK 831 Lora Gateway-Modul mit WLAN als Backhaul zum Laufen zu bringen.
Geschichte
Einführung
Diese Schritt-für-Schritt-Anleitung richtet sich an Entwickler, die ihr eigenes Lora-Gateway mit dem fantastischen Lora-Funk-Front-End-Modul RAK831 von RAK Wireless entwickeln möchten. Das Handbuch setzt Grundkenntnisse des Raspberry-Pi-Ökosystems, der Hardware und des zugehörigen Debian-Betriebssystems voraus. Das Handbuch setzt auch Grundkenntnisse des GPIO und der Peripherie auf dem Raspberry Pi voraus. SO Fangen wir an:
Was ist LoRA?
LoRa Alliance™-Technologie. LoRaWAN™ ist eine Low Power Wide Area Network (LPWAN)-Spezifikation für drahtlose batteriebetriebene Dinge in einem regionalen, nationalen oder globalen Netzwerk. LoRaWAN zielt auf die wichtigsten Anforderungen des Internets der Dinge wie sichere bidirektionale Kommunikation, Mobilitäts- und Lokalisierungsdienste ab.
Mit freundlicher Genehmigung von Semtech
Das obige Diagramm zeigt die verschiedenen Teile der Lora-Wireless-Architektur. Einige der wichtigen Teile werden im Folgenden kurz erklärt:
Hauptmerkmale der LoRa-Technologie und des LoRaWAN-Protokolls
· GEOLOCATION:Ermöglicht GPS-freie Tracking-Anwendungen mit geringem Stromverbrauch
· NIEDRIGE KOSTEN:Reduziert die Kosten auf drei Arten:Infrastrukturinvestitionen, Betriebskosten und Endknotensensoren
· STANDARDISIERT:Verbesserte globale Interoperabilität beschleunigt die Einführung und Einführung von LoRaWAN-basierten Netzwerken und IoT-Anwendungen
· LOW POWER:Speziell für einen geringen Stromverbrauch entwickeltes Protokoll, das die Batterielebensdauer auf bis zu 20 Jahre verlängert
· LANGE REICHWEITE:Eine einzige Basisstation bietet eine tiefe Durchdringung in dichten Stadt-/Indoor-Regionen und verbindet ländliche Gebiete bis zu 48 km entfernt
· SICHER:Eingebettete Ende-zu-Ende-AES128-Verschlüsselung
· HOHE KAPAZITÄT:Unterstützt Millionen von Nachrichten pro Basisstation, ideal für öffentliche Netzbetreiber, die viele Kunden bedienen
Der RAK 831 ist ein LorA-Radio-Frontend; d.h. es fungiert als Empfänger eingehender Lora-Datenpakete und leitet diese an einen Aggregator-Management-Software-/Hardware-Host weiter. Es kann auch LoRA-Datenpakete basierend auf der Anfrage des Host-Boards übertragen. In unserem Fall ist ein Raspberry Pi 3 das Host-Board, das das RAK 831-Frontend steuert.
Auswahl des Backhaul
Was ist ein Backhaul? Backhaul bezieht sich darauf, wie der Raspberry Pi mit dem Internet verbunden wird. Diese Anleitung konzentriert sich auf die Verwendung von Wifi als Backhaul, Sie können jedoch auch Ethernet oder 3G/4G verwenden. Wenn Ethernet in der Nähe des Gateways verfügbar ist, ziehen Sie es WLAN oder 3G/4G vor. Dies liegt daran, dass ein zusätzliches Funksignal im Inneren des Gehäuses Rauschen verursacht. Die Software kann mit der lauten Umgebung umgehen, daher ist dies kein großes Problem, aber je weniger laut, desto besser. Sie können diese Option mit Power-over-Ethernet kombinieren, um die Verkabelung bis zum Gateway zu minimieren.
Wenn Sie sich andererseits für WLAN anstelle von Ethernet entscheiden, versuchen Sie, einen Dongle mit externer Antenne zu verwenden und die Antenne außerhalb des Gehäuses zu platzieren, um weniger Rauschen in der Box zu haben.
Hardware einrichten:
Bevor wir alles anschließen und einschalten, lassen Sie uns die folgenden Konfigurationen auf dem Raspberry Pi und dem RAK 831-Modul vornehmen:
HIMBEERE PI
1) Holen Sie sich das Raspberry Pi 3 Board und erhalten Sie eine 8-GB-Micro-SD-Karte mit der Raspbian-Software. Sie können sogar eine Noobs-SD-Karte mit vorinstallierter Software kaufen. Befolgen Sie zum Flashen des Betriebssystems auf der SD-Karte die Anweisungen hier: https://www.raspberrypi.org/learning/hardware-guide/
2) Verbinden Sie den Himbeer-Pi mit dem 5V 2A-Netzteil. DIES IST SEHR WICHTIG. Das Lora-Modul kann während aktiver drahtloser Transaktionen einen Spitzenwert von 700 mA verbrauchen und verfügt daher über einen guten Strombaustein, um den Himbeer-Pi mit Strom zu versorgen
Himbeer-Pi v3
RAK 831:
1) Bevor Sie das Board einschalten, besorgen Sie sich die Antennen, die in Ihrem Kit enthalten waren, und schließen Sie sie an die Antennen-Schraubklemme an. DAS IST WICHTIG.
Raspberry Pi v3, RAK 831 Modul und ein Lora Node
Verbindungsdetails:
Hier ist eine Tabelle, die zeigt, wie das rak831-Modul mit dem Himbeer-Pi verbunden wird:
rpi v3 zu rak 831 Pin-VerbindungDie rak 831-Siebdruckkarte zu den rak 831-Pins.rak 831-Siebdruckzuordnung zu den rak 831-Pins
Um das Raspberry Pi-Pin-Layout zu verstehen, gehen Sie zu: https://www.raspberrypi.org/documentation/usage/gpio/ für Details
Hinweise:
- Der Reset-Pin kann mit jedem GPIO auf dem Raspberry Pi 3 verbunden werden.
- Stellen Sie unbedingt sicher, dass Sie die Stromversorgungs-Pins richtig anschließen, um Schäden an der RAK 831-Platine zu vermeiden.
SPI aktivieren:
Das SPI-Peripheriegerät ist standardmäßig nicht eingeschaltet. Um es zu aktivieren, gehen Sie wie folgt vor.
- Führen Sie sudo raspi-config aus.
- Wählen Sie mit dem Abwärtspfeil 9 Erweiterte Optionen aus
- Pfeil nach unten zu A6 SPI.
- Wählen Sie Ja aus, wenn Sie aufgefordert werden, SPI zu aktivieren. ,
- Wählen Sie auch "Ja", wenn gefragt wird, ob das Kernel-Modul automatisch geladen werden soll.
- Wählen Sie mit dem Rechtspfeil die Schaltfläche
aus.
- Wählen Sie "Ja", wenn Sie zum Neustart aufgefordert werden.
Raspi-config für SPI
Das System wird neu gestartet. Melden Sie sich an und geben Sie den folgenden Befehl ein
>ls /dev/*spi*
Der Pi sollte antworten mit
/dev/spidev0.0 /dev/spidev0.1
Diese stellen SPI-Geräte auf den Chip-Aktivierungspins 0 bzw. 1 dar. Diese Pins sind im Pi fest verdrahtet. Normalerweise bedeutet dies, dass die Schnittstelle höchstens zwei Peripheriegeräte unterstützt, aber es gibt Fälle, in denen mehrere Geräte in Reihe geschaltet werden können und sich ein einziges Chip-Aktivierungssignal teilen.
Versorgen Sie das Board mit Strom:
Wie bei allen Wireless-Projekten benötigen sie in der Regel mehr Strom, als die Hostplatine über die Versorgungspins bereitstellen kann. Die beiden folgenden Schemata zeigen auf, wie Sie den RAK 831 und den Raspberry Pi 3 mit Strom versorgen können.
1) Versorgen Sie die 5V-Schiene vom Raspberry Pi
2) Versorgen Sie die 5-V-Schiene des Raspberry Pi und des RAK831 separat
Softwareinstallation:
Auf dem Raspberry Pi können Sie die folgenden Schritte ausführen, um die erforderliche Software zu installieren:
- SPI aktivieren:
Verwenden Sie das Dienstprogramm raspi-config, um SPI zu aktivieren ([5] Schnittstellenoptionen -> P4 SPI) und auch das Dateisystem zu erweitern ([7] Erweiterte Optionen -> A1 Dateisystem erweitern):
$ sudo raspi-config
- Stellen Sie sicher, dass Git installiert ist
Sudo apt-get update
Sudo apt-get upgrade
Sudo apt-get install git
- Verwalte deine WLAN-Verbindung auf dem Himbeer-Pi
- Konfigurieren Sie die WLAN-Anmeldedaten (weitere Details finden Sie hier)
$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Und fügen Sie den folgenden Block am Ende der Datei hinzu und ersetzen Sie SSID und Passwort entsprechend Ihrem Netzwerk:
network={
ssid="The_SSID_of_your_wifi"
psk="Your_wifi_password"
}
- Klonen Sie das Installationsprogramm und starten Sie die Installation
$ git clone -b spi https://github.com/ttn-zh/ic880a-gateway.git ~/ic880a-gateway
$cd ~/ic880a-gateway
$ sudo ./install.sh spi
- Im Installationsschritt werden Sie gefragt, ob Sie die Remote-Konfiguration aktivieren möchten. Geben Sie „y“ oder „yes“ ein und fahren Sie mit der Installation fort. Zu Beginn der Kommandozeilen-Installation würde Ihnen das Skript die Gateway-EUI anzeigen, die für die nächsten Schritte wichtig ist. BEACHTEN SIE ES UNTEN !
- Wenn Sie die Remote-Konfigurationsoption verwenden möchten, stellen Sie bitte sicher, dass Sie eine JSON-Datei mit dem Namen Ihrer Gateway-EUI (z. B. B827EBFFFE7B80CD.json) im Gateway Remote Config-Repository hier erstellt haben: https://github.com/ttn -zh/gateway-remote-config. Forken Sie das Repository, fügen Sie Ihre
.json-Datei mit der richtigen Konfiguration hinzu und übergeben Sie dann das gegabelte Repository. Wenn Sie fertig sind, senden Sie einen Pull-Request an das Master-Repository und die Datei sollte am nächsten Tag im Repository angezeigt werden. Ein Beispiel-Json ist unten gezeigt:
{
"gateway_conf":{
"gateway_ID":"die ID, die Sie in der Ausgabe der install.sh-Konsole notiert haben",
"servers":[
{
"server_address":"der Router, zu dem Sie eine Verbindung herstellen möchten",
"serv_port_up":1700,
"serv_port_down":1700,
"serv_enabled":true
}
],
„ref_latitude“:die Breite des Rak 831-Gateways,
„ref_longitude“:die Länge des Rak 831-Gateways,
„ref_altitude“:40,
"contact_email":"Kontakt-E-Mail des Gateway-Eigentümers",
"Beschreibung":"eine kurze Beschreibung"
}
}
Hinweis:
Eine Liste gültiger Router finden Sie hier:https://www.thethingsnetwork.org/wiki/Backend/Connect/Gateway
- Standardmäßig ändert das Installationsprogramm den Hostnamen Ihres Raspberry Pi in ttn-gateway (um Kollisionen mit anderen Raspberry Pis in Ihrem Netzwerk zu vermeiden). Sie können dies im Nicht-Remote-Konfigurationsmodus überschreiben.
- HURRAY Ihr Gateway sollte jetzt funktionieren. Stellen Sie sicher, dass Sie das Gateway am nächsten Tag neu starten, damit Ihre Json-Datei ordnungsgemäß auf das RPi3 heruntergeladen wird.
- Beachten Sie, dass die global_config.json in wie folgt angepasst werden muss:
https://github.com/TheThingsNetwork/gateway-conf/blob/master/US-global_conf.json
für diejenigen, die den mp_pkt_fwd anstelle des alten Poly-Paketweiterleitungssystems verwenden möchten, das hier zu hören ist, und dasselbe mit der bereitgestellten Anleitung installieren:
https://github.com/kersing/packet_forwarder/tree/master/mp_pkt_fwd. Auch hier können Sie die Datei global_conf..json im Stammverzeichnis des Projekts sehen. Stellen Sie nur sicher, dass Sie die Datei bearbeiten (imp-Abschnitte unten beschrieben) und nach der Kompilierung in den Ordner bin kopieren.
Einige konfigurierbare Entities in global_conf.json:
Die Datei global_conf.json finden Sie in ./bin/global_conf.json in der Basis Ihres Projektverzeichnisses, nachdem das Installationsskript ausgeführt wurde. Hier ist eine Liste einiger Entitäten, die Sie möglicherweise in der Datei global_conf.json für Ihre spezielle Gateway-Konfiguration bearbeiten möchten:
1) Konfiguration "radio_0" oder "radio_1", insbesondere Frequenzparameter und minimale und maximale Frequenz-Sweep-Parameter.
2) Abschnitt "gateway_conf". Insbesondere die Gateway-ID oder die EUI Ihres Gateways.
3) Server-Up- und -Down-Port im gleichen gateway_conf-Objekt zusammen mit Ihrer TTN-Serveradresse oder der Adresse Ihres eigenen Anwendungsservers, falls verfügbar.
Zurücksetzen des Boards:
Wenn wir den Raspberry Pi starten, empfiehlt es sich, das angeschlossene RAK831 Lora-Modul zurückzusetzen. Dafür gibt es zwei Möglichkeiten:
- Über Shell-Skript:
Ein kleines Shell-Skript kann geschrieben werden, um den RAK831 zurückzusetzen, bevor der LoRa-Treiber auf die Hardware zugreifen kann. Der Inhalt des Shell-Skripts kann wie folgt aussehen (das davon ausgeht, dass der GPIO 17 (Pin 11) des Raspberry Pi mit dem Reset-Pin des RAK831 verbunden ist):
#!/bin/bash
echo „17“> /sys/class/gpio/export
echo „out“> /sys/class/gpio/gpio17/direction
echo „1“> /sys/class/gpio/gpio17/value
sleep 5
echo „0“> /sys/class/gpio/gpio17/value
sleep 1
echo „0“> /sys/class/gpio/gpio17/value
Diese Zeilen können in einer Datei namens „rak831_reset.sh“ gespeichert werden. Der Benutzer muss dieses Skript einmal nach jedem Booten aufrufen, um den Konzentrator-IC in einen sauberen Zustand zu versetzen.
- Über Verdrahtungspi:
Wenn das Host-System ein Raspberry Pi ist, kann der Benutzer ein kleines C-Tool schreiben, um den RAK831 zurückzusetzen. Um auf die GPIO-Pins des Raspberry Pi zugreifen zu können, gibt es eine Bibliothek namens „wiringPi“, die sich um die Low-Level-Details kümmert. Die Bibliothek kann von http://wiringpi.com heruntergeladen werden. Bitte besuchen Sie diese Site, um Installations- und Verwendungsanweisungen zu erhalten. Der Inhalt der Datei RAK831_reset.c kann wie folgt aussehen:
#include
#include
#define GPIO_RESET_PIN 0 // siehe wiringPi-Mapping!
int main() {
wiringPiSetup();
pinMode(GPIO_RESET_PIN, OUTPUT);
digitalWrite(GPIO_RESET_PIN, HIGH);
sleep(5);
digitalWrite(GPIO_RESET_PIN, LOW);
zurück;
}
Der Benutzer muss dieses Tool nach jedem Hochfahren einmal aufrufen, um den Konzentrator-IC in einen sauberen Zustand zu versetzen.
gcc -Wall -o blink blink.c -lwiringPi
sudo ./blink
Registrieren Sie das Gateway beim TTN-Netzwerk:
Um Ihre Knoten dazu zu bringen, Daten an die Cloud zu senden, bietet TheThingsNetwork einen Cloud-Dienst zum Analysieren und Speichern der von Lora-Knoten gesendeten Daten über eine Lora
Weitere Informationen:Erste Schritte mit dem RAK 831 Lora Gateway und RPi3
Herstellungsprozess
- Überwachen der Raumtemperaturen mit einem Raspberry Pi und Nagios
- Überwachen der Raumtemperaturen mit Moteinos und Raspberry Pi
- Integration von Sensordaten mit Raspberry Pi-Mikroprozessor
- 433 MHz Smart Home Controller mit Sensorflare und einem RaspberryPi
- Schwenk-/Neige-Gesichtsverfolgung mit dem Himbeer-Pi
- Aeroponik mit Raspberry Pi und Feuchtigkeitssensor
- Verwenden des gepulsten Radarsensors A111 mit einem Raspberry Pi
- Erste Schritte mit TJBot
- $35 NanoPi K1 Plus ist ein Raspberry Pi-ähnlicher Computer mit doppelt so viel RAM (und einer anderen CPU)
- LoRa – Raspberry Pi – Single Channel Gateway – Günstig!