在以前的教程中,我们了解了ZigBee协议及其体系结构,还了解了两个Xbee模块之间的无线通信。现在,在本教程中,我们将 XBee模块与Arduino Uno板接口。与Arduino开发板连接的XBee将充当接收器,并且将与其他XBee模块进行无线通信,而其他XBee模块使用Explorer开发板与笔记本电脑串行连接。因此,让我们进一步探索使用XBee进行Arduino无线通信的方法。
硬件要求
- 1个Arduino Uno
- 2个XBee Pro S2C模块(可以使用任何其他模型)
- 1个Xbee Explorer板(可选)
- 1 x Xbee分线板(可选)
- USB线
- 发光二极管
使用XCTU配置XBee模块
正如我们在以前的教程中了解到的那样,XBee模块可以充当协调器,路由器或终端设备,但需要将其配置为以所需的模式工作。因此,在将XBee模块与Arduino结合使用之前,我们必须使用XCTU软件配置这些模块。
要将XBee模块与笔记本电脑连接,使用USB到串行转换器或专门设计的浏览器板。只需将XBee模块连接到Explorer板,然后使用USB电缆将其与笔记本电脑插入即可。
如果您没有任何转换器或浏览器板,则可以将Arduino板用作USB到串行设备,可以轻松地与XBee和笔记本电脑进行通信。只需在Arduino板上上传空白草图,现在它的行为就可以像USB到串行转换器一样。
电路图中显示了ZigBee模块与Arduino接口的连接。
连接方式:
- XBee的Tx(pin2)-> Arduino开发板的Tx
- Xbee的Rx(pin3)-> Arduino开发板的Rx
- Xbee的Gnd(pin10)-> Arduino板的GND
- Xbee的Vcc(Pin1)-> Arduino开发板的3.3v
在本教程的此处,资源管理器板用于配置XBee模块。
从此链接下载XCTU软件并安装。下载并安装XCTU软件后,打开它并确保正确连接了XBee模块。在设备管理器中检查Arduino板的COM端口。
步骤1:-现在,点击搜索按钮。这将向您显示与笔记本电脑连接的所有RF设备。在我们的例子中,它将仅显示一个XBee模块。
第2步:- 选择Explorer板/ Arduino板的串行端口,然后单击Next。
步骤3:- 在下一个窗口中,如下所示设置USB端口参数,然后单击Finish(完成)。
步骤4:- 选择发现的设备,然后单击 添加选定的设备 。此过程会将您的XBee模块添加到XCTU仪表板。
步骤5:- 现在,您可以在此窗口中配置XBee模块。使用AT命令或手动放置数据。如您所见,左侧面板上显示R,这表示Xbee处于路由器模式。我们必须使其成为发送器部分的协调器。
首先,通过单击更新固件来更新固件。
步骤6:- 选择XBee模块背面提供的设备产品系列。选择功能集和固件版本,如下所示,然后单击更新。
步骤7:- 现在,您必须提供ID,MY和DL数据才能与其他XBee建立连接。两个模块的ID保持相同。只有MY和DL数据交换,即接收器XBee的MY成为发送器XBee(协调器)的DL,接收器XBee的DL成为发射器XBee的MY。让CE担任协调员,然后点击“写入”按钮。如下所示。
数据传输层 |
在我 |
||
XBee 1协调员 |
|||
XBee 2终端设备 |
步骤8:- 将以上数据写入发送器部件后,将其从资源管理器板上拔出,然后将其插入第二个XBee模块。重复与上述相同的过程,只有DL,MY和CE有所更改。由于我们将第二个XBee作为终端设备,因此在CE下拉菜单中,选择终端设备,然后单击“写入”按钮。
步骤9:- 现在,我们的XBee模块已准备就绪,可以与Arduino开发板连接。我们将使用Arduino开发板将发送器XBee连接到笔记本电脑,将接收器XBee连接到笔记本电脑。然后使用笔记本电脑向接收器部件发出命令。
接收器部分的电路图:
连接方式:
- XBee的Tx(pin2)-> Arduino开发板的Rx
- Xbee的Rx(pin3)-> Arduino开发板的Tx
- Xbee的Gnd(pin10)-> Arduino板的GND
- Xbee的Vcc(Pin1)-> Arduino开发板的3.3v
如果您使用Arduino开发板将发射器ZigBee与笔记本电脑连接,则连接方式与对ZigBee进行编程的方式相同。
使用Arduino编程和测试XBee通信
现在,我们将为接收器Arduino写一个代码,以便在接收器部件接收到“ a”时打开LED,并在接收到“ b”时使LED闪烁,因为其他字符LED将保持熄灭。
代码简单易懂。我们将只使用Serial.available()函数检查传入的字符,然后使用Serial.read()将这个字符存储在变量中。功能并将其与“ a”和“ b”匹配。如果匹配正确,则执行条件中指定的任务。最后给出了接收器部分的完整代码。将代码上传到Receiver部分Arduino中。上传之前,请先移除XBee的Tx和Rx线。
现在,我们都准备测试发射器和接收器。为了向发射器部分发出命令,我们将使用XCTU的控制台终端。单击设置选项附近的控制台图标。然后,单击“打开”按钮将XBee连接到笔记本电脑。
在控制台日志中输入“ a”。您会看到LED会亮起2秒钟,然后输入“ b”使LED闪烁5次。
您也可以将发送器XBee连接到Arduino板,只需稍微更改接收器代码即可。代替Serial.read()函数,使用Serial.println()函数发送字符。
查看下面的演示视频。
此XBee-Arduino设置可用于制造许多有用的无线应用,例如家庭自动化系统,聊天室等。