风筝
发表于: 2019-2-18 21:26:24 | 显示全部楼层

在本篇文章中,我们将使用Arduino Uno开发板连接一个XBee模块。与Arduino开发板连接的XBee模块将作为一个接收器,它将与其他XBee模块进行无线通信,这些模块使用Explorer Board与笔记本电脑串口连接。接下来,让我们进一步探索使用XBee模块和Arduino进行无线通信。

XBee-Module-Interfacing-with-Arduino.jpg


所需的硬件

●    Arduino Uno开发板

●    XBee Pro S2C模块(可以使用任何其他型号)

●    Xbee Explorer Board(可选)

●    Xbee分线板(可选)

●    USB线缆

●    发光二极管


使用XCTU配置XBee模块

正如我们在之前的教程中所了解的那样,XBee模块可以作为协调器Coordinator、路由器或终端设备,但需要将其配置为在所需模式下工作。因此在将XBee模块与Arduino一起使用之前,我们必须使用XCTU软件配置这些模块。


要将XBee模块与笔记本电脑连接,请使用USB转串口转换器或专门设计的Explorer电路板。只需将XBee模块连接到Explorer电路板,然后使用USB线将其与笔记本电脑一起插入。

如果您没有任何转换器或Explorer电路板,Arduino开发板也可以用作USB转串口设备,可以轻松与XBee和笔记本电脑进行通信。只需在Arduino板上上传空白草图,然后它就像USB转串口转换器一样工作。


ZigBee模块和Arduino的连接如电路图所示。

Circuit-Diagram-for-XBee-Module-Interfacing-with-Arduino.png


连接方式:

●    XBee的Tx(pin2) - > Arduino开发板的Tx

●    Xbee的Rx(pin3) - > Arduino开发板的Rx

●    Xbee的Gnd(pin10) - > Arduino开发板的GND

●    Xbee的Vcc(Pin1) - > Arduino开发板的3.3v

Components-Required-for-XBee-Module-Interfacing-with-Arduino.jpg


在本篇文章中,Explorer电路板用于配置XBee模块。


此链接下载XCTU软件并进行安装。下载并安装XCTU软件后,打开它并确保XBee模块已正确连接。检查设备管理器中Arduino开发板的COM端口。


第1步: - 现在,单击搜索按钮。这将显示与笔记本电脑连接的所有RF设备。在我们的示例中,它只显示一个XBee模块。

Connect-XBee-Module-to-PC-for-Interfacing-with-Arduino.png


第2步: - 选择Explorer板/ Arduino开发板的串口,然后单击Next。

Connect-Arduino-for-Interfacing-Xbee-with-Arduino.png

第3步: - 在下一个窗口中,如下所示设置USB端口参数,然后单击Finish

Set-Port-for-Connecting-Arduino-with-Xbee.png

第4步: - 选择Discovered设备,然后单击Add selected device。此过程将您的XBee模块添加到XCTU仪表板。

Xbee-Connected-with-Arduino-UNO.png

第5步: - 现在,您可以在此窗口中配置XBee模块。使用AT命令或手动输入数据。如您所见,左侧面板上显示R,表示Xbee处于路由器模式。我们必须让它成为发射机部分的协调器Coordinator。

首先,单击“Update firmware”更新固件。

Update-XBee-Firmware-for-Interfacing-with-Arduino.png


第6步: - 选择XBee模块背面的设备产品系列。选择下面突出显示的功能集和固件版本,然后单击“更新”。

Setup-Firmware-Update-of-Xbee-for-Interfacing-with-Arduino.png

第7步: - 现在,您必须提供ID、MY和DL数据以与其他XBee建立连接。两个模块的ID保持不变。只有MY和DL数据交换,即接收器XBee的MY变为发送器XBee(协调器)的DL,接收器XBee的DL变为发送器XBee的MY。将CE设为协调器,然后单击“Write”按钮。如下所示。

Configure-Xbee-for-interfacing-with-Arduino.png


第8步: - 将上述数据写入发射器部分后,将其从资源管理器板中插出并插入第二个XBee模块。重复上述相同的过程,只有更改是DL、MY和CE。因为我们将第二个XBee作为终端设备,所以在CE下拉菜单中,选择End device,然后点击Write按钮。


第9步: - 现在,我们的XBee模块已准备好与Arduino开发板连接。我们将使用发射器XBee连接到笔记本电脑,Arduino开发板连接到接收器XBee。然后使用笔记本电脑向接收器部件发出命令。


使用Arduino编程和测试XBee通信

现在,我们将为接收器Arduino编写一个代码,以便在接收器部件接收到“a”时点亮LED,并在接收到“b”时使LED闪烁,对于其他字符,LED将保持熄灭状态。


代码简单易懂。我们将使用Serial.available()函数检查传入的字符,并使用Serial.read()函数将此字符存储在变量中;然后将其与'a'和'b'进行匹配。如果匹配正确,则执行条件中指定的任务。在文章最后给出了Receiver部分的完整代码。上传接收器部分Arduino中的代码。在上传之前删除XBee的Tx和Rx线。


现在,我们都准备测试我们的发射器和接收器。为了给发射器部分命令,我们将使用XCTU的控制台终端。单击设置选项旁边的控制台图标。然后,单击“打开”按钮将XBe​​e连接到笔记本电脑。


在控制台日志中输入“a”。您将看到LED将亮起2秒钟,然后输入“b”使LED闪烁5次。

Complete-XBee-Arduino-Setup.png

您也可以将发射器XBee连接到Arduino开发板,只需稍微更改接收器代码即可。代替Serial.read()函数,使用Serial.println()函数发送字符。


这个XBee-Arduino设置可用于制作许多有用的无线应用,如家庭自动化系统、聊天室等。


代码

以下是本篇文章使用的完整代码:

  1. int led = 13;
  2. int received = 0;
  3. int i;
  4. void setup() {
  5.   Serial.begin(9600);
  6.   pinMode(led, OUTPUT);
  7. }

  8. void loop() {
  9.   if (Serial.available() > 0) {
  10. received = Serial.read();
  11.   
  12.     if (received == 'a'){
  13.     digitalWrite(led, HIGH);
  14.     delay(2000);
  15.     digitalWrite(led, LOW);
  16.     }
  17.      else if (received == 'b'){
  18.       for(i=0;i<5;i++){
  19.     digitalWrite(led, HIGH);
  20.     delay(1000);
  21.     digitalWrite(led, LOW);
  22.     delay(1000);
  23.     }
  24.   }
  25. }
  26. }
复制代码

跳转到指定楼层
回复

使用道具 举报

GCGC
发表于: 2019-11-13 17:43:39 | 显示全部楼层

楼主,请问这种图怎么画的
回复

使用道具 举报

GCGC
发表于: 2019-11-13 17:44:08 | 显示全部楼层

就是arduino和Xbee的接线图
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 700 | 回复: 1480



手机版|

GMT+8, 2024-4-20 04:54 , Processed in 0.134561 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表