目次:
ここでは、inAir9BモジュールとArduino UNOをベースにしたLoRaWANスタックで動作するLoRaセンサーを作成する方法を段階的に説明します(同じことがメガにも適用されます)。
Web上のどこにでも完全なチュートリアルが見つからず、それを作成することにしました。
最後に、毎分 'Hello World'メッセージを送信するLoRaエンドノードを使用する準備が整います。
それはLoRaWANの例ですので、私はあなたがすでにLoRaゲートウェイを持っていると仮定します。
必要なもの
1. Arduino UNO(メガその他)
2. inAir9Bモジュール(他のモジュールでも同じように試すことができますが、このガイドの範囲外です)
3.ワイヤーとブレークボード
4. LoRaゲートウェイ
5. Arduino IDE搭載のPCまたはラップトップ
6.あなたのデータが来るのを見るためにLoRaネットワークサーバー(私はここでloriot.ioを使います)
準備:
ゲートウェイをネットワークサーバーに接続します。
1)最も簡単な方法はloriot.ioの無料アカウントを使用することです。そこに登録してゲートウェイを追加してください。それはあなたのゲートウェイを設定し、必要ならばカスタマイズされたソフトウェアをダウンロードするためのすべての指示を提供します。それが終わったら、あなたのGatewayは 'online'と 'Connected'に見えます。
2)あなたのサーバーにネットワークアプリケーションを作成します。
3)アプリケーションで新しいデバイスを生成してください。これにより、 'Device EUI'、DevADDR、NWKSKEY、APPSKEY、その他必要のない設定が表示されます。
用品:
ステップ1:配線モジュール
私のモジュールinAir9Bの中には足をはんだ付けしたもの(写真右)と私が自分ではんだ付けしたもの(写真左)がありました。あなたがブレッドボードを使用しているなら、あなたはそれに書かれているものを見ることができないので、事前はんだ付けされたモジュールは私のPOVから納得できないラベルの上に足を持っています。だから私のモジュールは足を下にしてはんだ付けした。しかし、それはあなたが何を選ぶべきか次第です。
次のようにinAir9BをArduinoに接続します。
inAir9B - Arduino
D0 - 2
D1 - 5
D2 - 6
CS - 10
0V - GND
3V 3 - 3.3V
SI - MOSI(ICSPヘッダー上)
SO - MISO(ICSPヘッダー上)
CK - SCK(ICSPヘッダー上)
ICSPヘッダーのピンについては、写真を参照してください。
ステップ2:プログラミング
Arduino用のLoRaWANライブラリには、現在2つのバージョンがあります。
1. http://github.com/matthijskooijman/arduino-lmic - このライブラリーは、C言語でIBM LoRaWANから移植されたものです。それに関する問題は、それが(主にAESの登録部分のために)大量のメモリを使用し、それが原因でArduino UNOのように使用することができなかったことです。しかし、それはいくつかの機能を無効にした後で使用することができます(それはコードを小さくします)。
2. http://github.com/things4u/LoRa-LMIC-1.51 - これはIBMライブラリーからの同じポートですが、AES登録用の異なるライブラリー(より小さいバージョン)です。
私は2番目の選択肢からスケッチを実行するのに問題があり、最初の選択肢で止めることにしました。
同じことをするには、上のリンクからライブラリをダウンロードし(Matthijs Kooijmanバージョン)、それをあなたのArduinoの 'libraries'フォルダ(解凍された)に置くべきです。それからArduino IDEを再起動するとライブラリと例でそれを見るでしょう。
まずライブラリのあるフォルダに行き、 'config.h'ファイルを開きます。その行をチェック
'#define CFG_sx1276_radio 1'はコメントアウトされておらず、 '//#define CFG_sx1272_radio 1'はコメントされています。
Arduino UNO用のスペースを節約するために '#define DISABLE_PING'と '#define DISABLE_BEACONS'の行をコメント解除してください(Megaの場合はこれをスキップできます)。
次にArduino IDEで開きます。ファイル - > 例 - > IBM LMIC framework - > ttn
ピンを確認してください。
//ピンマッピング
const lmic_pinmap lmic_pins = {.nss = 10、.rxtx = LMIC_UNUSED_PIN、.rst = 5、.dio = {2、5、6}、};
ネットワークサーバーでNWKSKEY、APPSKEY、DEVADDRを管理したとおりに設定します。
例として添付ファイルを参照してください。
あなたのスケッチをArduinoにアップロードしてください。完了しました。
それはあなたのゲートウェイへのパッケージの送信を開始し、その後Network Serverに転送されます。
'loriot'を使用している場合は、ページ上のサーバにパケットが送信されていることがあります。http://www.loriot.io/apps/gwtap.html?gw = B8-27-EB -…(GWのMACを入力してください)ここに)
また、サーバーに届くメッセージを確認することもできます(写真を参照)。
ここでHEXをASCIIデータに変換できます。http://www.rapidtables.com/convert/number/hex-to-a …
私の場合、 '48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21'は 'こんにちは、世界!'という意味です。
次のステップ:
実際のセンサーをarduinoに接続し、「Hello World」の代わりにデータを送信するようにプログラムします。