Dieses Setup wird für einige Lorawan -Konzentratoren verwendet, die auf kleinen Computern wie Raspberry Pi oder anderen basieren. Zum Beispiel funktioniert es gut mit dem RAK831 PI Zero Shield
Und für das IC880A -Sield für Raspberry Pi V2 oder V3.
Laden Sie das Image von Raspbian Lite herunter und flashen Sie es mit EtchaN auf Ihre SD -Karte.
Nach dem Flash müssen Sie einige Änderungen auf der Boot -Partition vornehmen (Windows -Benutzer, entfernen und dann die SD -Karte wiederholen).
Erstellen Sie eine Dummy ssh -Datei auf dieser Partition. Standardmäßig ist SSH jetzt deaktiviert, sodass dies erforderlich ist, um dies zu aktivieren. Windows -Benutzer, stellen Sie sicher, dass Ihre Datei keine Erweiterung wie .txt usw. hat.
Wenn Sie in der Lage sein müssen, OTG (Konsolenzugriff für einen beliebigen Computer zu erhalten, indem Sie den PI an Computer USB -Port konzipieren) öffnen Sie die Datei cmdline.txt . Seien Sie vorsichtig mit dieser Datei, sie ist sehr wählerisch mit der Formatierung! Jeder Parameter wird durch einen einzelnen Raum getrennt (er wird keine Neulisten verwendet). Fügen Sie modules-load=dwc2,g_ether nach rootwait quiet .
Die neue Datei cmdline.txt sollte so aussehen
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=37665771-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet modules-load=dwc2,g_ether init=/usr/lib/raspi-config/init_resize.sh
Fügen Sie für OTG auch den Boden der config.txt in einer neuen Zeile hinzu
dtoverlay=dwc2
Und da ich die automatische Größe der SD-Funktion automatisch nicht mag (ich bevorzuge es manuell von raspi-config ), entfernen Sie auch aus der Datei cmdline.txt
init=/usr/lib/raspi-config/init_resize.sh
Die neue Datei cmdline.txt sollte so aussehen
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=37665771-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet modules-load=dwc2,g_ether
Auf derselben Partition (BOOT), damit Ihr PI nach dem ersten Start eine Verbindung zu Ihrem WLAN herstellen kann, erstellen Sie eine Datei mit dem Namen wpa_supplicant.conf , damit der PI in Ihrem WLAN -Netzwerk verbunden werden kann.
country=FR
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="YOUR-WIFI-SSID"
psk="YOUR-WIFI-PASSWORD"
}
Natürlich ändern Sie Land, SSID und PSK mit Ihren eigenen WLAN -Einstellungen.
Das war's, werfen Sie die SD -Karte von Ihrem Computer aus und legen Sie sie in Ihr Raspberry Pi Zero. Es dauert bis zu den 90ern, um sich zu starten (kürzer auf nachfolgenden Stiefeln). Sie können dann mit raspberrypi.local als Adresse ein SHSH in die IT hineingezogen. Wenn WIFI nicht funktioniert, schließen Sie es über USB an Ihren Computer an, dann sollte dies als USB -Ethernet -Gerät angezeigt werden.
Denken Sie daran, dass die Standard -Login/Paswword (SSH oder Serienkonsole) PI/Raspberry ist.
Bitte können Sie aus Sicherheitsgründen dieses Standardkennwort ändern
passwd Dieses Skript von 1_PI_Config.sh erstellt Ihre PI -Umgebung, erstellt und konfigurieren Sie einen Loragw -Benutzer, fügt SPI, I2C, UART auf. Es reduziert den Videospeicher auf 16 MB, damit das maximale Speicher für das Zeug erledigt werden muss. Es ermöglicht auch eine hervorragende Log2RAM -SD -Karte erhalten.
wget https://raw.githubusercontent.com/ch2i/LoraGW-Setup/master/1_Pi_Config.sh
chmod ug+x 1_Pi_Config.sh
sudo ./1_Pi_Config.sh Melden Sie sich mit loragw -Benutzer zurück. Wenn Sie Hostname in Loragw-xxyy gewechselt haben, verwenden Sie diesen Befehl
git clone https://github.com/ch2i/LoraGW-Setup
cd LoraGW-Setup
Jetzt müssen Sie vor dem nächsten Schritt Ihre neue GW auf TTN registrieren. Siehe Gateway -Registrierung. GW_ID und GW_KEY werden vom Skript gefragt
sudo ./2_Setup.shDas war's, wenn Sie Pi Zero Shield verwenden, sollte die 2 LED grün blinken und Sie sollten Ihr brandneues Gateway auf TTN sehen können
Überprüfen Sie, ob alles in Ordnung ist. Auch beim Start starten Sie Ihr Gateway neu.
sudo reboot
WS2812B -Treiber Verwenden Sie den DMA -Kanal. Mit einer neuen Raspbian -Version beschädigen Sie DMA 5 Ihre SD -Karte. Siehe dieses Problem. Es /opt/loragw/monitor_ws2812.py jetzt gelöst, aber wenn Sie alte GW mit alten Skripten haben
strip = Adafruit_NeoPixel ( 2 , gpio_led , 800000 , 5 , False , 64 , 0 , ws . WS2811_STRIP_GRB )zu (mit DMA -Kanal 10 statt 5)
strip = Adafruit_NeoPixel ( 2 , gpio_led , 800000 , 10 , False , 64 , 0 , ws . WS2811_STRIP_GRB ) - GPIO 4 (Blue) Blink => Internet access OK
- GPIO 18 (Yellow) Blink => local web server up & running
- GPIO 24 (Green)
- Blink => packet forwarder is running
- Fixed => Shutdown OK, can remove power
- GPIO 23 (Red)
- Blink every second, one of the previous service down (local web, internet, )
- Middle bink on every bad LoRaWAN packet received
- Lot of short blink => Activity on SD Card (seen a boot for example)
Sie können das LED -Codeverhalten am Ende von script /opt/loragw/monitor.py ändern
Sie können den Schaltdrucktaste drücken (und drücken lassen), LEDs gut werden rot und nach dem 2S -Blinzeln in Blau. Wenn Sie die Taste freigeben, wenn sie blau blinken, leitet der PI eine Abschaltung aus. Lassen Sie es also 30er Jahre vornehmen, bevor Sie Strom entfernen.
Wenn Sie mit diesem IC880A -Schild einen Raspberry Pi 3 haben, wurde die Datei /boot/config.txt mit den folgenden Zeilen verbessert:
# When system if Halted/OFF Light Green LED
dtoverlay=gpio-poweroff,gpiopin=24
Die grüne LED (GPIO24) bleibt eingeschaltet, wenn Sie die Leistung des Gateways entfernen können. Es ist wirklich ein großartiger Indikator.
Sie können auch auswählen, welche GPIO -LED es verwendet wird, um die Aktivitäts -LED zu ersetzen, wenn Sie diese benötigen.
# Activity LED
dtoverlay=pi3-act-led,gpio=23
Die rote LED (GPIO23) blinzelt auf Aktivität.
Wenn Sie mit diesem RAK831 einen Raspberry Pi Zero haben, können Sie die Datei /boot/config.txt ändern, um eine der beiden folgenden Funktionen auszuwählen:
# When system is Halted/OFF Light Green LED
dtoverlay=gpio-poweroff,gpiopin=26
Die grüne LED (GPIO26) bleibt eingeschaltet, wenn Sie die Leistung des Gateways entfernen können. Es ist wirklich ein großartiger Indikator.
Sie können auch auswählen, dass diese LED ausgewählt werden, um die Aktivitäts -LED zu ersetzen, wenn Sie diese benötigen.
# Activity LED
dtparam=act_led_gpio=26
Die Greend LED (GPIO26) blinkt auf Aktivität.
Sie können nur eine der beiden Optionen auswählen, nicht beide gleichzeitig.
Die installierte Sofware befindet sich auf /opt/loragw . Ich habe diesen Namen geändert (Original war TTN-Gateway), nur weil nicht alle meine Gateways mit TTN verbunden sind, also wollte ich ein generischeres Setup haben.
ls -al /opt/loragw/
total 344
drwxr-xr-x 3 root root 4096 Jan 21 03:15 .
drwxr-xr-x 5 root root 4096 Jan 21 01:01 ..
drwxr-xr-x 9 root root 4096 Jan 21 01:03 dev
-rw-r--r-- 1 root root 6568 Jan 21 01:15 global_conf.json
-rwxr-xr-- 1 root root 3974 Jan 21 01:15 monitor-gpio.py
-rwxr-xr-- 1 root root 3508 Jan 21 03:15 monitor.py
-rwxr-xr-- 1 root root 4327 Jan 21 01:15 monitor-ws2812.py
-rwxr-xr-x 1 root root 307680 Jan 21 01:14 mp_pkt_fwd
-rwxr-xr-- 1 root root 642 Jan 21 01:36 start.shLED Blink- und Druckknopffunktionen werden mit dem PY -Dienst von monitor.py (von systemd beim Start) erledigt. Es gibt 2 Versionen dieses Dienstes (mit Symlink), eine mit WS2812B -LED und eine für klassische GPIO -LED -LED auf diesem IC880A -Schild. Wenn Sie also ändern möchten, können Sie es so tun
sudo systemctl stop monitorIn diesem Fall haben Sie keine WS2812B -RGB -LED auf dem Schild, sondern GPIO Classic One. Der Druckknopf -GPIO zum Ausschalten des PI befindet sich ebenfalls nicht auf demselben GPIO. Daher müssen Sie den richtigen Monitordienst einrichten.
sudo rm /opt/loragw/monitor.py
sudo ln -s /opt/loragw/monitor-gpio.py /opt/loragw/monitor.pysudo systemctl start monitorsudo journalctl -f -u loragw -- Logs begin at Sun 2018-01-21 14:57:08 CET. --
Jan 22 01:00:41 loragw loragw[240]: ### GPS IS DISABLED!
Jan 22 01:00:41 loragw loragw[240]: ### [PERFORMANCE] ###
Jan 22 01:00:41 loragw loragw[240]: # Upstream radio packet quality: 100.00%.
Jan 22 01:00:41 loragw loragw[240]: # Semtech status report send.
Jan 22 01:00:41 loragw loragw[240]: ##### END #####
Jan 22 01:00:41 loragw loragw[240]: 01:00:41 INFO: [TTN] bridge.eu.thethings.network RTT 52
Jan 22 01:00:41 loragw loragw[240]: 01:00:41 INFO: [TTN] send status success for bridge.eu.thethings.network
Jan 22 01:00:53 loragw loragw[240]: 01:00:53 INFO: Disabling GPS mode for concentrator's counter...
Jan 22 01:00:53 loragw loragw[240]: 01:00:53 INFO: host/sx1301 time offset=(1516578208s:159048µs) - drift=-55µs
Jan 22 01:00:53 loragw loragw[240]: 01:00:53 INFO: Enabling GPS mode for concentrator's counter.
Jan 22 01:01:11 loragw loragw[240]: ##### 2018-01-22 00:01:11 GMT #####
Jan 22 01:01:11 loragw loragw[240]: ### [UPSTREAM] ###
Jan 22 01:01:11 loragw loragw[240]: # RF packets received by concentrator: 0
Jan 22 01:01:11 loragw loragw[240]: # CRC_OK: 0.00%, CRC_FAIL: 0.00%, NO_CRC: 0.00%
Jan 22 01:01:11 loragw loragw[240]: # RF packets forwarded: 0 (0 bytes)
Jan 22 01:01:11 loragw loragw[240]: # PUSH_DATA datagrams sent: 0 (0 bytes)
Jan 22 01:01:11 loragw loragw[240]: # PUSH_DATA acknowledged: 0.00%
Jan 22 01:01:11 loragw loragw[240]: ### [DOWNSTREAM] ###
Jan 22 01:01:11 loragw loragw[240]: # PULL_DATA sent: 0 (0.00% acknowledged)
Jan 22 01:01:11 loragw loragw[240]: # PULL_RESP(onse) datagrams received: 0 (0 bytes)
Jan 22 01:01:11 loragw loragw[240]: # RF packets sent to concentrator: 0 (0 bytes)
Jan 22 01:01:11 loragw loragw[240]: # TX errors: 0
Jan 22 01:01:11 loragw loragw[240]: ### BEACON IS DISABLED!
Jan 22 01:01:11 loragw loragw[240]: ### [JIT] ###
Jan 22 01:01:11 loragw loragw[240]: # INFO: JIT queue contains 0 packets.
Jan 22 01:01:11 loragw loragw[240]: # INFO: JIT queue contains 0 beacons.
Jan 22 01:01:11 loragw loragw[240]: ### GPS IS DISABLED!
Jan 22 01:01:11 loragw loragw[240]: ### [PERFORMANCE] ###
Jan 22 01:01:11 loragw loragw[240]: # Upstream radio packet quality: 0.00%.
Jan 22 01:01:11 loragw loragw[240]: # Semtech status report send.
Jan 22 01:01:11 loragw loragw[240]: ##### END #####
Jan 22 01:01:11 loragw loragw[240]: 01:01:11 INFO: [TTN] bridge.eu.thethings.network RTT 53
Jan 22 01:01:11 loragw loragw[240]: 01:01:11 INFO: [TTN] send status success for bridge.eu.thethings.network
Bauen Sie es zuerst
./build_legacy.sh
Wenn Sie den Legacy -Paket -Spediteur verwenden möchten, müssen Sie die Datei /opt/loragw/start.sh ändern, um die letzte Zeile zu ersetzen
./mp_pkt_fwd.sh
von
./poly_pkt_fwd.sh
sudo systemctl stop loragw
sudo systemctl start loragwWenn Sie sich für Log2RAM entschieden haben, um die SD -Karte zu reduzieren, müssen Sie eine Protokolldateirotation ändern, um zu vermeiden, dass die RAM -Festplatte voll ist.
Zu diesem Zweck müssen Sie jede Datei in /etc/logrotate.d/ und in jeder Datei bearbeiten:
delaycompress (dies vermeiden unkomprimiertes altes Protokoll)rotate n durch Drehen 12 enthaltendaily nach hourly (jede Stunde drehen Sie das Protokoll).monthly nach daily enthalten sind (Täglich drehen Sie das Protokoll)In diesem Fall haben wir die letzten 12 Stunden mit 1 Datei pro Stunde. Natürlich können Sie diese Paramate auf Fuß anpassen, die Sie benötigen, es ist nur ein Beispiel.
Datei /etc/logrotate.d/rsyslog
/var/log/syslog
{
rotate 12
hourly
missingok
notifempty
compress
postrotate
invoke-rc.d rsyslog rotate > /dev/null
endscript
}
/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
rotate 12
hourly
missingok
notifempty
compress
sharedscripts
postrotate
invoke-rc.d rsyslog rotate > /dev/null
endscript
}
Klicken Sie auf das Bild, um das Video anzuzeigen
Hier sind andere Funktionen, die ich irgendwann auf meinen Gateways verwende: