0

我正在尝试将多个 Arduino Fio 与 Xbee 作为从属设备和我的计算机作为主设备与 Explore 和 Xbee 联网。

假设我通过串行向所有 Arduino 发送并命令“读取”。每个人都回答假设'OK'。

我的问题是让他们回应“Arduino ID1 说好的”或“Arduino ID2 说好的”等。

现在这可能很容易,因为每个 arduino 都烧有单独的程序。但就我而言,所有 arduino 都应该有相同的程序。

我知道我们在第一次配置它们时为每个 Xbee 分配了 MyID 和 Pan ID。

所以我正在寻找烧入Arduinos示例的程序中的一些功能

'readMyXbeeID()' 之类的。

有什么想法我该怎么做?或者任何其他方式来实现同样的事情?

4

2 回答 2

2

我可以通过使用 AT 命令获取 MYID。您将需要阅读 XBEE 文档以确认这些。

用于"+++"进入命令模式(不要忘记“保护”此序列的 > 1 秒延迟)。

{我用过: delay(1200); Serial.print ( "+++" ) ;}

XBEE回应OK\r。然后ATMY\r会给你MYID returned as an ascii string terminated with "\r"。[在我的情况下,我设置了MYID2,所以我看到了字符串"2\r"]

完成命令ATCN\r以退出命令模式。

于 2011-11-07T13:57:26.827 回答
0

如果您想管理与多个设备的通信,我建议您使用 API 模式而不是 AT 模式。如果您正在使用 Arduino,有一些非常好的库:Xbee-ApiXBee-Arduino。在这里,您将找到可能对您的项目有所帮助的有用信息和示例。

我用这些库指导了几个项目(ZigBee 技术的完全初学者),他们很快就掌握了所有概念。100% 值得推荐。

关于您的问题,您只为所有 Arduinos 编写一个程序是正确的。否则你将不得不为每个节点创建不同的十六进制文件,这是没有意义的。识别 ZigBee 节点的最简单方法就是使用 64 位物理地址。您可以通过 AT 命令轻松获取此地址。但请记住,在 API 模式下,每当您发送消息时,源地址都会自动包含在框架中,因此您不必明确包含此信息。

于 2012-11-19T11:44:57.513 回答