이 설정은 Raspberry Pi 또는 다른 소규모 컴퓨터를 기반으로 한 일부 Lorawan 농축기에 사용됩니다. 예를 들어 RAK831 PI ZERO SHIELD에서 잘 작동합니다.
그리고 Raspberry Pi V2 또는 V3의 IC880A 현장.
Raspbian Lite 이미지를 다운로드하여 Etcher를 사용하여 SD 카드로 플래시하십시오.
플래시되면 부팅 파티션에서 몇 가지 변경 사항을 수행해야합니다 (Windows 사용자, 제거 및 REPLUG SD 카드).
이 파티션에서 더미 ssh 파일을 만듭니다. 기본적으로 SSH는 이제 비활성화되므로이를 활성화해야합니다. Windows 사용자, 파일이 .txt 등과 같은 확장자가 없는지 확인하십시오.
OTG (PI를 컴퓨터 USB 포트로 전환하여 모든 컴퓨터에 대한 콘솔 액세스)를 사용해야하는 경우 cmdline.txt 파일을 엽니 다. 이 파일에주의하십시오. 형식이 매우 까다 롭습니다! 각 매개 변수는 단일 공간으로 분리됩니다 (Newlines를 사용하지 않음). rootwait quiet 후 modules-load=dwc2,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
Auto Resize SD 기능이 마음에 들지 않으므로 ( raspi-config 에서 수동으로 수행하는 것이 좋습니다) 파일 cmdline.txt AUTO 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
마지막으로, 동일한 파티션 (Boot)에서 PI가 첫 번째 부팅 후 WiFi에 연결하도록 허용하려면 wpa_supplicant.conf 라는 파일을 작성하여 PI가 WiFi 네트워크에 연결되도록합니다.
country=FR
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="YOUR-WIFI-SSID"
psk="YOUR-WIFI-PASSWORD"
}
물론 자신의 Wi -Fi 설정으로 국가, SSID 및 PSK를 변경하십시오.
그게 바로 컴퓨터에서 SD 카드를 꺼내어 Raspberry Pi Zero에 넣으십시오. 부팅하는 데 최대 90 년대가 걸립니다 (후속 부츠에서는 짧게). 그런 다음 raspberrypi.local 주소로 사용하여 SSH로 들어갈 수 있습니다. Wi -Fi가 작동하지 않으면 USB를 통해 컴퓨터에 연결하여 USB 이더넷 장치로 나타납니다.
기본 로그인/PASWWORD (SSH 또는 SERIAL CONSOLE)는 PI/Raspberry입니다.
따라서 보안상의 이유로이 기본 비밀번호를 변경해야합니다.
passwd 이 1_pi_config.sh 스크립트는 PI EnvironNment를 준비하고 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.shPi Zero Shield를 사용하는 경우 2 LED가 녹색을 깜박이어야하며 TTN에서 새로운 게이트웨이를 볼 수 있어야합니다.
스타트 업에서도 모든 것을 확인하고 게이트웨이를 재부팅하십시오.
sudo reboot
WS2812B 드라이버 DMA 채널을 사용하고 새로운 Raspbian 버전을 사용하면 DMA 5를 사용하면 SD 카드가 손상됩니다. 이 문제를 참조하십시오. 이제 해결되었지만 오래된 스크립트가있는 오래된 GW가 있다면 Script /opt/loragw/monitor_ws2812.py monitor_ws2812.py의 줄을 업데이트하십시오.
strip = Adafruit_NeoPixel ( 2 , gpio_led , 800000 , 5 , False , 64 , 0 , ws . WS2811_STRIP_GRB )(5 대신 DMA 채널 10 사용)
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가 종료를 시작합니다. 전원을 제거하기 전에 30 대를 보자.
이 IC880A 방패가 달린 Raspberry Pi 3이있는 경우 /boot/config.txt 파일이 다음 줄로 향상되었습니다.
# When system if Halted/OFF Light Green LED
dtoverlay=gpio-poweroff,gpiopin=24
Green LED (GPIO24)는 게이트웨이의 전력을 제거 할 수있을 때 계속됩니다. 정말 훌륭한 지표입니다.
필요한 경우 활동 LED를 대체하는 데 사용되는 GPIO 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
Green LED (GPIO26)는 게이트웨이의 전력을 제거 할 수있을 때 계속됩니다. 정말 훌륭한 지표입니다.
필요한 경우 활동 LED를 교체하기 위해 선택을 선택할 수도 있습니다.
# Activity LED
dtparam=act_led_gpio=26
Greend LED (GPIO26)는 활동이 깜박일 것입니다.
동시에 두 가지 옵션 중 하나만 선택할 수 있습니다.
설치된 소프웨어는 /opt/loragw 에 위치하고 있습니다. 모든 게이트웨이가 TTN에 연결되어 있지 않기 때문에이 이름을 변경했습니다 (원본 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 서비스 (SystemD에서 시작)를 통해 수행됩니다. 이 서비스에는 2 가지 버전 (Symlink 포함)이 있으며, 하나는 WS2812B LED가 있고 다른 하나는이 IC880A 방패의 것과 같은 클래식 GPIO LED 용으로 있습니다. 그러니 변경하고 싶다면 그렇게 할 수 있습니다.
sudo systemctl stop monitor이 경우 Shield에 WS2812B RGB가 LED가 아니라 GPIO Classic One이 있습니다. PI 전원을 끄는 푸시 버튼 GPIO도 동일한 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
레거시 패킷 전달기를 사용하려면 마지막 줄을 교체하려면 파일 /opt/loragw/start.sh 변경해야합니다.
./mp_pkt_fwd.sh
~에 의해
./poly_pkt_fwd.sh
sudo systemctl stop loragw
sudo systemctl start loragwSD 카드 쓰기를 줄이기 위해 Log2Ram을 선택한 경우 RAM 디스크가 가득 찬 것을 피하려면 로그 파일 회전을 변경해야합니다.
이를 위해서는 /etc/logrotate.d/ 에서 각 파일을 편집하고 각 파일에서 편집해야합니다.
delaycompress 포함 된 라인을 제거하십시오 (이로 인해 압축되지 않은 오래된 로그를 피하십시오)rotate n 포함하는 변경 선 (S)은 회전 12로 회전합니다 (이것은 최대 로그 파일 기록)daily hourly 포함하는 선 (S) 변경 (매시간 회전)daily monthly 포함 된 선 변경 (매일 로그 회전)이 경우 우리는 시간당 1 파일로 12 시간 동안 마지막으로 얻었습니다. 물론이 매개 변수를 필요한 발로 조정할 수 있습니다.
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
}
비디오를 보려면 이미지를 클릭하십시오
다음은 게이트웨이에서 언젠가 사용하는 다른 기능입니다.