arduino 无线模块_arduino局域网通信

arduino 无线模块_arduino局域网通信XBee无线模块的通信方式和结合Arduino的具体实施过程原理简介:XBee模块是Digi公司的一款采用ZigBee技术的无线模块,通过串口与单片机等设备间进行通信,能够非常快速地实现将设备接

XBee无线模块的通信方式和结合Arduino的具体实施过程

原理简介:
XBee模块是Digi公司的一款采用ZigBee技术的无线模块,通过串口与单片机等设备间进行通信,能够非常快速地实现将设备接入到ZigBee网络的目的。
XBee模块与单片机的串口通信有transparent和API两种操作模式,其中在transparent模式下单片机直接通过串口将要传输的数据发送给XBee模块,XBee模块按照ZigBee协议将数据通过无线发送给远端的XBee模块,远端模块再通过串口发送给单片机,就好像两个单片机之间通过XBee模块建立了一条透明传输通道 通信原理图如下图所示:
在这里插入图片描述
硬件:
2个Xbee及天线;xbee适配器;2个Arduino Xbee 扩展板;2个Arduino以及串口线。
在这里插入图片描述软件:
XCTU;Arduino IDE;XCOM V2.0。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
操作步骤
(一)使用XCTU配置XBee模块
XBee模块可以作为协调器、路由器或终端设备,但需要将其配置为在所需模式下工作。因此在将XBee模块与Arduino一起使用之前,我们必须使用XCTU软件配置这些模块。我们配置两个模块,一个核心模块,用来发送消息,一个子模块用来接收消息。
配置方法如下:
1:将Xbee插在Xbee适配器上,与电脑连接

在这里插入图片描述
2:首先我们对主模块进行配置
(1)插上USB与电脑连接后,打开XCTU软件界面上的+号来导入我们的XBEE, 选择XBEE对应的串口,并设置Bound Rate波特率(默认为9600,波特率越大传输速率越快,我们这里选择115200),然后点击Finish.
在这里插入图片描述
在这里插入图片描述
(2)点击左侧模块,就会读取到该模块的对应的固件和详细参数值,作为核心模块,我们需要修改以下几个参数:
1)设置 ID=2,ZS=2 SC=8;
2)核心模块为协调器 CE=1;
3)核心模块的DH设置为0000, DL设置为FFFF
4)记录下核心模块的SH和SL,为配置子模块做准备。
在这里插入图片描述
在这里插入图片描述
修改完成后,WRITE 写入到FLASH里面,进行固化。

3:然后我们对子模块进行配置
同样通过USB将子模块连接到PC上,并打开XCTU,选择对应串口,然后点击左侧模块,作为子模块,我们需要修改以下几个参数:
1)设置 ID=2,ZS=2 SC=8;
2)子模块的 CE=0;
3)子模块的DH设置核心模块的SH, DL设置为核心模块的SL
同时注意核心模块和子模块的波特率要一致,我们这里设置的都为115200。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改完成后,WRITE 写入到FLASH里面,进行固化。

配置完成后,我们便建立了两个模块的通信关系,然后便可以通过Arduino编写程序,实现两块arduino的通信。
(二)Arduino板烧写程序
给arduino编写代码,我们需要用到其串口通信函数,常用的有:
1)Serial.begin()
说明:开启串口,通常设置于setup()函数中。
语法:Serial.begin(speed); speed:波特率

2)Serial.available()
说明:判断串口缓存器的状态函数,用以判断数据是否送达串口。注意使用时通常用delay(100)以保证串口字符接收完毕。
语法:Serial.available();

3)Serial.print()
说明:串口输出数据函数,写入字符串数据到串口。
语法:Serial.print(val);val:打印的值,任意数据类型。
Serial.print(val,format); format:输出的数据格式。
Serial.println()增加了换行的步骤。

4)Serial.read()
说明:读取串口数据,一次读一个字符,读完后删除已读数据。
语法:Serial.read();

5)Serial.readString()
说明:从串口缓存区读取全部数据到一个字符串变量。
语法:Serial.read String();

6)Serial.parseInt()
说明:从串口接收数据流中读取第一个有效整数(包括负数)。
语法:Serial.parseInt();

7)Serial.write()
说明:串口输出数据函数,写二进制数据到串口。
语法:Serial.write();

以下为我们为两个Arduino编写的通信程序,包括接收端和发送端的
接收端:
在这里插入图片描述发送端:

在这里插入图片描述将程序分别上传到两块Arduino板上(注意,此时Arduino板上面不能接XBee,否则会占用串口导致无法上传)
然后将XBee装到Arduino Xbee 扩展板,再将Arduino Xbee扩展板装到Arduino上, 注意将烧录好TX程序的Arduino板和核心模块装到一起,将烧录好RX程序的Arduino板和子模块装到一起,扩展板的0->RX端口要与Arduino的0->RX对应,1<-TX要与Arduino的1<-TX对应。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(三)用XCOM串口助手测试通信过程
首先将带有核心模块的Arduino板连接到电脑上,打开串口助手XCOM,依次选择串口,波特率(此处为115200),然后点击打开串口。可以看到此时该核心模块一直在发送“8000”
在这里插入图片描述
在这里插入图片描述
然后将带有子模块的Arduino板子通过USB接到另外一台电脑上,打开串口助手XCOM 同样进行上面的操作,可以看到该模块接收到了来自主模块的消息。
在这里插入图片描述

今天的文章arduino 无线模块_arduino局域网通信分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/87280.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注