查看“监视器透传实验”的源代码
←
监视器透传实验
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{| style="width: 800px;" |- | ==目的== 本教程展示了Microduino-Zigbee模块的数据透传,本实验将采用Core、Core+进行实验。 ==设备== *Microduino模块 {|class="wikitable" |- |模块||数量||功能 |- |[[Microduino-Zigbee/zh]] ||2||无线通讯 |- |[[Microduino-Core+/zh]]||2||核心 |- |[[Microduino-Core/zh]]||2||核心 |- |[[Microduino-USBTTL/zh]]||2 ||下载程序 |- |} ==配置== 你需要通过AT命令配置一个模块为协调器,另一个模块为路由器。AT命令使用参考: [[多种AT命令调试方式]] *配置路由器 **先通过+++进入AT命令模式 **通过AT+DETP=01命令设置成路由器模式,返回值为:OK。可通过AT+DETP?来查看,返回值为:+DETP 01 *配置协调器 **模块出厂默认为协调器,你可以通过AT+DETP?来查看设备类型: ***00-协调器 ***01-路由器 ***02-节点 路由器必须reset才能给协调器发送消息,告诉协调器准备好了,同时发送数据给协调器。 *'''非协调器设备加入网络之后自动发送包含自己IEEE地址和短地址的报告数据包到协调器,不需人工干预,格式为+ZBC=<logicalType>,<localshortddr>,<localieeeaddr><\r\n>''' ** logicalType:设备类型 ** localshortddr:短地址,这个很重要,协调器和路由、节点是通过短地址来进行身份验证的 **协调器返回了该数据,就说明组网了,可以进行数据传输。一般先重启协调器,再重启路由,再重启节点就能组网了。 ==硬件搭建== *协调器与路由器搭建完全一样: 将Microduino-USBTTL、Microduino-Zigbee与Microduino-Core(或Microduino-Core+)三个模块直接叠加 [[File:Zigbee_Bridge_all.jpg|600px|center|thumb]] ==调试== ===串口工具调试=== *程序 协调器程序和路由节点是一样的,都是接收到串口监视器(Serial)的数据,再通过另一个串口转发出去,对于Core+来说就是串口1(Serial1),对于Core就是软串口(mySerial(2, 3))。 *采用Microduino-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> *采用Microduino-Core作为核心 : <source lang="cpp"> /* core hardware(RX0,TX1) =9600 core software(D2,D3)=9600 must match with cc2530 setup.when change cc2530 baud rate */ #include <SoftwareSerial.h> SoftwareSerial mySerial(2, 3); // RX, TX String myStringSoftCom=""; String myStringHardCom=""; void setup() { // Open serial communications and wait for port to open: Serial.begin(9600); // set the data rate for the SoftwareSerial port mySerial.begin(9600); } void loop() // run over and over { while (Serial.available() > 0) { myStringHardCom += char(Serial.read()); delay(2); } if(myStringHardCom!="") mySerial.println(myStringHardCom); myStringHardCom=""; while (mySerial.available() > 0) { myStringSoftCom += char(mySerial.read()); delay (2); } if (myStringSoftCom.length() > 0) { Serial.print(myStringSoftCom); myStringSoftCom=""; } delay(100); } </source> 我们可以看到程序和AT命令调试的程序是一样的,但是AT模式要通过+++命令来实现。 *分别打开两个IDE开发环境,将程序复制到编辑框,选择好板卡和COM端口,将程序分别下载到核心。 *打开两个开发环境的串口监视器,选择好波特率,这里是9600,你得知道哪个监视器对应的是协调器的,哪个对应的是路由器的。也可通过+++进入AT模式,再通过AT+SRST复位来查看类型,如果复位的是路由器,并且看到协调器上返回了数据,就可以直接通讯了。 [[File:Zigbee_style.jpg|800px|center|thumb]] *路由器给协调器发送数据: **数据输入框中写入你想发送的数据,如Hello Microduino!,然后发送,可以看到协调器接收到: +ZBD=XXXX, Hello Microduino!,XXXX为你的路由器的为短地址。 [[File:Zigbee_01_00.jpg|800px|center|thumb]] *协调器给路由器发送数据: **数据输入框中输入数据,注意格式为:+ZBD=XXXX,YYYY,XXXX为你的路由器的短地址,YYYY为你想发送的数据,这样路由器才能接收。如+ZBD=XXXX,Welcome!,然后发送,可以看到路由器接收到: +ZBD=XXXX,Welcome! [[File:Zigbee_00_01.jpg|800px|center|thumb]] *如果无法正常发送,请先重启下协调器,再重启下路由器。有两种方法: **按下Core核心的复位按键 **通过+++进入AT模式,再通过AT+SRST复位 ===注意=== *如果不能实现数据传输,请检查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
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息