このプロジェクトは、RF95互換性のある無線モジュールを備えたマイクロコントローラーボードのモデムファームウェアと、Adafruit Feather M0 LoraデバイスやHeltec OLED LORA 32モジュールなどのシリアルインターフェイスを提供します。さまざまなESP32ベースのボードでは、OLEDステータスディスプレイ、GPS、BLE、またはWiFiサポートなどのオプションの機能を有効にできます。
現在のデフォルト構成は、868.1 MHzのデバイス用です。これは、次の行でsrc/modem.hで変更できます: #define RF95_FREQ 868.1
次のボードがサポートされています。
ラジオファームウェアを構築およびインストールするための推奨される方法は、システムにPlatformio(http://platformio.org/)を動作させることです。
重要な編集platformio.iniターゲットプラットフォームを追加し、ビルドフラグにラジオピンを構成します!
pio run -t upload -e heltec_wifi_lora_32_bleを使用してデバイスにインストール
オプションでディスプレイサポートをアクティブにします: pio run -t upload -e heltec_wifi_lora_32_display_ble
現在、誰でもBLEサービスに接続できます。これはすべて平文です。コマンドを送信するために1つの特性が公開されており、1つは通知を介して出力を利用可能にするためにあります。
BLEを介して送信されるすべてのコマンドはnで終了する必要があります。デフォルトの操作モードは、すべてを20バイトチャンクに分割しているため、BLE仕様に応じて最大パケットサイズです。 iPhone 8と11では、はるかに大きなBLEパケット(> 100バイト)を送信して受信することもできました。したがって、 AT+BFB=1を介して大きなファンキーブルフレームモードをアクティブにすることができます。コマンドは、 nを追いかけなくても認識され、 nオプションにします。これは、 LightBlue Explorerなどの一部のBLEデバッグソフトウェアが、書き込み操作の最後にキャリッジリターンやラインフィードを送信しないため、特に便利です。
WiFiプロファイルの1つが互換性のあるESP MCUにインストールされている場合、デバイスはアクセスポイントとして機能します。資格情報はplatformio.iniで構成されており、デフォルトではWIFI_SSID="rf95modem"およびWIFI_PSK="rf95modemwifi" 192.168.4.1設定されています。
モデムと通信するには2つの方法があります。
RF95Modemは、UDPブロードキャストパケットにポート1666に応答します。出力を受信するには、シンプルなUDPリスナーが提供されます( extras/udp_receiver.py )。モデムNetcatにコマンドを送信するだけで十分です。たとえば、 echo "at+tx=414141" | ncat -u 192.168.4.255 1666
TCPを使用してポート1666の192.168.4.1に接続し、シリアル接続のように使用します。たとえばncat 192.168.4.1 1666 。
一度に1つの接続のみがサポートされています!
TTGOS T-Beamなどの一部のデバイスには、GPSチップも含まれています。これは、 AT+GPSコマンドを介してモデムファームウェアを介して照会することもできます。デバイス上のAtenna、位置、GPSチップに応じて、位置の最初のロックを取得するには数分かかる場合があります。これにより、エネルギー消費が大幅に増加するため(〜50mA) AT+GPS=0を介して一時的に無効にすることができます。
デフォルトのシリアル速度は115200に設定されています( src/main.cpp行17 )。
コマンドのリスト:
AT+HELP Print this usage information.
AT+TX=<hexdata> Send binary data.
AT+RX=<0|1> Turn receiving on (1) or off (2).
AT+BFB=<0|1> Turn send Big Fine BLE-Frames on (1) or off (0).
AT+GPS Print GPS information.
AT+GPS=<0|1> Turn GPS power on (1) or off (0).
AT+FREQ=<freq> Changes the frequency.
AT+INFO Output status information.
AT+MODE=<NUM> Set modem config:
0 - medium range (default)
Bw = 125 kHz, Cr = 4/5, Sf = 128chips/symbol, CRC on.
1 - fast+short range
Bw = 500 kHz, Cr = 4/5, Sf = 128chips/symbol, CRC on.
2 - slow+long range
Bw = 31.25 kHz, Cr = 4/8, Sf = 512chips/symbol, CRC on.
3 - slow+long range
Bw = 125 kHz, Cr = 4/8, Sf = 4096chips/symbol, CRC on.
4 - slow+long range
Bw = 125 kHz, Cr = 4/5, Sf = 2048chips/symbol, CRC on.
現在の構成を取得するにはAT+INFOを使用できます
> AT+INFO
+STATUS:
firmware: 0.7.3
features: MCU BLE WIFI GPS
modem config: 0 | medium range
max pkt size: 251
frequency: 868.10
rx listener: 1
BFB: 0
GPS: 1
rx bad: 0
rx good: 0
tx good: 0
+OK
この出力から、ファームウェアにコンパイルされた機能とそのバージョンが何であるかを確認できます。また、現在のモデム構成と選択された周波数が表示されます。
周波数を変更するにはAT+FREQコマンドを使用できます。
> AT+FREQ=868.20
+FREQ: 868.20
注意してください:フロート番号はここに追加できます。値はLORAトランシーバーに直接渡されます!
事前に設定されたモデムモードを変更するのも簡単です:
> AT+MODE=2
+OK
AT+TX=414141 AAAを含むパケットをコンテンツとして送信します。最大パケットサイズは、無線チップによって異なる場合があります。
AT+RX=1アクティブ化受信リスナー、デフォルトはオンです。
着信データ+RX 3,414141,-15,8 、シリアルポートに自動的に書き込まれます。
GPSがアクティブ化され( AT+GPS=1 )、ファームウェアがTTGO TビームなどのGPS対応デバイスで実行されている場合、現在の位置と時間を簡単に照会できます。プロポアGPSロックがないと、すべての値がゼロに設定されます。
> at+gps=1
+OK
> at+gps
Latitude : 0.00000
Longitude : 0.00000
Altitude : 0.00M
Satellites: 0
Time : 00:00:00
Date : 00.00.2000
Timestamp : 943920000
+OK
RF95Modemの統合を容易にするために、いくつかのサードパーティプログラミングライブラリがあります。
このコードをアカデミック出版物で使用する場合は、次の論文を引用してください。
@INPROCEEDINGS{baumgaertner2018monitoring,
author={L. {Baumgärtner} and A. {Penning} and P. {Lampe} and B. {Richerzhagen} and R. {Steinmetz} and B. {Freisleben}},
booktitle={2018 IEEE Global Humanitarian Technology Conference (GHTC)},
title={Environmental Monitoring Using Low-Cost Hardware and Infrastructureless Wireless Communication},
year={2018},
pages={1-8},
doi={10.1109/GHTC.2018.8601883},
month={Oct},
}