2011-05-02 11 views
1

XbeeでXbeeを複数のネットワークに接続しようとしています。エクスプローラとXbeeでマスターとしてコンピュータを接続しようとしています。Arduino FioでxbeeのIDを読んでシリアル通信で送信してください

すべてのArduinosにシリアル経由で 'Read'を送信してコマンドを送るとします。誰もが「OK」と答えます。

私の問題は、彼らが

は今、これは各arduinosのは簡単かもしれそれらに焼け別々のプログラムを持っている「ArduinoのID1がOKと言う」または「アルドゥイーノID2がOKと言う」などのようなものを対応することです。しかし、私の場合、すべてのarduinosは、同じプログラムを持っていると仮定されています。

初めてXbeeを設定するときにMyIDとPan IDを各Xbeeに割り当てます。

だから私は

「readMyXbeeID()」か何かArduinos例に焼き付けプログラムでは、いくつかの機能を探しています。

どうすればいいですか?達成する他の方法や同じことを同じですか?

答えて

2

ATコマンドを使用してMYIDを取得できました。 XBEE文書を読んで、これらを確認する必要があります。

"+++"を使用してコマンドモードに入ります(このシーケンスを 'ガード'するには1秒以上の遅延を忘れないでください)。

{私が使用:delay(1200); Serial.print ("+++") ;}

XBEEOK\rを応答します。 ATMY\rMYID returned as an ascii string terminated with "\r"です。 [私の場合は、2のMYIDを設定していたので、私は、文字列"2\r"を見た]コマンドモードを終了するには、コマンドATCN\r

完了]を。

0

複数のデバイスとの通信を管理する場合は、ATモードではなくAPIモードを使用することをおすすめします。 Arduinoで作業している場合は、実際に良いライブラリがあります:Xbee-ApiXBee-Arduinoです。ここでは、プロジェクトに役立つ有用な情報や例があります。

私はこれらのライブラリ(ZigBeeテクノロジの完全な初心者)でいくつかのプロジェクトを奨励し、すべてのコンセプトが本当に速くなっています。 100%回復可能。

あなたの質問に関しては、あなたはすべてのArduinosのための1つのプログラムを書くことが正しいです。そうしないと、ノードごとに異なる16進数のファイルを作成しなければなりません。 ZigBeeノードを識別する最も簡単な方法は、つまり64ビットの物理アドレスを使用することです。このアドレスはATコマンドで簡単に取得できます。ただし、APIモードでは、メッセージを送信するたびに送信元アドレスが自動的にフレームに含まれるため、この情報を明示的に含める必要はありません。

関連する問題