InAir9Bラジオ付きArduino LoRaセンサー

InAir9Bラジオ付きArduino LoRaセンサー

目次:

Anonim

ここでは、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」の代わりにデータを送信するようにプログラムします。