5

どのライブラリをどのように使用すればよいですか?

Python XBeeは API モードでしかコマンドを送信できないようで、それを使用して文字列を送信する例は見つかりません。APIモードとは何かを誤解しているのかもしれませんが、ドキュメントにペイロードが見つかりません...

Digi の Python Socket 拡張機能は Python に組み込まれていますか? 彼らが私の Python (2.7.3rc2) で定義したと主張する定数を取得できないようです。また、サイトでこれらの拡張機能を取得する方法についての言及も見つかりません。文字列を渡す方法のように思えますが、どのように使用すればよいでしょうか?

4

4 に答える 4

8

Xbee がシリアル デバイスとしてコンピュータに接続されている場合は、pySerial. 以下は、完成したばかりのプロジェクトのコード スニペットです。

# Connect to Xbee
self.ser = serial.Serial(port, baud, timeout=timeout)

# Send data (a string)
self.ser.write(packet)

# Read data
self.data += self.ser.read()

Xbees をトランスペアレント モードで使用していました。一方の端に書き込む各バイトは、もう一方の端に読み取りで表示されます。特別な Xbee ライブラリは必要ありませんでした。

于 2012-11-18T01:17:42.247 に答える
7

また、非常に単純なセットアップで XBees が 2 つしかない場合は pySerial を使用することをお勧めしますが、より複雑なものがある場合は、ライブラリを使用することをお勧めします。

python-xbee ライブラリは非常に簡単に使用できますが、包括的なドキュメントは一切ありません。それを使用して簡単なメッセージを送受信するには:

from xbee import XBee
from serial import Serial

PORT = '/dev/ttyUSB0'
BAUD = 9600

ser = Serial(PORT, BAUD)

xbee = XBee(ser)
# Send the string 'Hello World' to the module with MY set to 1
xbee.tx(dest_addr='\x00\x01', data='Hello World')

# Wait for and get the response
print(xbee.wait_read_frame())

ser.close()

次のようにして AT コマンドを送信できます。

xbee.at(frame_id='A', command='MY')
reply = xbee.wait_read_frame()
print(reply)

# Getting the integer value out of reply
import struct    
print(struct.unpack('>h', reply['parameter'])[0])

frame_id は任意の文字列に設定でき、正しい応答を識別するために使用されます。

于 2012-11-22T18:23:16.263 に答える
-1
ser = serial.Serial(SERIAL_PORT, 9600)
bee = ZigBee(ser) # <--

失敗した場合は、XBee の代わりに ZigBee を使用してみてください。

于 2014-03-13T13:20:45.923 に答える