User Tools

Site Tools


public:protocols:python-digi-xbee

This is an old revision of the document!


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

Install
 pip3 install digi-xbee 
fix install error
 pip3 install --upgrade setuptools 

Typical required imports:

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:

inits
# 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 & remote pin control:

# Instantiate a remote XBee device object.
remote_device = RemoteXBeeDevice(device, XBee64BitAddress.from_hex_string("0013A200xxxxxxxx"))
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()
public/protocols/python-digi-xbee.1589125785.txt.gz · Last modified: (external edit)