4

Xbee Pro 900 が 2 台あり、それぞれが Raspberry Pi に接続されています。どちらもバージョン 1061 に更新され、エスケープを使用して API を有効に設定されています。また、7FFF の同じモデム VID も持っています。どちらの Pi にも PySerial と python-xbee ライブラリがインストールされています。

Xbee 1(受信側)のシリアル番号は 0013A200409A1BB8
Xbee 2(送信側)のシリアル番号は 0013A200709A1BE9

以下にコードを含めました。これは、オンラインで見つけたサンプル コードです。私の問題は、適切な Xbee で何も受信していないことです。何が問題なのかまったくわかりません。送信先アドレスと Xbee の両方の構成設定を 3 回確認しました。

Xbee 2 コード (送信者):

#! /usr/bin/python

import time

from xbee import XBee
import serial

PORT = '/dev/ttyUSB0'
BAUD_RATE = 9600

# Open serial port
ser = serial.Serial(PORT, BAUD_RATE)

# Create API object
xbee = XBee(ser,escaped=True)
import pprint
pprint.pprint(xbee.api_commands)

DEST_ADDR_LONG = "\x00\x13\xA2\x00\x40\x9A\x1B\xB8"

# Continuously read and print packets
while True:
    try:
        print "send data"
        xbee.tx_long_addr(frame='0x1', dest_addr=DEST_ADDR_LONG, data='AB')
        time.sleep(1)
    except KeyboardInterrupt:
        break

ser.close()

Xbee 1 コード (レシーバー):

#! /usr/bin/python

from xbee import XBee
import serial

PORT = '/dev/ttyUSB0'
BAUD_RATE = 9600

# Open serial port
ser = serial.Serial(PORT, BAUD_RATE)

# Create API object
xbee = XBee(ser,escaped=True)

# Continuously read and print packets
while True:
    try:
        print "waiting"
        response = xbee.wait_read_frame()
        print response
    except KeyboardInterrupt:
        break

ser.close()

両方のプログラムが実行されている場合、送信側 Xbee の Tx ライトは点滅しますが、受信側 Xbee では何も受信しません。足りないものはありますか?御時間ありがとうございます!

4

2 に答える 2

0

XBee モジュールがエスケープ API モード ( ATAP=2) になっていますか? そして9600ボー?

python-xbee のモードを有効にして、すべての文字を出し入れできますか?

シリアル配線が正しいことを確認しましたか? (USB を使用しているようですので、問題ありません。)

ハードウェア フロー制御が接続されていない場合は、XBee モジュールが設定されてATD6=0おりATD7=0(RTS と CTS が無効になっている)、python-xbee がハンドシェイクを想定していないことを確認してください。

XBee でハードウェア フロー制御を構成している場合は、それを使用するように python-xbee に指示したことを確認してください。

minicom または RaspPi の別のシリアル ターミナルを使用して、シリアルが機能していることを確認できますか? 受信側で minicom を使用して、何かを得ているかどうかを確認しますか?

Pi の代わりに PC に接続された無線機で送受信を試すことはできますか? PC から Pi に送信しますか、それともその逆ですか?

于 2013-02-11T00:49:16.030 に答える