Edited at

MurataのLoRaWANチップCMWX1ZZABZ搭載ボードをArduino IDEで開発(プログラム編)

前回 CMWX1ZZABZ搭載ボードをArduino IDEで開発するための環境構築に関して説明しましたので

今回は実際にサンプルプログラムからLoRaWANにOTAAモードで接続してみます。

なお接続先は「福岡市LoRaWAN実証実験」ゲートウェイでテストしました。

ベースとしたプログラムは

LoRaWAN_Join_OTAA です。

このプログラムは Arduino IDE の スケッチ例からも選択できます。


LoRaWAN_Join_OTAA.ino

/* Simple OTAA join for a LoRaWAN network

*
* In setup() below please replace the argument to LoRaWAN.begin()
* with your appropriate region specific band:
*
* AS923
* AU915
* EU868
* IN865
* KR920
* US915
*
* AU915/US915 networks have 64+8 channels. Typical gateways support only
* 8 (9) channels. Hence it's a good idea to pick the proper channel
* subset via select via LoRaWAN.setSubBand(),
*
* EU868/IN865 have duty cycle restrictions. For debugging it makes sense
* to disable those via setDutyCycle(false);
*
* For an external antenna one should set the proper antenna gain
* (default is 2.0) via setAntennaGain().
*
* Please edit the keys below as they are just debugging samples.
*
*
* This example code is in the public domain.
*/

#include "LoRaWAN.h"

const char *appEui = "0101010101010101";
const char *appKey = "2B7E151628AED2A6ABF7158809CF4F3C";
const char *devEui = "0101010101010101";

void setup( void )
{
Serial.begin(9600);

while (!Serial) { }

LoRaWAN.begin(US915);
// LoRaWAN.setSubBand(2);
// LoRaWAN.setDutyCycle(false);
// LoRaWAN.setAntennaGain(2.0);
LoRaWAN.joinOTAA(appEui, appKey, devEui);

Serial.println("JOIN( )");
}

void loop( void )
{
if (LoRaWAN.joined() && !LoRaWAN.busy())
{
Serial.print("TRANSMIT( ");
Serial.print("TimeOnAir: ");
Serial.print(LoRaWAN.getTimeOnAir());
Serial.print(", NextTxTime: ");
Serial.print(LoRaWAN.getNextTxTime());
Serial.print(", MaxPayloadSize: ");
Serial.print(LoRaWAN.getMaxPayloadSize());
Serial.print(", DR: ");
Serial.print(LoRaWAN.getDataRate());
Serial.print(", TxPower: ");
Serial.print(LoRaWAN.getTxPower(), 1);
Serial.print("dbm, UpLinkCounter: ");
Serial.print(LoRaWAN.getUpLinkCounter());
Serial.print(", DownLinkCounter: ");
Serial.print(LoRaWAN.getDownLinkCounter());
Serial.println(" )");

LoRaWAN.beginPacket();
LoRaWAN.write(0xef);
LoRaWAN.write(0xbe);
LoRaWAN.write(0xad);
LoRaWAN.write(0xde);
LoRaWAN.endPacket();
}

delay(10000);
}


変更箇所

LoRaWAN.begin(US915); -> LoRaWAN.begin(AS923);


appEuiappKeydevEui はゲートウェイへの登録値に合わせてください。

なおこのままだと10秒おきの送信となりますので delay(10000) の 10000 をもっと大きい数字に変更してください。

5分 : 300000