このセットアップは、Raspberry Piなどの小さなコンピューターに基づいたロラワン濃縮器に使用されます。たとえば、Rak831 Pi Zero Shieldで正常に動作します
Raspberry Pi V2またはV3用のIC880Aシールドの場合。
Raspbian Lite画像をダウンロードして、Etcherを使用してSDカードにフラッシュします。
フラッシュしたら、ブートパーティションでいくつかの変更を行う必要があります(Windowsユーザー、削除してからSDカードを再現)
このパーティションでダミーsshファイルを作成します。デフォルトでは、SSHが無効になっているため、これを有効にするために必要です。 Windowsユーザー、ファイルに.txtなどの拡張子がないことを確認してください。
PIをコンピューターUSBポートに接続してOTG(任意のコンピューターのコンソールアクセスを使用できるようにする必要がある場合は、ファイル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
また、自動サイズの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という名前のファイルを作成して、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"
}
もちろん、独自のWiFi設定で国、SSID、PSKを変更します。
それだけです、コンピューターからSDカードを排出し、Raspberry Pi Zeroに入れてください。起動するには最大90秒かかります(後続のブーツでは短くなります)。その後、アドレスとしてraspberrypi.localを使用して、それにsshすることができます。 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.shloragwユーザーでログバックし、ホスト名をloragw-xxyyに変更した場合は、このコマンドを使用してください
git clone https://github.com/ch2i/LoraGW-Setup
cd LoraGW-Setup
次に、次のステップの前に新しいGWをTTNに登録する必要があります。ゲートウェイ登録を参照してください。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 )に(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)
スクリプトの最後にLEDコード動作を変更できます/opt/loragw/monitor.py
スイッチプッシュボタンを押す(そしてそれを押す)ことができ、LEDはよく赤くなり、2秒後に青で点滅し始めます。ブルーを点滅させるとボタンをリリースすると、PIはシャットダウンを開始します。したがって、電力を除去する前に30代にしてください。
このIC880AシールドにRaspberry Pi 3がある場合、 /boot/config.txtファイルは次の行で強化されています。
# When system if Halted/OFF Light Green LED
dtoverlay=gpio-poweroff,gpiopin=24
緑色のLED(GPIO24)は、ゲートウェイのパワーを削除できる場合に留まります。それは本当に素晴らしい指標です。
また、必要に応じてアクティビティLEDを置き換えるために使用されるGPIO LEDを使用することもできます。
# Activity LED
dtoverlay=pi3-act-led,gpio=23
赤いLED(GPIO23)は、アクティビティを点滅させます。
このRak831を使用してRaspberry Piゼロをお持ちの場合は、 /boot/config.txtファイルを変更して、次の2つの機能のいずれかを選択できます。
# When system is Halted/OFF Light Green LED
dtoverlay=gpio-poweroff,gpiopin=26
Green LED(GPIO26)は、ゲートウェイのパワーを削除できる場合に留まります。それは本当に素晴らしい指標です。
また、必要な場合は、このLEDを選択するアクティビティLEDを選択することもできます。
# Activity LED
dtparam=act_led_gpio=26
Greend LED(GPIO26)はアクティビティを点滅させます。
両方とも同時にではなく、2つのオプションのうち1つのみを選択できます。
インストールされているソフウェアは/opt/loragwにあります。この名前を変更しました(オリジナルはttn-gatewayでした)。すべてのゲートウェイが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を使用)があり、1つはWS2812B LEDを備えており、もう1つはこのIC880Aシールドのような古典的なGPIO LEDを使用しています。あなたが変えたいなら、あなたはそのようにそれをすることができます
sudo systemctl stop monitorこの場合、ShieldにWS2812B RGBがLEDを使用していませんが、GPIOクラシックのLEDがあります。 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
Legacy Packet Forwarderを使用する場合は、ファイル/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を含むラインを変更する12(これは最大ログファイル履歴)hourlyごとにdaily含むラインを変更する(1時間ごとにログを回転させる)daily monthly含むラインを変更する(毎日ログを回転させる)この場合、1時間に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
}
画像をクリックしてビデオを表示します
ゲートウェイで使用する他の機能は次のとおりです。