查看“组网实验”的源代码
←
组网实验
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{| style="width: 800px;" |- | ==目的== 本教程展示了Microduino-Zigbee模块的组网透传,本实验将采用Core+进行实验。 ==简介== *Zigbee网络的设备类型 在Zigbee网络中,有三种不同类型的设备,分别叫做:协调器(Coordinator)、路由器(Router)和终端节点(End Device),如图所示: [[File:Zigbee_Architecture.jpg|600px|center|thumb]] *协调器的功能特点 **选择一个频道和PAN ID,组建网络 **允许路由和终端节点加入这个网络 **对网络中的数据进行路由 *路由器的功能特点 **在进行数据收发之前,必须首先加入一个zigbee网络 **本身加入网络后,允许路由和终端节点加入 **加入网络后,可以对网络中的数据进行路由 * 终端节点的功能特点 **在进行数据收发之前,必须首先加入一个zigbee网络 **不能允许其他设备加入 **必须通过其父节点收发数据,不能对网络中的数据进行路由 ==设备== *Microduino模块 {|class="wikitable" |- |模块||数量||功能 |- |[[Microduino-Zigbee/zh]] ||3||无线通讯 |- |[[Microduino-Core+/zh]]||3||核心 |- |[[Microduino-USBTTL/zh]]||3 ||下载程序 |- |} ==配置== 你需要通过AT命令配置一个模块为协调器,一个模块为路由器,另一个为节点。AT命令使用参考: [[多种AT命令调试方式]] *配置协调器 **模块出厂默认为协调器,你可以通过AT+DETP?来查看设备类型: ***00-协调器 ***01-路由器 ***02-节点 *配置路由器 **先通过+++进入AT命令模式 **通过AT+DETP=01命令设置成路由器模式,返回值为:OK。可通AT+DETP?来查看,返回值为:+DETP 01 *配置节点 **先通过+++进入AT命令模式 **通过AT+DETP=02命令设置成路由器模式,返回值为:OK。可通过AT+DETP?来查看,返回值为:+DETP 02 *'''非协调器设备加入网络之后自动发送包含自己IEEE地址和短地址的报告数据包到协调器,不需人工干预,格式为+ZBC=<logicalType>,<localshortddr>,<localieeeaddr><\r\n>''' ** logicalType:设备类型 ** localshortddr:短地址,这个很重要,协调器和路由、节点是通过短地址来进行身份验证的 **协调器返回了该数据,就说明组网了,可以进行数据传输。'''一般先复位协调器,再复位路由,再复位节点就能组网了。''' ==硬件搭建== *协调器、路由器、节点搭建完全一样: 将Microduino-USBTTL、Microduino-Zigbee与Microduino-Core+三个模块直接叠加 [[File:Zigbee_Bridge.jpg|600px|center|thumb]] ==调试== ===串口工具调试=== 这里使用Core+调试 *程序 <source lang="cpp"> String myStringSerial1=""; String myStringSerial=""; void setup() { Serial.begin(9600); Serial1.begin(9600); } void loop() // run over and over { while (Serial.available() > 0) { myStringSerial += char(Serial.read()); delay(2); } if(myStringSerial!="") Serial1.println(myStringSerial); myStringSerial=""; while (Serial1.available() > 0) { myStringSerial1 += char(Serial1.read()); delay(2); } if (myStringSerial1.length() > 0) { Serial.print(myStringSerial1); myStringSerial1=""; } delay(100); } </source> *分别打开三个IDE开发环境,将程序复制到编辑框,选择好板卡和COM端口,将程序分别下载到核心。 *打开三个开发环境的串口监视器,选择好波特率,这里是9600,你得知道哪个监视器对应的是协调器的,哪个个对应的是路由器,哪个对应的是节点。也可通过+++进入AT模式,再通过AT+SRST复位来查看类型。如果复位的是路由器和节点,并且看到协调器上返回了数据,就可以直接通讯了。 [[File:Zigbee_style_1.jpg|800px|center|thumb]] *节点、路由器给协调器发送数据: **节点和路由器发送给协调器的格式是一样的 **数据输入框中写入你想发送的数据,如Hello Microduino!,然后发送,可以看到协调器接收到: +ZBD=XXXX, Hello Microduino!,XXXX为你的路由器或节点的短地址。 ***路由器给协调器发送数据 [[File:Zigbee_01_00_Network_2.jpg|800px|center|thumb]] ***节点给协调器发送数据 [[File:Zigbee_01_00_Network_1.jpg|800px|center|thumb]] *协调器给路由器、节点发送数据: **数据输入框中输入数据,注意格式为:+ZBD=XXXX,YYYY,XXXX为你的路由器或节点的短地址,YYYY为你想发送的数据,这样路由器和节点才能接收。 ***协调器给路由器发送数据 [[File:Zigbee_00_01_Networ_1.jpg|800px|center|thumb]] ***协调器给节点发送数据 [[File:Zigbee_00_01_Network_2.jpg|800px|center|thumb]] *当你断开路由器,节点也可以给协调器通讯,是因为近距离,可以组成星形网络,节点和协调器之间通信不通过路由,距离远,节点要通过路由给协调器通信(mesh网络)。 ===注意=== *如果不能实现数据传输,请检查Microduino-Zigbee模块是否已通过AT指令配置合理(节点类型,波特率等)。或者复位模块。AT命令使用参考:[[多种AT命令调试方式]] *一般先复位协调器,再复位路由,再复位节点就能组网了。 *协调器给路由器、节点发送数据必须加上+ZBD=XXXX,格式才行,因为要识别身份。 |}
返回至
组网实验
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息