====== 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()