====== Digi.Xbee library:======
Usage of digi.xbee library for wireless data communication:
Source: [[https://xbplib.readthedocs.io/en/latest/getting_started_with_xbee_python_library.html]]
pip3 install digi-xbee
pip3 install --upgrade setuptools
===== Typical required imports: =====
import time
import sys
from digi.xbee.devices import XBeeDevice, RemoteZigBeeDevice, XBee64BitAddress, ZigBeeDevice, RemoteXBeeDevice, XBeeMessage, IOMode
from digi.xbee.io import IOLine
from digi.xbee.packets.common import TransmitStatusPacket
===== Typical instantiation of local device: =====
# instantiate XbeeDevice object:
#device = XBeeDevice("/dev/ttyS2", 9600)
device = ZigBeeDevice("/dev/ttyS2", 9600)
#device = ZigBeeDevice("COM13", 9600)
device.set_sync_ops_timeout(5)
device.open()
===== Typical instantiation of a remote device: =====
# Instantiate a remote XBee device object.
remote_device = RemoteXBeeDevice(device, XBee64BitAddress.from_hex_string("0013A200xxxxxxxx"))
===== remote pin control: =====
remote_device.set_io_configuration(IOLine.DIO11_PWM1, IOMode.DIGITAL_OUT_HIGH)
===== Typical serial data transmission: =====
* Send text to remote receiver
* receive text back from remote receiver
# Send data using the remote object.
#state = device.send_data(remote_device, "Hello XBee!")
sendID = 0
while(True):
if(sendID == 3):
sendID = 0
else:
sendID += 1
#h = hex(sendID)
#v = ("\xFF".encode('Latin-1'))
#state = device.send_data(remote_device, v)
state = device.send_data(remote_device, chr(sendID))
if(state != None):
print(state.transmit_status)
time.sleep(0.2)
# Read data.
xbee_message = device.read_data()
if(xbee_message != None):
remote_device = xbee_message.remote_device
data = xbee_message.data
is_broadcast = xbee_message.is_broadcast
timestamp = xbee_message.timestamp
print(str(data.decode()))
else:
print("No return message")
===== At end of program: =====
device.close()