今日、市場に出回っているLoRaモジュールを手に入れることができた。私のはE32-TTL-100モジュールで、SemtechのSX1278をベースにしていると言われている。モジュールの仕様は以下の通り:
通信距離は3km!非LOS(見通し線)でこれが可能かどうかは疑問だが、見てみよう。
モジュールのピンは7本:
UARTベースなので、RXD、TXD(もちろんVCCとGNDも)は自明だと思う。M0、M1、AUXピンの説明をしよう。
M0とM1は、モジュールのモードを設定するために使われる。ノーマル、ウェイクアップ、パワーセーブ、スリープの4つのモードがある。以下に便利な表を示す:
モード | M1 | M0 | 説明 |
Normal | 0 | 0 | UART とワイヤレス・チャネルは問題なし |
Wake-Up | 0 | 1 | ノーマルと同じだが、送信データにプリアンブルコードが付加され、レシーバーをウェイクアップする。 |
Power-Saving | 1 | 0 | UARTは無効、無線はWOR(Wake On Radio)モード。送信は許可されません |
Sleep | 1 | 1 | パラメータ設定に使用されます。送受信はできません。 |
AUX ピンは、データが送信されたかどうか、またはデータが受信されたかどうかを確認するためのフラグとして機能します。また、電源投入時やスリープ・モードからの復帰時に、モジュールがセルフ・チェック中であるかどうかを確認するためにも使用されます。
モジュールがアイドル状態の時、AUXピンはハイ・レベルを維持します。データが送信される場合、AUXピンは送信バッファにデータが送信される2~3ms前にLowになります。送信バッファがクリアされると(すなわち、データがワイヤレスで送信されると)、AUX ピンはハイに戻ります。同様に、受信バッファにデータがあると、AUXピンはローになります。
AUXピンの論理状態を以下にまとめます:
前述のように、モジュールがスリープ・モード(M0=M1=1)にあるとき、ボーレート、UART フォーマットなど、いくつかのオプションを変更できます。パラメータを変更するコマンドは、9600ボー、8N1で送信する必要があります。
パラメータを変更するためのフォーマットは、0xC0/0xC2 ADDH ADDL SPED CHAN OPTION です。パラメータを EEPROM に保存する場合は、0xC0 を使用する。それ以外は 0xC2 を使用する。残りは、以下の可能な値のバイトである:
Item | 説明 | 備考 |
ADDH | モジュール・ハイ・アドレス・バイト(デフォルトは 00h) | |
ADDL | モジュール・ロー・アドレス・バイト(デフォルトは 00h) | |
SPED | UART ボー・レートとエア・データ・レート | 以下のビット説明を参照してください。 |
CHAN | 動作周波数(410~441MHz に対応する 0x00~0xFF デフォルトは 0x17~433MHz) | |
OPTION | その他のオプション | 以下のビット説明を参照してください。 |
Bit 7 and 6 | Bit 5, 4, 3 | Bit 2, 1, 0 |
UART Parity | UART Baud Rate | Air Data Rate |
00:8N1(default) 01:8O1 10:8E1 11:8N1(equal to 00) |
000:1200bps001:2400bps
010:4800bps 011:9600bps(Default) 100:19200bps 101:38400bps 110:57600bps 111:115200bps |
000:0.3kbps001:1.2kbps
010:2.4kbps(Default) 011:4.8kbps 100:9.6kbps 101:19.2kbps 110:19.2kbps(equal to 101) 111:19.2kbps(equal to 101) |
Bit 7 | Bit 6 | Bit 5,4,3 | Bit 2 | Bit 1 and 0 |
Fixed Transmission | I/O Drive Mode | Wireless Wake-up Time | FEC (Forward Error Correction) Switch | Transmission Power |
0: transparent transmission (default)1: fixed transmission (first three bytes can be used as high/low address and channel) | 0: TXD, RXD, AUX are open-collectors1: TXD, RXD, AUX are push-pulls/pull-ups | 000:250ms(default)001:500ms
010:750ms 011:1000ms 100:1250ms 101:1500ms 110:1750ms 111:2000ms ) |
0:Turn off FEC1:Turn on FEC(Default) | 00: 20dBm(Default)01: 17dBm
10: 14dBm 11: 10dBm |
例えば、UARTボーレートを115200、8N1モード、エアデータレートを19.2kbps、動作周波数をデフォルトの433MHz、送信モードを固定、プッシュプル端子、ウェイクアップ時間を250ms、FECをオン、送信電力を20dBmに変更したいとします。M0とM1を設定し、UARTを通して以下のデータを送信する:
1
|
0xC0 0x00 0x00 0x3D 0x17 0xC4
|
現在のオプションを読み出すには、次のコマンドを送信します:
1
|
0xC1 0xC1 0xC1
|
これはバージョン番号を読み取るためのものです:
1
|
0xC3 0xC3 0xC3
|
モジュールをリセットする:
1
|
0xC4 0xC4 0xC4
|
Bob Chan氏は、E32-100 LoRaモジュールをArduinoで使用するためのスケッチ例を作成しました。ライブラリーは彼のgithubリポジトリで入手可能です。彼のライブラリでは、私が説明したようにパラメータを変更することができる。
上記のライブラリを使うには、以下のように接続する:
UNO/NANO(5V MODE) | E32-TTL-100 | |
---|---|---|
D7 | M0 | |
D8 | M1 | |
A0 | AUX | |
D10(Rx) | 4.7k Ohm | Tx |
D11(Tx) | 4.7k Ohm | Rx |
このチュートリアルがお役に立てば幸いです。ご質問があれば、以下にコメントをお寄せください。
参考文献
DownLoad Url osoyoo.com
You must be logged in to post a comment.
Hey
Best tutorial i’ve seen on this topic. It’s the only usefull sheet on that module.
I have some advice tho!!
Be careful when using arduino other than uno since not all pins can support SoftwareSerial!!! take care
Also some chinese modules (my modules from aliexpress) come with different defaults! so the connection wont work.
Even the reset command wont work! so use that sheet to set the same settings for both modules