TTN公式サイト にアクセスし、個人アカウントを登録またはログインします。コンソール(Console)で地理的位置などの条件に基づいてクラスターを選択します。
Create applicationをクリックし、Application IDとアプリケーション名を任意で入力し、Create applicationをクリックして作成を完了します。
作成済みのアプリケーション管理ページに入り、+ Register end deviceをクリックしてノードデバイスを登録します。Enter end device specifics manuallyを選択して、手動で設定を行います。
地理的位置とデバイスが使用する周波数帯に応じて各オプションを決定します。ノードデバイスとゲートウェイで使用する周波数帯が一致していることを確認してください。LoRaWANバージョンや地域パラメータのバージョンは、実際のハードウェアが対応しているプロトコルバージョンに従って選択してください。詳細は対応する製品のドキュメントページを参照してください。
このステップでは、ノードデバイスのアクティベーション(接続)モードを選択する必要があります。選択肢は2つあり、OTAAとABPです。
OTAA(Over the air activation)モードでは、デバイスがネットワークに参加する際にサーバーと動的にデバイスアドレスとセッションキーを交渉します。セキュリティは高いですが、接続速度はやや遅くなります。
ABP(Activation by personalization)モードでは、あらかじめ設定されたデバイスアドレスとセッションキーを使用して通信を開始するため、すぐにデータ送受信が可能ですが、柔軟性・セキュリティ・拡張性の面で劣ります。
これら2つのアクティベーションモードおよびそのパラメータについての詳細は、公式ドキュメントを参照してください:
OTAAモードを選択すると、JoinEUI(別名:AppEUI)の入力が必要になります。これは通常、ハードウェアメーカーによって事前に設定されていますが、当社製品はプログラマブルデバイスであるため、JoinEUIは任意の値で設定可能です。ただし、プログラミング時にも同じ値を使用する必要があります。形式は16桁の16進数(0~9、A~F)です。
値を入力後にConfirmをクリックすると、さらに多くの設定項目が表示されます。DevEUIとAppKeyは、後ろの🔁 Generateボタンをクリックすることで自動生成できます。生成後は後で使えるようにメモしておくことをお勧めします。End device IDを任意で入力し、Register end deviceをクリックしてデバイスの登録を完了します。
ABPモードを選択すると、DevEUI、Device address、AppSKey、NwkSKeyの4つのパラメータが表示されます。それぞれ🔁 Generateボタンをクリックすることで生成可能です。生成後は必ずメモしておいてください。End device IDを入力し、Register end deviceをクリックしてデバイス登録を完了します。
これまでのステップで、TTNプラットフォーム上でのアプリケーション作成とデバイス追加が完了しました。次は、デバイスをプログラムして、ゲートウェイを通じてTTNと通信できるようにします。前のステップで入力または生成した各パラメータを、下記のサンプルコードに対応させて入力してください。パラメータを保存し忘れた場合でも、TTNのデバイス設定ページから再確認可能です。
JoinEUI、DevEUI、AppKeyを使用します。Device address、AppSKey、NwkSKeyを使用します。以下のタブをクリックすると、該当デバイスのドライバライブラリとサンプルプログラムが取得できます。設定関数の形式と順序を参考にして、前のステップで取得した接続パラメータを入力してください。
上記の手順がすべて完了し、デバイスが正常にゲートウェイに接続されていれば、TTNの管理ページでデバイスの接続ログやアップリンクデータを確認できます。
Messaging機能をクリックすると、Webインターフェースからデバイスに手動でデータを送信することができます。
MQTTクライアントを使用してTTNサーバーからデータを取得し、データの送受信を実現します。MQTTサーバーのアドレス、ポート、接続名、パスワードは、TTNのアプリケーション管理ページの Other Integrations-MQTT にて確認できます。
Uplink Topic: v3/{application id}@{tenant id}/devices/{device id}/up
Downlink Topic: v3/{application id}@{tenant id}/devices/{device id}/down/push
デフォルトでは、受信したデータのペイロードはbase64エンコード形式です。
MQTTメッセージのトピックやフォーマットの詳細については、公式ドキュメントを参照してください: