0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SpresenseAdvent Calendar 2024

Day 24

SpresenseでPrivateLoRaの動作を試す

Last updated at Posted at 2024-12-23

はじめに

LPWA通信として名前が知られているLoRaについて仕様を調べてみました。
SPRESENSE用にCLEALINKのLoRa通信addonボード(CLEALINK DTH-SSLR)が販売されており、以前サンプルの動作確認を行ったことがあったので、それをネタに、PrivateLoRaの概要説明を添えて記事にしています。

PrivateLoRa概要

LoRa(Long Range) は、米国のSEMTECH社によって、スペクトラム拡散の1種であるCSS(ChirpSpread Spectrum)をベースに開発された無線の変調方式の物理層の名称であり、LPWA(Low Power Wide Area)の1種です。低ビットレート(250~50Kbps)ですが、長距離伝送(10km)低消費電力 が特徴であり、加えてライセンス(免許)不要 というのもお手軽に利用可能な通信規格になります。

周波数の割当ては国ごとに異なります。LoRa Alliance の規格AS923によって、日本では920~928MHzが割り当てられていますが、LoRa以外の通信規格も含む920MHz帯の実際の運用は、社団法人電波産業会(ARIB)のSTD-T108 により日本国内での電波利用が規制されています。

先に書いた通り、LoRaは、物理層の名称であり、OSI参照モデルでのデータリンク層(MAC)の規定によって、異なる2種類のLoRaWANPrivateLoRaに分けられます。
LoRaWANは、LoRaAllianceが策定した標準規格で決められたプロトコルですが、PrivateLoRaは、各社が独自に仕様を決められるプロトコルのため、通信の最適化などカスタマイズが可能なものになっています。

SPRESENSE LoRa Add-onボード(CLEALINK DTH-SSLR)

PrivateLoRa を手っ取り早く試す上で、以下のCLEALINKから出されているSPRESENSE用Add-onボードがあります。

■ボード環境

動作環境として、senderとreceiverのLoRa通信環境を用意するためには、
Spresenseメインボード、アンテナ、コネクタケーブルを1セットにした、2セット分の環境を用意する必要があります。

購入先例(SWITCH SCIENCE):
ボード購入
アンテナ
ケーブル

■接続方法

メインボードの上側のUART2のピン側に接続します。LoRaボードは横にはみ出る形での接続になります。さらに、PrivateLoRaボードとアンテナをつなぐために、アンテナのSMAメスとコネクタ(ufl‐SMAオス)を接続します。

接続イメージ写真
DTH-SSLR_half.jpg

Softwareの準備

■ソフトウェア環境

先ほどのCLEALINKのサイトにて、ダウンロードでArduinoのsketchが落とせますので、手軽にPrivateLoRa通信のお試し環境を構築することができます。

ライブラリ名

  • spresense_e220900t22s_jp_lib.zip

ダウンロードのファイルを解凍すると、READMEがありますので、一応目を通しておきます。以下の2種類のサンプルが含まれています。

サンプル

  • E220-900T22S(JP)へのパラメータ初期設定
  • LoRa送受信

READMEに、"spresense_e220900t22s_jp_lib.hの以下の「E220-900T22S(JP)へのピンアサイン」を回路に合わせて変更してください。"との説明がありますが、Spresenseメインボードとの接続ではそのままで良いです。

// E220-900T22S(JP)へのピンアサイン
#define LoRa_ModeSettingPin_M0 PIN_D20
#define LoRa_ModeSettingPin_M1 PIN_D21

手順

以下にArduinoIDEを利用した、ソフトウェアの実動作までの手順を示します。

1. ArduinoIDEにライブラリをインストールする
 "Sketch"->"Include library"から、ダウンロードしたzipファイルをincludeします。
成功すると、外部ライブラリの中にSpresense E220-900T22S(JP) LoRa lbraryの表示が見られます。
2. example/lora_sendのスケッチ(lora_send.ino)をArduinoIDEで開き、ビルド&ロードを行います。
ロード後、チップへの初期設定が終了すると、"init ok"のメッセージが見られて、コンソールからの入力待ち状態になります。

program start
switch to configuration mode
# Command Request
0xc0 0x00 0x08 0x00 0x00 0x70 0x21 0x00 0xc3 0x00 0x00 
# Command Response
0xc1 0x00 0x08 0x00 0x00 0x70 0x21 0x00 0xc3 0x00 0x00 
init ok
switch to normal mode

3. example/lora_recvのスケッチ(lora_recv.ino)をArduinoIDEで開きます。
こちらも、チップへの初期設定が終了すると、"init ok"のメッセージが見られて、
コンソールからの入力待ち状態になります。

program start
switch to configuration mode
# Command Request
0xc0 0x00 0x08 0x00 0x00 0x70 0x21 0x00 0xc3 0x00 0x00 
# Command Response
0xc1 0x00 0x08 0x00 0x00 0x70 0x21 0x00 0xc3 0x00 0x00 
init ok
switch to normal mode

4. 送信側のボードのSerialConsoleにメッセージ Merry Christmas 2024! と入力します。

メッセージ入力時は、Ardino のSerial MonitorでConsoleタイプを”Both NL&CR”にして入力します。

  • 送信ボード側のConsole上の表示
000000Merry Christmas 2024!
send succeeded.

5. 受信側のボードSerialConsole
送信ボードからメッセージ送信後、受信ボード側のConsole上にメッセージが表示されます。

  • 受信ボード側のConsole上の表示
recv data:
Merry Christmas 2024!
hex dump:
4d 65 72 72 79 20 43 68 72 69 73 74 6d 61 73 20 32 30 32 34 21 
RSSI: -13 dBm

このように、簡単にPrivateLora通信を利用したメッセージ送受信の確認が取れました。
ご参考までに。

参考

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?