- ハードウェア要件
- XCTUを使用したXBeeモジュールの構成
- レシーバー部分の回路図
- シリアル通信用にRaspberryPiをセットアップする
- XBee通信用のRaspberryPiのプログラミング
- RaspberryPiを使用したワイヤレスXBee通信のテスト
前のチュートリアルでは、XBeeモジュールをArduino Unoとインターフェースし、XBeeモジュールを使用してワイヤレスで通信できるようにしました。次に、XBeeモジュールをレシーバーとして機能するRaspberry Piと インターフェイスし、ラップトップにシリアル接続されている別のXBeeモジュール(XBeeエクスプローラーボード)とワイヤレスで通信できるようにします。
ハードウェア要件
- Raspbianがインストールされた1x Raspberry Pi
- 2 x XBee Pro S2Cモジュール(他のモデルを使用できます)
- 1 x XBeeエクスプローラーボード(オプション)
- 1 x Xbeeブレイクアウトボード(オプション)
- USBケーブル
- LED
RaspberryPiはすでにオペレーティングシステムでフラッシュされていると想定されています。そうでない場合は、先に進む前に「RaspberryPi入門」チュートリアルに従ってください。ここでは、RasbianJessieがインストールしたRaspberryPi3を使用してい ます。
ここでは、HDMIケーブルを使用した外部モニターをディスプレイとして使用してRaspberryPiに接続します。モニターがない場合は、SSHクライアント(Putty)またはVNCサーバーを使用して、ラップトップまたはコンピューターを使用してRaspberrypiに接続できます。Raspberry Piのヘッドレスセットアップの詳細については、こちらをご覧ください。
XCTUを使用したXBeeモジュールの構成
ZigBeeの紹介の以前のチュートリアルで学んだように、XBeeモジュールはコーディネーター、ルーター、またはエンドデバイスとして機能できますが、目的のモードで動作するように構成する必要があります。したがって、Raspberry PiでXBeeモジュールを使用する前に、 XCTUソフトウェアを使用してこれらのモジュールを構成する必要があります。
XBeeモジュールをラップトップに接続するには、USBからシリアルへのコンバーターまたは特別に設計されたエクスプローラーボードを使用します。XBeeモジュールをExplorerボードに接続し、USBケーブルを使用してラップトップに接続するだけです。
コンバーターまたはエクスプローラーボードがない場合は、 ArduinoボードをUSBからシリアルデバイスとして使用し て、XBeeやラップトップと簡単に通信できます。Arduinoボードに空白のスケッチをアップロードするだけで、USBからシリアルへのコンバーターのように動作できます。
XBeeモジュールの構成:
このチュートリアルでは、 エクスプローラーボードを使用して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モジュールがRaspberryPiとインターフェイスする準備が整いました。我々はなりラズベリーパイでノートパソコンと受信機のXBeeに送信のXBeeを接続します。次に、ラップトップを使用してレシーバー部分にコマンドを送信します。ラップトップ。
レシーバー部分の回路図
ZigBeeモジュールをRaspberryPIとインターフェースするための接続を 回路図に示します。
接続:
- XBeeのTx(pin2)->ピンRaspberryPiのTx
- XBeeのRx(pin3)->ピンRaspberryPiのRx
- XBeeのGnd(ピン10)->ピンRaspberryPiのGND
- XBeeのVcc(Pin1)-> 3.3vのピンRaspberryPi
- LEDはGPIO23に接続されています
シリアル通信用にRaspberryPiをセットアップする
次に、シリアル通信用にRaspberryPiをセットアップします。デフォルトでは、Piのハードウェアシリアルポートは無効になっています。したがって、接続を開始する前に有効にする必要があります。
1.ターミナルで、コマンド raspi-configを 実行します。
2.オプション5 インターフェイスオプションに 移動し、Enter キーを押します 。次に、[ P6シリアル ]オプションを選択して有効にし、保存します。
ターミナルを終了すると、RaspberryPiとXBeeを接続する準備が整います。GPIO14と15はそれぞれTxとRxとして機能し、これらはラズベリーパイの/ dev / ttyS0ポートで入手できます。
ここで、送信機側のXBeeから「a」を受信するたびにLEDをオンにするPythonスクリプトを記述します。
XBee通信用のRaspberryPiのプログラミング
XBeeをRaspberryPiとインターフェースするための完全なPythonプログラムを最後に示します。
まず、インポート関数を使用して、時間、シリアル、およびRPi.GPIOライブラリをインポートする必要があります。
インポート時間 インポートシリアル インポートRPi.GPIOをGPIOとして…
次に、シリアル接続のプロパティを記述し、ポート、ボーレート、パリティを次のように定義します。
ser = serial.Serial( port = '/ dev / ttyS0'、 baudrate = 9600、 parity = serial.PARITY_NONE、 stopbits = serial.STOPBITS_ONE、 bytesize = serial.EIGHTBITS、 timeout = 1 )
while ループにすべての送信要素と受信要素 を 記述します。
一方1:
ser.write 関数を使用して、メッセージを送信側に送信できます。カウントを送信するには、以下の行のコメントを解除します。
#ser.write(str.encode( '書き込みカウンター:%d \ n'%(counter))) #time.sleep(1) #counter + = 1
メッセージを受信するには、 ser.readline() 関数を使用する 必要があり ます。着信メッセージを変数に格納し、条件を確認します。着信メッセージが「a」の場合は、LEDを3秒間オンにしてから、LEDをオフにします。
x = ser.readline()。strip() print(x) if x == 'a': GPIO.output(23、GPIO.HIGH) time.sleep(3)…。
チュートリアルの最後に、デモンストレーションビデオを含む完全なPythonコードを示します。Piの任意のテキストエディタにコードを貼り付けて保存します。sudo python script_name.pyを使用してターミナルでスクリプトを実行するか、PythonIDEとシェルを使用してスクリプトを実行できます。
RaspberryPiを使用したワイヤレスXBee通信のテスト
これで、XBee送信機と受信機をテストする準備が 整いました。送信機部分にコマンドを与えるために、XCTUのコンソール端末を使用します。設定オプションの近くにあるコンソールアイコンをクリックします。次に、[開く]ボタンをクリックして、XBeeをラップトップに接続します。
コンソールログに「a」を入力します。LEDが3秒間オンになり、その後オフになります。
このようにして、前のチュートリアルで説明したように送信機XBeeをArduinoボードに接続し、RaspberryPiとArduinoを相互に通信させることもできます。