毕业论文 - 基于51单片机和NRF24L01的无线温度监控 - 图文 联系客服

发布时间 : 星期六 文章毕业论文 - 基于51单片机和NRF24L01的无线温度监控 - 图文更新完毕开始阅读

4.2软件的总体设计 4.2.1 发送部分

发送部分的一个循环的总体思路是这样的先初始化DS18B20,从DS18B20读出温度(DS18B20采用默认的12位精度),将得到的温度值的反码转化成十进制,取温度数组的高两位(即整数部分)写入发送数据数组,然后初始化nRF24L01,将温度发送,其流程图如图4.5所示[15]。

图4.5 发射部分总体流程图

将温度写入发射数组转换温度为十进制从DS18B20读温度延时初始化发射数据开始4.2.2接收部分

接收部分的总体思路是这样的,首先还是初始化nRF24L01,然后进入大循环判断状态寄存器是否有接收中断。如果有就从FIFO_buffer读入二进制数据,然后将数据转换成十进制在数码管上显示出来,其流程图如图4.6所示。

没有天生的聪明 只有不懈的努力

20

图4.6 接收部分总体流程图

转换为十进制从RX_FIFO buffer读数据判断接收中断初始化数码管显示开始

五、设计总结

在这课题设计中我学到了很多东西,获益匪浅。本次课题以51单片机为核心实现了远程无线智能化温度监控,过温警告。

利用温度传感器获取被控对象指标,通过温度传感器将需要测量的温度信号转化为数字电信号,通过单总线与MCU进行传输,再经单片机转换成温度值经过NRF24L01无线模块进行传输,再由接收机通过NRF24L01进行接收,最终由接收机进行处理,并将当前所监控的温度值,通过LCD1602进行显示。并且可以由按键进行温度的最大最小值得设定,最终将监控温度设定在一个范围内。若温度过高或过低都可由报警模块进行报警。

在设计此次课题的初期,考虑到手中有两块闲置的单片机,并且有一块1602显示模块及两块无线模块。所以快速的决定做一个无线的课题,可是无线控制什么呢?于是上网百度了一下,发现在现代的工业控制中,温度是一个非常重要的因数。并且在电子行业中,温度也是非常重要的,而且温度过高对电子产品的损害非常厉害。于是决定做一个关于温度监控的课题。这是设计之初的目的。

但是在设计的过程中,暴露的问题非常之多。而且反了一个致命的错误。由于本人在焊接NRF24L01模块时,没有查阅相关的模块供电电压,直接用了单片机的VCC对其进行供电。导致模块被烧坏,本人深深的心痛啊。悔不当初,不看说明书,自己想怎么干就怎么干。在模块被烧坏后,一直处于后悔中,但是想想,就当花钱买个教训吧,于是重新振作起来,上网淘宝淘宝,当新的模块到手后,这下,我并不急于对无线模块进行焊接,反而是将重点转向了模块供电电压部分的设计,由于模块是3.3V供电的(这是后来查阅说明书了解到的),可是自己手中只有7805和7809这两种稳压芯片。并无3.3v的稳压管及稳压模块。于是向盛老师求助。最终盛老师给了我两块AZ1117T,电源问题才得以解决。在此感谢盛老师。还有就是单片机对于RF24L01高频模块的读写、操作等比较复杂,查找的资料也很难理解。还有就是DS18B20的时序也有一定难度。

不过,通过这次的学习和实践,我学会了如何看待问题,解决问题。例如,调试无线收发时,1602老显示乱码,而且一直跳跃不定,又例如后来整合程序时,温度不正确,老是成不断上升趋势,后来检查程序后才发现是没有将温度的全局变量清零,导致每次循环累加。

姓名:张登翔

学号:201212020216

班级:2012级电子信息1班

六、参考文献

【1】 谭浩强.C程序设计北京[M].北京:清华大学出版社,1999 .

没有天生的聪明 只有不懈的努力

22

【2】 朱玉颖,蔡占辉.基于nRF24L01的远程温度检测系统设计[J] .通信与信息处理,2010,29(5):56-58.

【3】郭天祥,新概念51单片机C语言教程.哈尔滨:电子工业出版社。2008

七、硬件原理图及调试

7.1系统硬件原理图

发射机