7 基本的な使用方法
#
7.1 設定コマンドと送信までの一連の流れ本モジュールのレジスタへのパラメータ設定をするに当たり、Config/DeepSleepモードにするために、M1、M0ピンに接続しているMCUのGPIOピンを両方ともHighにします。Arduinoを用いた疑似コードを以下に示します。
Arduinoでの擬似コード
// E220-900T22S(JP)へのピンアサイン#define LoRa_ModeSettingPin_M0 12#define LoRa_ModeSettingPin_M1 13
pinMode(LoRa_ModeSettingPin_M0, OUTPUT);pinMode(LoRa_ModeSettingPin_M1, OUTPUT);
digitalWrite(LoRa_ModeSettingPin_M0, 1);digitalWrite(LoRa_ModeSettingPin_M1, 1);
10.1節のレジスタ書き込みコマンドに基づき、UARTからコマンドバイト列を送信します。ここでは例として、モジュールに対して以下の設定を一括で書き込む場合を述べます。
・自デバイスアドレス=0・baud_rate=9600bps・bw=125kHz・sf=9・ペイロード長=200byte・RSSI環境ノイズ=有効・送信出力=13dBm・待ち受け周波数チャンネル=0・RSSIバイトの出力=有効・送信方法=通常(Fixed-block)送信モード・WORサイクル=500ms・暗号化キー=0
このとき、送信バイト列は以下となります。
['0xc0', '0x00', '0x08', '0x00', '0x00', '0x70', '0x21', '0x00', '0xc0', '0x00', '0x00']
また、コマンドのレスポンスバイト列としてレジスタ設定値が以下の通り返ってきます。
['0xc1', '0x00', '0x08', '0x00', '0x00', '0x70', '0x21', '0x00', '0xc0', '0x00', '0x00']
以上により本モジュールのレジスタへのパラメータ設定ができたので、次はLoRa送受信について述べます。通常送受信モードにするために、M1、M0ピンに接続しているMCUのGPIOピンを両方ともLowにします。
レジスタ設定にて送信方法として通常(Fixed-block)送信モードを指定したので、ペイロードデータの前に宛先デバイスアドレス(2byte)と宛先デバイスの待ち受け周波数チャンネル(1byte)の情報を付加して、宛先デバイスを指定する必要があります。ここでは例として、以下の宛先とペイロードデータを送信する場合を考えます。
・宛先デバイスアドレス=10・宛先デバイスの待ち受け周波数チャンネル=5・ペイロードデータ= [‘0x68’, ‘0x65’, ‘0x6c’, ‘0x6c’, ‘0x6f’] (“hello”)
このとき、送信バイト列は以下となります
[‘0x00’, ‘0x0A’, ‘0x05’, ‘0x68’, ‘0x65’, ‘0x6C’, ‘0x6C’, ‘0x6F’]
また、受信側ではレジスタ設定にてRSSIバイトの出力を有効にしているため、受信モジュールから出力されるバイト列として、ペイロードデータとRSSIバイトが含まれます。
上記の送信データを受信して、RSSIバイトを含めた受信バイト列は以下のようになります。
RSSIバイトのdBm換算式(dBm = RSSIバイト-256)から、RSSIバイトの0xA0は160-256=-96dBmと計算されます。
[‘0x68’, ‘0x65’, ‘0x6C’, ‘0x6C’, ‘0x6F’, ‘0xA0’]
通常送受信モードにて、待ち受け周波数チャンネルの環境ノイズ計測および前回受信時RSSIについて確認するコマンド操作例を示します。コマンド発行時に環境ノイズと前回受信時RSSIをRSSI値として取得できます。6.8節の環境ノイズと前回受信時RSSI取得コマンドに基づき、UARTからコマンドバイト列を送信します。
[‘0xC0’, ‘0xC1’, '0xC2', '0xC3', '0x00', ‘0x02’]
コマンドのレスポンスバイト列として以下の通り返ってきます。この例では、環境ノイズRSSIを-110dBm、前回受信時RSSIを-97dBmとして示しています。
[‘0xC1’, ‘0x00’, '0x02', '0x92', '0x9F']