以前のチュートリアルでは、ZigBeeプロトコルとそのアーキテクチャについて学び、2つのXbeeモジュール間のワイヤレス通信についても学びました。このチュートリアルでは、XBeeモジュールをArduinoUnoボードと インターフェースします。Arduinoボードに接続されたXBeeはレシーバーとして機能し、エクスプローラーボードを使用してラップトップにシリアル接続されている他のXBeeモジュールとワイヤレスで通信します。それでは、XBeeを使用したArduinoワイヤレス通信についてさらに詳しく見ていきましょう。
ハードウェア要件
- 1 x Arduino Uno
- 2 x XBee Pro S2Cモジュール(他のモデルを使用できます)
- 1 x Xbeeエクスプローラーボード(オプション)
- 1 x Xbeeブレイクアウトボード(オプション)
- USBケーブル
- LED
XCTUを使用したXBeeモジュールの構成
以前のチュートリアルで学んだように、XBeeモジュールはコーディネーター、ルーター、またはエンドデバイスとして機能できますが、目的のモードで動作するように構成する必要があります。したがって、ArduinoでXBeeモジュールを使用する前に、XCTUソフトウェアを使用してこれらのモジュールを構成する必要があります。
XBeeモジュールをラップトップに接続するには、USBからシリアルへのコンバーターまたは特別に設計されたエクスプローラーボードを使用します。XBeeモジュールをExplorerボードに接続し、USBケーブルを使用してラップトップに接続するだけです。
コンバーターまたはエクスプローラーボードがない場合は、ArduinoボードをUSBからシリアルデバイスとして使用して、XBeeやラップトップと簡単に通信できます。Arduinoボードに空白のスケッチをアップロードするだけで、USBからシリアルへのコンバーターのように動作できます。
ZigBeeモジュールをArduinoとインターフェースするための接続を回路図に示します。
接続:
- XBeeのTx(pin2)-> ArduinoボードのTx
- XbeeのRx(pin3)-> ArduinoボードのRx
- XbeeのGnd(pin10)-> ArduinoボードのGND
- XbeeのVcc(Pin1)-> Arduinoボードの3.3v
このチュートリアルでは、エクスプローラーボードを使用してXBeeモジュールを構成します。
このリンクからXCTUソフトウェアをダウンロードしてインストールします。XCTUソフトウェアをダウンロードしてインストールした後、それを開き、XBeeモジュールが正しく接続されていることを確認します。デバイスマネージャでArduinoボードのCOMポートを確認してください。
ステップ1:-次に、検索ボタンをクリックします。これにより、ラップトップに接続されているすべてのRFデバイスが表示されます。この場合、XBeeモジュールは1つだけ表示されます。
ステップ2:- エクスプローラーボード/ Arduinoボードのシリアルポートを選択し、[次へ]をクリックします。
ステップ3:- 次のウィンドウで、以下に示すようにUSBポートパラメータを設定し、[完了]をクリックします。
ステップ4:- 検出 されたデバイスを選択し 、[ 選択したデバイスの追加 ]をクリックし ます 。このプロセスにより、XBeeモジュールがXCTUダッシュボードに追加されます。
ステップ5:- これで、このウィンドウでXBeeモジュールを構成できます。ATコマンドを使用するか、データを手動で入力します。ご覧のとおり、左側のパネルにRが表示されています。これは、Xbeeがルーターモードになっていることを意味します。送信機部分のコーディネーターにする必要があります。
まず、[ファームウェアの更新]をクリックしてファームウェアを更新します。
ステップ6: -XBeeモジュールの背面で利用できるデバイスの製品ファミリを選択します。以下で強調表示されているように機能セットとファームウェアバージョンを選択し、[更新]をクリックします。
ステップ7:- 次に、他のXBeeと接続するために、ID、MY、およびDLデータを指定する必要があります。IDは両方のモジュールで同じままです。MYとDLのデータ交換のみ。つまり、受信機XBeeのMYが送信機XBee(コーディネーター)のDLになり、受信機XBeeのDLが送信機XBeeのMYになります。CEをコーディネーターにして、書き込みボタンを押します。以下に示すように。
ATDL |
私の |
||
XBee1コーディネーター |
|||
XBee2エンドデバイス |
ステップ8:- 上記のデータを送信機部分に書き込んだ後、エクスプローラーボードからプラグを抜き、2番目のXBeeモジュールに差し込みます。上記と同じプロセスを繰り返します。変更はDL、MY、およびCEのみです。2番目のXBeeをエンドデバイスとして作成するため、CEドロップダウンメニューで[エンドデバイス]を選択し、[書き込み]ボタンを押します。
ステップ9:- これで、XBeeモジュールがArduinoボードとインターフェイスする準備が整いました。私たちはしますArduinoのボードでノートパソコンと受信機のXBeeにトランスミッタのXBeeを接続します。次に、ラップトップを使用してレシーバー部分にコマンドを送信します。
レシーバー部品の回路図:
接続:
- XBeeのTx(pin2)-> ArduinoボードのRx
- XbeeのRx(pin3)-> ArduinoボードのTx
- XbeeのGnd(pin10)-> ArduinoボードのGND
- XbeeのVcc(Pin1)-> Arduinoボードの3.3v
Arduinoボードを使用して送信機のZigBeeをラップトップに接続している場合、接続はZigBeeのプログラミングと同じになります。
Arduinoを使用したXBee通信のプログラミングとテスト
ここで、レシーバー部分が「a」を受信するたびにLEDをオンにし、「b」を受信するたびにLEDを点滅させる、レシーバーArduinoのコードを記述します。他の文字の場合、LEDはオフのままです。
コードはシンプルで簡単に理解できます。Serial.available()関数を使用して着信文字をチェックし、Serial.read()を使用してこの文字を変数に格納します。関数を作成し、「a」および「b」と一致させます。一致が正しければ、条件で指定されたタスクを実行します。レシーバー部分の完全なコードは最後に示されています。レシーバー部分のArduinoにコードをアップロードします。アップロードする前に、XBeeのTxおよびRxワイヤーを取り外します。
これで、送信機と受信機をテストする準備が整いました。送信機部分にコマンドを与えるために、XCTUのコンソール端末を使用します。設定オプションの近くにあるコンソールアイコンをクリックします。次に、[開く]ボタンをクリックして、XBeeをラップトップに接続します。
コンソールログに「a」を入力します。LEDが2秒間点灯し、その後「b」を入力してLEDを5回点滅させます。
送信機XBeeをArduinoボードに接続することもできます。受信機コードを少し変更するだけです。Serial.read()関数の代わりに、Serial.println()関数を使用して文字を送信します。
以下のデモンストレーションビデオを確認してください。
このXBee-Arduinoセットアップは、ホームオートメーションシステム、チャットルームなどの多くの便利なワイヤレスアプリケーションを作成するために使用できます。