ZIGBEE无线温湿度采集
一 实验简介
学习ZIGBEE已经有快一年了,前面一段时间一直都在学习协议栈,这个学期因为有计算机网络这门课,所以让我对ZIGBEE协议栈的体系结构有了更深一步的了解,对其中的运行机制认识深了一步,再结合王峰老师的教学视频,这才恍然大悟,以前我看那个视频总是懵懵懂懂,看着没有感觉,经过这段时间的努力,总算能跟着他的思维来思考这个流程了,这时我感觉我对协议栈的了解到了一定的程度了,对于开发应用有了七八成的把握,所以这次就做了这个无线温湿度采集的实验.
这次用了两块购买的FEEBIT的BB板,一块EB板,传感器使用的是DHT10,例程用的是TI提供的SENSOR DEMO,这个例子采用的是绑定模式进行数据无线传输,说到数据传输的方式,还有就是组播,广播,单播.系统操作流程:协调器首先建立网络,然后设成允许绑定模式,这时传感器启动,加入网络,建立绑定,随后按下传感器的S5键,传感器发送数据,协调器接收数据,最后通过串口显示在电脑上.
二 实验过程
这个流程和上次AM2301的差不多,也是先将板子当成单片机来调试代码,在这个调试通过以后,将代码加入协议栈.
一开始是准备器材和传感器的驱动代码,然后就是针对飞比的板子硬件资源进行第一步的修改,在这个实验中,我采用了P02管脚作为时钟信号,P03为数据线.然后用软件IAR进行初步测试,这个时候检测一下管脚电平和时序.然后一步一步检测数据线上的信号,将其与厂商提供的时序信号进行对比,然后调整代码.这是一个漫长的过程,我就不多讲了,反正大概的流程就是这样了,这里值得注意的就是改变管脚的方向,需要多看看CC2530的DATASHEET,那个传感器的DATASHEET也需要仔细看,每个细小的细节都会让传感器驱动不起来,这个时期主要是靠耐心和细心.
这个调通以后,就是将这个加入到协议栈了,这是重点,也是很多人关注的,.协议栈是一个让人很头痛的东西,但当你了解它以后,你就会发现它很简单,只是在茫茫代码中找到几个函数,对他们进行修改就可以了,当然这只是简单的应用开发,如果你想真正深入研究协议栈的话,那肯定是很复杂,那个过程应该叫做写应用协议,这应该IEEE协会或ZIGBEE联盟在做的事情,这个就好比已经有了TCP/IP协议,人们在此基础上开发了HTTP,FTP等应用协议一样,这些知识都是网络课给我提供的,在其中真是受益匪浅啊.接下来可能要涉及代码了,有些人可能要头痛了,我来告诉你这些关键代码藏在什么地方吧.其实全在那几个APP文件里.找到这个函数void zb_BindConfirm( uint16 commandId, uint8 status )不要说找不到,实在找不到就用编译器的FIND功能,找到以后看看我的与原来的代码的区别吧...
随后就是开始温湿度的采集,这时将调好的代码贴进去,在下面调用就可以了.
到这里采集模块该修改的地方已经修改好了,然后直接发送这些数据就可以了.
其中我要说明的是:这里就是设备的名称,不同的设备修改一下名字就行了,所有的问题都解决了.最终在电脑上就可以区别是哪个设备发送过来的数据了. 这里还要注意的问题是记得改变你要发送的数据的大小,否则显示会出问题,也就是数据不完整了,这是我在调试时犯的错误.
到了协调器了,这里的修改更为简单,存放接收到的数据结构..
注释掉的是原来的,我改变了他的数据结构.....
然后是发送的数据格式做相应的调整.....
这样协调器的修改就结束了,呵呵,是不是很简单啊,这些东西我想大家都会,只是不知道如何下手而已,你了解了它是怎么运作的,就知道在什么地方插入什么东西...
最后显示在串口助手上.......上图吧..
协调器
采集设备
两个传感器
数据的显示
http://download.csdn.net/detail/xing_jun/3708932附上自己修改的代码...希望能帮到在这一块的朋友..!!