首页 文章

Xbee,Arduino和处理设计查询

提问于
浏览
2

我有一个处理草图,它将基本的串行命令输出到xbee . 然后我有两个(很快就会是3个,也许是4个)arduino用他们自己的xbee来接收数据并做些什么 .

事情是每个Arduino都有它自己的目的,因此它是自己的数据包 .

所以,实现这一点 . 有没有办法向特定的xbee发送消息?即我可以为xbee分配某种索引或通道,然后让广播xbee将数据发送到它需要的任何索引或通道吗?

或者,这需要在Arduino软件中实现吗?即,处理为数据包添加索引/标识符前缀,并且arduino忽略带有该前缀的传入消息?

或完全有另一种选择:P

提前感谢您的建议 .

2 回答

  • 0

    虽然不是您问题的具体答案,但通过这种类型的通信,一些数据包错误检查将是有益的 . 使用crc错误检查算法发送数据 . 数据包结构可能类似于:

    0x7F 0x02 (Address Bytes) (Command Bytes) (CRC bytes) 0x7F 0x03
    

    其中0x7F是用于指示将跟随起始字节的DLE字符,并且将跟随结束字节,或者将跟随具有值DLE的数据字节 . 这意味着作为地址或命令一部分的任何DLE字符都应该以“Stuffed”DLE字符开头 . CRC根据地址和命令字节计算,用于检查接收数据的完整性 . CRC校验字节包含在每个数据包中 .

    这种类型的通信将防止使用到错误源的数据包,以及使用错误的数据包 .

    要了解有关串行帧的更多信息,请在此处开始:http://eli.thegreenplace.net/2009/08/12/framing-in-serial-communications/ .

  • 0

    据我所知,你希望能够分辨出你发送数据的Xbee的差异 . 您可以使用IP地址执行此操作 . 如果你有两个带有IP的Xbees:

    • Xbee1 - 192.168.80.50

    • Xbee2 - 192.168.80.51

    • Xbee3 - 192.168.80.52

    您可以通过将开始通信的Xbee连接到将接收它的Xbee来在它们之间发送信息 . 如果您希望通过无线网络(或以太网)进行任何类型的通信,则必须为每个Xbee分配IP .

    EDIT:
    如果您在计算机上安装了自己的服务器,例如Java . 您可以将Xbees连接到它并将它们连接到计算机服务器 . 然后,您可以设置服务器以接收和发送数据到不同的Xbee客户端 .

    我做了类似的事情:Maintaining communication between Arduino and Java program,但我没有使用Xbee,我使用官方的WiFi盾牌 .

    希望这有帮助! -Kad

相关问题