该设置用于一些基于小型计算机(例如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
}
单击图像查看视频
这是我在网关上使用的其他功能: