概要
920MHz帯域のプライベートLoRaモジュールをArduinoシールドの形にしました。
LoRaは長距離通信を特徴とした無線通信規格です。見通し距離は1km以上の長距離通信が可能です。(通信速度は1.7kbps ~ 62.5kbps)
クレアリンクテクノロジー社のLoRa通信モジュール、E220-900T22S(JP)を搭載しました。技術基準適合証明を取得していますので、日本国内で使用ができます。プライベートLoRaですので、E220-900T22S(JP)同士の通信が可能です。各種Arduino UNOサイズのマイコンボードから使用が可能です。信号線が3.3V系統のマイコンボードにも切り替えで対応する事が可能です。アンテナはTX915-JK-11が付属。
Arduino側からLoRa通信モジュールのON/OFFの制御や、動作状態を取得可能
ArduinoのD11をHIGHにすると、LoRaモジュールの電源供給がOFFになります。省エネやLoRaモジュールのリセット用途に。J1にジャンパーピンが刺さっている状態で使用できます。J1がオープンの状態では常に電源供給がONです。
D8の状態を見る事で、LoRaモジュールがBusy状態か確認できます。D8がLOWの時にBusy状態です。J8にジャンパーピンが刺さっている状態で使用できます。
Grove端子が2個搭載
センサーや入力スイッチなどを接続できるGrove端子を搭載しています。3.3V・5.5V切り替え式ですので、多くのGrove製品に対応します。
ギャラリー
仕様
- 電源: Arduinoより供給
- 表示: LED( Power / RX / TX / LoRa(モジュールの電源状態表示) / AUX(Busy状態表示)
- 搭載LoRaモジュール: クレアリンクテクノロジー E220-900T22S(JP)
- モジュールモード切替: Arduino側より制御(M0/M1)
- LoRaモジュール電源電圧: 5V(信号線は3.3V)
- アンテナ端子: SMA
- Grove端子電圧: 5V・3.3Vスライドスイッチ切り替え式(VCC・信号線)
- レベル変換: BSS138
- 内容物: 基板・アンテナ(TX915-JK-11)・ピンソケット
以下、E220-900T22S(JP) の仕様
- 周波数: 920.6MHz ~ 928.0MHz
- 変調方式: LoRaスペクトラム拡散方式
- 帯域幅: 125kHz ~ 500kHz
- 拡散率: 5 ~ 11
- 伝送速度: 1.7kbps ~ 62.5kbps
- 送信出力: 13dBm:20mW以下
- 受信感度: -129dbm
- 消費電流(3.3V動作時): 送信時/43mA 受信時/8.2mA
- 動作モード(4種類): データ送受信モード・WOR送信モード・WOR受信モード・Config/DeepSleepモード(コマンドによるパラメータ設定モード)
基板の説明
LoRa関係の機能
LoRa PINスイッチ
LoRaモジュールとの通信するPINを設定します。D0/D1(Arduino標準のRX/TXピン)か、D5/D6
LoRa RESETスイッチ
押している間は、LoRaモジュールの電源がOFFになります。
LoRa Power LED
LoRaモジュールに電源が供給されている時に点灯します。
AUX LED
LoRaモジュールがBusy状態の場合に点灯します。マイコンからLoRaモジュールにコマンドを送信し処理している場合に点灯します。LoRaモジュールがOFFの状態の時にも点灯します。つまり、このLEDが点灯している状態では、LoRaモジュールはコマンドを受け付けられない状態です。
TX・RX LED
マイコンとLoRaモジュールの通信状態を表示します。TXがLoRaモジュール→マイコン、RXがマイコン→LoRaモジュールの通信です。
LoRa Power Enable ジャンパーピン
ジャンバーピンをショートした状態で、マイコンのD11をLOWにするとLoRaモジュールの電源はONです。HIGHだとOFFになります。ジャンパーピンを外すとONの状態で固定です。
AUX status ジャンパーピン
マイコンのD8でAUXの情報が取得できます。AUX LEDが点灯している時、D8はLOWになります。
Grove関係の説明
VCC(SW4/SW7)
Grove端子の電源電圧を変更します。5V↔3.3V
SCL/SDA/A0/A1(SW2/SW3/SW5/SW6)
信号線の電圧を変更します。5V↔3.3V
たとえば、M5社の販売するモジュールは、電源電圧を5V・信号線電圧を3.3Vを選択します。
その他
D12スイッチ
ArduinoのD12に接続されています。プルアップはされていないので、pinMode(12, INPUT_PULLUP ); で使用します。
MPU IO Voltage
Arduinoマイコンボード側の信号線の電圧に合わせて変更します。Arduino UNO・Arduino Leonardoは5V、ESPr One 32やSTM32 Nucleo-64では3.3Vを選択します。
使用ピン
- D0/D5・・・RX(Arduino側)
- D1/D6・・・TX(Arduino側)
- D8・・・AUXスタータスを取得 pinMode(8, INPUT);
- D9・・・M0設定 pinMode(9, OUTPUT);
- D10・・・M1設定 pinMode(10, OUTPUT);
- D11・・・LoRaモジュール電源制御 pinMode(11, OUTPUT);
- D12・・・SW10 pinMode(12, INPUT_PULLUP);
D0/D1はArduinoの標準UARTピンですが、Arduino UNO R3などはD0/D1はPCとの通信に使用しているので、SoftwareSerialを使いD5/D6を使用してLoRaモジュールとのUART通信を行います。
使用ピンの変更
マイコンや他のシールドによって、このシールドで使うピンを変更したい時は、裏面のハンダジャンパーを他のピンと銅線でつなぐ事で、LoRaモジュールで使用するピンを変更する事が出来ます。下記例はESPr One 32の場合です。
ピンヘッダをハンダ付けする
付属のピンヘッダをハンダ付けするには、Arduinoに刺した状態で行います。
端の1ピンをハンダ付けしてみて、基板とすきまが開いているようであれば修正します。はんだは少なめにします。反対の端もハンダ付けして隙間が無いか確認しながら行います。両端の隙間な無いようであれば、残りのピンをハンダ付けします。この時に、長くはんだを温めているとArduino側のピンソケットも壊れますので、5秒以内で手早く行います。
プログラムに関して
Arduinoライブラリを公開しました。(2023/10/22)
ArduinoIDEの「ライブラリの管理」から、「FLINT」を検索して「FLINT_E220-900T22S-JP」をインストールします。
「ファイル」→「スケッチ例」→「FLINT_E220_900T22S_JP」→「send_receive_string」を選択し、サンプルスケッチを表示します。
このスケッチは、Arduino Uno R3、Arduino Leonardo、ESPr® One 32用のスケッチです。各マイコンボードに対応するには、スケッチ前半のコメントアウトされた部分を変更します。
このライブラリは、Arduino UNO R4 Minima / Wifi の対応はβ版です。スケッチ例で //for Arduino Uno R3 の方を有効にして、RX_pin 0 TX_pin 1 とします。SoftwareSerialであれば通信できるようですが、動作確認中です。
関連品
パソコンやRaspberry PiからLoRa通信したい場合には、USBタイプが便利です。パソコンを使ったデバッグやRaspberry Piを使った組み込み用など用途が広がります。
資料
- クレアリンクテクノロジー E220-900T22S(JP) 製品ページ
- 使用可能LoRa用アンテナ一覧
- 本品に付属のアンテナより高利得アンテナは 秋月電子 スイッチサイエンス で購入可能です。