該設置用於一些基於小型計算機(例如Raspberry Pi或其他)的Lorawan濃縮器。例如,它可以與RAK831 PI零屏蔽層合作
以及用於Raspberry Pi V2或V3的IC880A Sield。
下載Raspbian Lite圖像,然後使用Etcher將其刷新到您的SD卡中。
一旦閃爍,您需要對啟動分區(Windows用戶,刪除然後重新登錄SD卡)進行一些更改)
在此分區上創建虛擬ssh文件。默認情況下,SSH現在被禁用,因此啟用它是必需的。 Windows用戶,確保您的文件沒有.txt等的擴展名。
如果您需要能夠使用OTG(通過將PI連接到計算機USB端口來使用任何計算機的控制台訪問)打開文件cmdline.txt 。請注意此文件,格式化非常挑剔!每個參數都被一個空間分開(它不使用新線)。插入modules-load=dwc2,g_ether rootwait quiet之後的g_ether。
新文件cmdline.txt應該看起來像這樣
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
對於OTG,在新行上也添加config.txt文件的底部
dtoverlay=dwc2
而且,由於我不喜歡自動調整SD功能(我更喜歡從raspi-config手動執行此操作),也可以從文件cmdline.txt auto刪除以下大小中刪除
init=/usr/lib/raspi-config/init_resize.sh
新文件cmdline.txt應該看起來像這樣
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
最後,在同一分區(啟動)上,要允許您的PI在第一次引導後連接到WiFi,請創建一個名為wpa_supplicant.conf的文件,以允許在WiFi網絡上連接PI。
country=FR
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="YOUR-WIFI-SSID"
psk="YOUR-WIFI-PASSWORD"
}
當然,使用您自己的WiFi設置更改國家,SSID和PSK。
就是這樣,從計算機上彈出SD卡,將其放入Raspberry Pi Zero中。最多需要90秒才能啟動(在後續的靴子上短)。然後,您可以使用raspberrypi.local作為地址進入它。如果WiFi不起作用,請通過USB將其連接到您的計算機,然後將其作為USB以太網設備出現。
請記住默認登錄/paswword(SSH或串行控制台)是Pi/Raspberry。
因此,出於安全原因,您應該更改此默認密碼
passwd 此1_pi_config.sh腳本將準備您的PI環境,創建和配置Loragw用戶,添加對SPI,I2C,UART的訪問。它將將視頻內存降低到16MB,以允許需要完成任務的最大存儲器。它還啟用了出色的Log2RAM SD卡保存。
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使用loragw用戶返回,如果將主機名更改為loragw-xxyy,請使用此命令
git clone https://github.com/ch2i/LoraGW-Setup
cd LoraGW-Setup
現在,您需要在下一步之前在TTN上註冊新的GW,請參閱網關註冊,腳本將詢問GW_ID和GW_KEY
sudo ./2_Setup.sh就是這樣,如果您使用的是Pi Zero Shield,那麼2 LED應該閃爍綠色,您應該能夠在TTN上看到您的全新網關
在啟動時還可以檢查一切,重新啟動您的網關。
sudo reboot
WS2812B使用DMA頻道,使用新的Raspbian版本,使用DMA 5會損壞您的SD卡。看到這個問題。現在已經解決了它,但是如果您擁有舊腳本的舊GW,請確保更新腳本/opt/loragw/monitor_ws2812.py的行
strip = Adafruit_NeoPixel ( 2 , gpio_led , 800000 , 5 , False , 64 , 0 , ws . WS2811_STRIP_GRB )到(使用DMA通道10而不是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)
您可以在腳本/opt/loragw/monitor.py的末尾更改LED代碼行為
您可以按(並按下)開關按鈕,LED變成紅色,然後在2s開始以藍色閃爍後。如果您在眨眼藍色時釋放按鈕,則PI將啟動關閉。因此,在刪除電源之前,請讓它30s。
如果您的IC880A盾牌具有Raspberry Pi 3,則使用以下行增強了/boot/config.txt文件:
# When system if Halted/OFF Light Green LED
dtoverlay=gpio-poweroff,gpiopin=24
綠色LED(GPIO24)將保持在您可以刪除網關的功率時。這確實是一個很好的指標。
您還可以選擇使用哪個GPIO LED來替換活動LED。
# Activity LED
dtoverlay=pi3-act-led,gpio=23
紅色LED(GPIO23)將眨眼活動。
如果此RAK831的Raspberry Pi Zero為零,則可以更改/boot/config.txt文件以選擇以下兩個功能之一:
# When system is Halted/OFF Light Green LED
dtoverlay=gpio-poweroff,gpiopin=26
綠色LED(GPIO26)將保持在您可以刪除網關的功率時。這確實是一個很好的指標。
您也可以選擇此LED替換活動LED,如果需要。
# Activity LED
dtparam=act_led_gpio=26
Greend LED(GPIO26)將眨眼活動。
您只能選擇兩個選項之一,而不是同時選擇。
已安裝的SOFWARE位於/opt/loragw上,我更改了此名稱(原件是TTN-GATEWAWE),只是因為並非所有我的網關都連接到TTN,所以我想擁有一個更通用的設置。
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眨眼和按鈕功能是通過Monitor..py Service完成的(SystemD在啟動時啟動)。此服務有2個版本(具有Symlink),一個帶有WS2812B LED的版本,另一個用於經典GPIO LED,例如IC880A盾牌上的一個。因此,如果您想更改,您可以這樣做
sudo systemctl stop monitor在這種情況下,您沒有WS2812B RGB在盾牌上LED,而是GPIO Classic One。按下按鈕以關閉PI的PICO也不在同一GPIO上,因此您需要設置正確的監視器服務。
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
首先構建它
./build_legacy.sh
如果您想使用舊數據包轉發器,則需要更改file /opt/loragw/start.sh start.sh以替換最後一行
./mp_pkt_fwd.sh
經過
./poly_pkt_fwd.sh
sudo systemctl stop loragw
sudo systemctl start loragw如果選擇Log2RAM減少SD卡寫入,則需要更改一些日誌文件旋轉,以避免RAM磁盤已滿。
為此,您需要在/etc/logrotate.d/中編輯每個文件,並在每個文件上編輯:
delaycompress行(這避免了未壓縮的舊日誌)rotate n行(這是最大日誌文件歷史記錄)daily包含hourly包含的線(每小時旋轉日誌)daily包含monthly線(每天旋轉日誌)在這種情況下,我們獲得了最後12h,每小時1個文件。當然,您可以將這些參數調整為所需的腳,這只是一個例子,
file /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
}
單擊圖像查看視頻
這是我在網關上使用的其他功能: