LoginSignup
5
4

More than 3 years have passed since last update.

技適認定済モジュールLRA1でLoRa通信を行ってみる

Last updated at Posted at 2020-03-06

LoRaはIoT向けのLPWA(Low Power Wide Area:低消費電力広域)の無線通信の1つとして知られています。免許が不要で個人でも自由に使えて、通信事業者を使わずに数kmまでの通信を可能とする特徴はWi-Fiには無い新しい使い道が見えてくるのではないかと思います。

今回はLoRa通信のモジュールとして株式会社アイ・ツー 1 より販売2されているLRA1 を使ってみました。このモジュールは技適認定を取得しておりますので、日本国内で問題なく使用できます

この記事ではLRA1の簡単な使い方を紹介した後、最初のLoRa通信として2つのモジュール間で文字列の送受信を行うまでをやってみようと思います

モジュールのドキュメントなどは、http://www.i2-ele.co.jp/LoRa.html からダウンロードできます。参考までに主要なドキュメントのリンクを張っておきます

名前 説明
ハードウェアマニュアル モジュールの各種データが記載されています、電子部品の所謂スペックシート的な内容です
ソフトウェアリファレンスマニュアル ターミナルで実行するコマンドの詳しい説明です
UART/BASICプログラムチュートリアル ターミナルのつなぎ方とプログラムモードで動作するサンプルコードが含まれています
LCD付き評価ボードマニュアル 評価ボードのドキュメントです

その他、最新のファームウェアやアップデートツール、3Dデータなどは上記のWebから取得してください

LRA1の使い方

ここでは、LRA1の評価ボードを2台使ってPCのターミナルからモジュールのインタプリタを操作します。PCにはTera Termなどのターミナルソフトを予め用意しておいて下さい

接続

評価ボードにはmicroUSBの端子が付いており、ここからPCとつなぐことができます。ターミナルソフトを立ち上げシリアルポートで接続します

シリアルポートの設定

シリアルポートは次の通りに設定してください

項目
ボーレート 115200bps
データ 8bit
パリティ none
ストップビット 1bit
フロー制御 none

インタプリタの表示

PCにモジュールを繋いでターミナルを開くとプロンプトが表示されます

LRA1プロンプト
i2-ele LRA1
Ver 0.35.a
OK
>

文字が表示されなかったり、文字が化けた場合はシリアルポートの設定を見直してください

インタプリタの使い方

まず初めに、通信を行うための準備としてLoRa変数を設定します。設定内容や設定の保存の仕方を紹介します

LoRa変数

以下の表はLoRa通信に関係する設定値です。

変数名 #? R/W 内容 初期値
Modem R/W モデム設定 (0:FSK/1:LoRa) 1:LoRa
Pwr R/W 送信出力 (-4~13) 13
Sf R/W 拡散率 Spreading Factor (7~12) 10
Bw R/W 占有帯域幅 Bandwidth (6~9) [6:62.5kHz, 7:125kHz, 8:250kHz, 9:500kHz] 7:125kHz
Cr R/W 冗長率 Cording Rate (1~4) 1[4/5]
Ch R/W Channel (24~61) 下側バンド 24~38、上側バンド39~61 36
Frq R 周波数設定 (Hz 単位) 923000000(Hz)
Gid R/W グループ ID (0~65535) 0
Own R/W 自局 ID (0~65535) 1
Dst R/W 送信先 ID (0~65535) 0
Aes R/W AES (128bit) 16 進数文字列(16byte) 00000000000000000000000000000000
Rssi R 最後に受信したフレームの RSSI 値 0
Stat R/W 送受信状態、エラーコード [8:Timeout, 9:CRC-Error, 10:正常に受信した] 0
Ctrl R/W コントロール(下記のビットの論理和を設定する) $0000
  • #?#? コマンド (後述します)で表示される変数を示します (Ver 0.35.a で確認)
  • R/W は読み書きの可能を示します。読込みのみできる変数は R です
  • 詳しい説明はLRA1のソフトウェアリファレンスマニュアルをご覧ください

設定値の範囲について

  • 範囲外の設定をしたり、書き込みできない変数に値を入れようとすると Parameter error が返ります

通信パラメータ(BW/CR/SF)について

  • 帯域幅を広げると通信速度が上がります
  • 冗長率を上げるとエラーに強くなります
  • 拡散率を上げることでノイズに耐性が上がり、遠くにも電波が届くようになる半面スループットが低下します

チャンネルバンドについて

  • 下側バンド(24~38) は多くのデータを短時間で送る用途向けです
    • 送信時間4秒以下
    • 休止時間50ms以上
    • キャリアセンス受信時間5ms以上
  • 上側バンド(39~61) は少ないデータを低消費電力で送る用途向けです
    • 送信時間0.4s以下
    • 休止時間 送信時間の10倍以上
    • キャリアセンス受信時間128μs以上
  • 通信速度の違いはハードウェアマニュアルをご参照ください

LoRa変数の設定・保存・確認

設定値の変更は 変数名 = 値 で行います

例)Ownを5に変更する
>Own = 5

変更した後は SSAVE コマンドで保存します

設定値保存
>SSAVE
OK

保存をしないと、電源を切った時に変更が失われるのでご注意ください
保存した設定は電源を入れた時に自動的に読み込まれます

設定されたLoRa変数は #? コマンドで確認できます

設定値確認
>#?
Sn=999999
Modem=1[LoRa]
Pwr=13(dBm)
Ch=36
Sf=10
Bw=7[125kHz]
Cr=1[4/5]
Gid=0
Own=1
Dst=0
Ctrl=$0000
Echo=1[On]
Auto=
OK

データ送受信

実際にデータを送ってみます。2台のモジュールをPCにつないでそれぞれターミナルを開いて、インタプリタの待ち受け状態にしておきます

OwnとDstの設定

通信の準備として、LoRa変数のOwnとDstを変更します。それ以外の変数は初期値のままで構いません

Own はモジュール自身に割り当てるIDでそれぞれのモジュールが異なる番号になるように設定します。ここでは、Ownを 5 と 6 に設定しています

Ownの設定
' モジュールA
>Own = 5

' モジュールB
>Own = 6

Dst は通信の送り先を示します。ここではお互いのモジュールに割り当てたIDを指定してください

Dstの設定
' モジュールA
>Dst = 6

' モジュールB
>Dst = 5

受信待ち受け

RECV コマンドで受信データを待ち受けます

受信待ち受け
>RECV -1

データ送信側

SEND コマンドでデータを送信します

データ送信
>SEND "Hello"

受信待ち受けしたターミナルに送った文字が表示されます

データ受信側
>RECV -1
@-18,6,Hello

表示される文字は @RSSI(信号強度),送信側ID,受け取った文字列 です


  1. http://www.i2-ele.co.jp/ 

  2. 購入はマルツまたは東京デバイセズ の通販サイトからできます 

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4