本文利用所学51单片机基础知识结合自动控制技术和蓝牙4.0通信技术、nRF24L01无线技术,设计完成一套两种不同的上位机控制的无线遥控家电开关系统。本设计详细地讲述了51单片机控制原理和单片机编程技术,HC-05蓝牙通信技术、nRF24L01无线技术以及自动化控制技术。整个系统以IAP15F2K61S2单片机为核心,单片机实现HC-05蓝牙指令的解析与继电器开关控制指令的发出。蓝牙模块在整个系统中负责蓝牙指令的接收和传输;家电开关的自动控制部分采用12路继电器开关来实现,为了使系统设计简便,操作演示方便,家用电器部分采用12种LED灯来模拟替代,通过继电器开关上接的LED灯的亮灭来模拟所控制的电器的开启和关闭,系统LCD12864液晶实时显示12种家电开关的开启与关闭状态。整个系统设计思路清晰,设计成本较低,具有较高的使用和推广价值。
本系统主要由核心控制模块、无线模块、温度传感器模块、显示模块、键盘模块、输出控制模块、电源模块组成,下面分别论证这几个模块的选择。
1.1核心控制模块论证与选择方案一:采用51系列8位单片机。
51系列单片机价格便宜,编程相对简单,但I/O口资源紧缺,存储空间小,响应速度慢,烧写程序复杂,需专门的下载工具,不支持在线调试。
方案二:采用MSP430系列16位单片机。
MSP430系列单片机功耗低,16位的精简指令集,8M晶振驱动下125纳秒的指令周期,内置JTAG电路,支持Flash在线编程技术,大容量ROM和RAM,能够存储大容量程序。当今工业控制向32位处理器ARM发展趋势日益加快,MSP430 16位处理器相对落后。
方案三:STC15系列单片机,1T STC-Y5 内核,比传统51系列快6-12倍,并且内部RAM扩大,传统51为128字节或256字节,它达到了2.25KB,内部高精准可调RC振荡器,有一个16位自动重载定时器,串口波特率设置更灵活,有片内SPI控制器,速度可达1/4主频速度,有片内PWM/PCA控制器,可捕获外部缓冲或者产生PWM,有片内AD,分辨率10位,8通道。
所以综上方案本系统选择方案三。
1.2 无线模块论证与选择
方案一采用NRF24L01无线射频方式进行遥控控制,采用此方案进行设计具有设计成本低廉,开发难度低等优点,便于推广和应用;不足之处是发射终端同样需要单片机进行控制,远程控制需要随时随地携带控制设备,同时由于没有相应的密码设置,容易被附近同样频段的遥控设备误操作。
方案二采用GSM移动通信网络的方式进行远程控制,系统通过手机远程发送短信的模式实现家用电器的开启和关闭采用此方案进行设计具有操作灵活,不用携带额外控制器即可远程控制,同时控制不受距离限制的优点;不足之处是开发难度大,设计成本相对较高,通过手机短信进行控制需要缴纳一定的通信费用,在一些低端的住宅场合推广具有一定的难度。
方案三采用手机蓝牙终端进行遥控控制,系统通过手机蓝牙实现家用电器开关的遥控开启和关闭,采用此方案进行设计具有控制方便灵活,不用额外携带控制设备即可实现家用电器的开启关闭的操作,同时蓝牙遥控具有密码匹配在操作安全性上有很好的保证,同时又不需要缉拿相应的通信费用。
通过以上三种方案的比较和分析论证,在当今人们追求生活便利作为主要目的的环境下,方案一虽然成本相对低廉,但是由于受制于安全性和操作的便利性,不过我们介于学习中的状态完全可以加入我们的设计中,因而在三种设计方案进行对比后,首先选择方案一。方案二和方案三是目前家电开关无线控制系统最好的两种方案,两种方案各有千秋,方案三相比方案二开发难度低,开发周期短,推广相对容易,方案二由于需要借助于移动通信网络进行远程控制,因而需要收取一定的通信资费,同时一单手机停机会造成无法遥控控制的情况。鉴于以上三种方案的对比,本文最终选择方案一、方案三作为整个系统的设计方案。
1.3温度传感器模块选择与论证方案一:采用数码管显示。
方案三:采用LCD1602显示,美观大方,液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点
方案三虽然体积小功耗低,但是方案二都具有方案三的特点,方案二的功能比方案三的功能更强大,所以显示模块选择方案二。
1.5键盘模块论证与选择图5 HC-05通信模块电路图
如图5所示,U6为系统蓝牙通信模块HC-05模块,二极管D5、D6和电阻R10、R11组成电平转换电路以保证系统可以同时在5V和3.3V的电压下工作,D7为蓝牙模块工作状态指示灯,其工作状态有以下三种:一,在模块上电的同时把BS-KEY引脚设置为高电平(或接到VCC)此时D7以亮一秒灭一秒的频率慢闪,模块进入AT状态,此时波特率为固定的9600。二,在模块上电的同时把BS-KEY引脚设置为低电平(或接地),此时D7以一秒闪烁2次的频率快闪,表示模块进入可配对状态,如果此时再将BS-KEY引脚电平置高,模块会进入AT状态,但是D7的闪烁频率不变。三,模块配对成功,此时D7双闪,一次闪2下,2秒闪一次。系统有了D7指示灯就能够很直观的判断模块的当前状态,方便使用。
2.1.6主机蓝牙模块功能测试蓝牙模块电路设计焊接好后,为了保证模块能够正常使用,首先要测试一下蓝牙模块收发功能是否正常,具体测试过程如下所述。
首先HC-05模块通过usb转TTL模块连接到电脑串口,连接方式如图6所示。
图6蓝牙模块与TTL模块接线方式图
HC-05模块出厂设置为从模式,所以发送AT+ROLE?得到的返回值为+ROLE:0,发送AT+ROLE=1即可设置模块为主机、具体操作界面如图7所示。
图7蓝牙模块测试界面图
2.1.7 主机家电控制电路设计与原理系统家电控制电路采用12路继电器控制实现,12路继电器分别控制饮水机开关、窗帘开关、冰箱开关、风扇开关、大厅灯开关、睡眠灯开关、卧室灯开关、插座1~插座5开关。继电器控制电路采用弱电控制强电的工作原理,单片机通过控制继电器的断开和吸合来控制外接家电的通断,具体控制电路如图8所示。
图8系统家电控制电路图
如图8所示,信号口分别接到单片机的IO口上,当单片机输出低电平的时候继电器吸合,外部接家电的开关吸合接通,家电启动工作;当单片机输出高电平的时候三极管断开,继电器外部开关断开,外接的家电停止工作。考虑到实际的可操作性,以及能够直观的分辨出继电器开发的接通和断开,外部家电采用LED灯的亮灭来替代,当对应家电的LED灯点亮代表对应家电电源接通,家电处于工作状态,当对应的LED灯熄灭代表对应的家电电源开关断开,家电停止工作。
2.1.8 主机与上位机系统显示电路设计与原理LCD液晶显示,采用点阵和带中文字符型 LCD 液晶显示,液晶显示模块具有体积小、功耗低、显示内容丰富等特点,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件,但采用LCD液晶显示会造成设计成本增加。
考虑到为了提高显示效果,系统选用LCD12864作为显示部分。LCD12864液晶显示电路如图9所示。
图9系统显示器件电路图
2.1.9上位机按键电路设计与原理
按键采用轻触开关当页面切换按键按下时单片机统计按键的次数液晶显示不同的页面,同时也通过NRF24L01发送一个相应的信号到主机中让主机与上位机同步显示。确定按键,按下一次则保存选择按键的数据并且发送相应的数据到主机上控制不同的继电器开关。选择按键有加也有减、按下按键选择不同的开关信号由确定键保存和发送,如下图所示。
图10 系统显示器件电路图
2.2.0上位机DS18B20电路设计与原理
DS18B20数字温度传感器是DALLAS公司生产的1—Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,在一根通讯线,可以挂很多这样的样的数字温度计,十分方便。 单片机也能直接读取DS18B20的数据程序也非常简单。电路如11图所示。
图11 DS18B20电路图
2.2.1接收和发送指示灯电路设计与原理
LED指示灯采用共阴极接法,R5与R10为限流电阻,当NRF24L01上位机进入发送函数时P3^6口得到低电平D2亮,否则灭。当主机接收到信号时P4^5得到低电平D8亮,否则灭
图12接收和发送指示灯电路图
3.程序的设计3.1系统软件编程环境介绍Keil C51 可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE 本身或其它编辑器编辑C 或汇编源文件,然后分别有C51 及A51 编辑器编译连接生成单片机可执行的二进制文件(.HEX),然后通过单片机的烧写软件将HEX 文件烧入单片机内。软件主要三个方面:一是初始化系统;二是数据采集;三是数据处理并进行显示。这三个方面的操作分别在主程序中来进行。程序采用模块化的结构,这样程序结构清楚,易编程和易读性好,也便于调试和修改。
3.2系统主程序流程图系统主程序主要包括系统的初始化、蓝牙串口通信、 NRF24L01通讯、开关状态的显示以及信号的输出控制等,系统主程序流程图如图13所示。
图13 主机程序流程图
系统主程序流程如图13所示,当系统上电后首先完成各个组件的初始化,一个系统的初始化是程序运行必不可少的环节,系统初始化部分主要包括:系统的初始化、蓝牙串口通信、 NRF24L01通讯、开关状态的显示以及信号的输出控制初始化等;初始化完成以后系统首先要启动蓝牙串口通信模块,保证蓝牙模块和手机蓝牙控制终端完成匹配。单片机通过串口通信的方式实现和蓝牙模块的通信,单片机对蓝牙模块接收到的指令进行解析然后输出控制指令到继电器开关,从而实现对家电开关的控制;LCD液晶对12路家电开关的开启和关闭状态进行显示,便于直观的测试。
3.3系统蓝牙通信模块子程序系统蓝牙通信模块子程序主要完成手机蓝牙指令的接收以及和单片机直接的数据通信等,此部分程序的完成是整个系统软件设计成功与否的关键所在。图14为系统蓝牙通信子程序流程图。
使用自制好的NRF24L01上位机与安卓APP对主机进行测试因为在编程程序时一边写一边调试所以做出来的硬件和程序都没有任何问题。
硬件测试:核心板子使用完整的IAP15F开发板作为调试主体,使用面包板搭建继电器电路通过单片机输出信号对相应的继电器做开关信号。
4.2 测试条件与仪器蓝牙遥控测试主要完成12路继电器的开启和关闭,为了直观的看出测试结果,每路继电器输出开关上接一个LED指示灯,通过观察对应继电器输出的LED灯的亮灭来测试,具体测试过程如下所述。
手机蓝牙发送指令“101”一次继电器1吸合,LED1点亮,再次发送指令“102”继电器1断开,LED1熄灭。
手机蓝牙发送指令“103”一次继电器2吸合,LED2点亮,再次发送指令“104”继电器2断开,LED2熄灭。
·
·
·
手机蓝牙发送指令“122”一次继电器12吸合,LED12点亮,再次发送指令“123”继电器12断开,LED12熄灭。
NRF24L01也是差不多一样的模式;
4.4有效距离手机蓝牙与主机蓝牙有效距离: 最佳距离:30米内
24L01上位机与主机24L01有效距离:最佳距离:100米内
5.总结与分析通过这次毕业设计的制作,巩固了我在大学3年里学过的知识,尤其是单片机和C语言编程方面的知识,同时也提高了单片机编程的能力,获得了软件调试的经验,并且也了解到了其它相关领域的知识,不论是对今后的工作还是学习都有着极大的帮助。
此次设计完成的作品主要有如下功能和特点:
以方便直观的观察到控制指令的接收和解析是否正确,便于功能的调试。
的应用和推广价值。
同时由于时间仓促,自己经验不足,在理论方面也相应存在缺陷,在整个系统的设计过程中也存在着一些问题,现总结如下:
1、电子电路的设计中对各种影响因素的考虑不够完全,比如在对系统电源部分的处理不够完善,早期系统工作不是很稳定。
2、没有扩展更多电路,如室内环境监测功能,通讯接口电路与上位机(PC机)进行通讯,上位机显示功能从而将大量的商品数据存于上位机,然后通过串口或并口通讯与系统相连,达到远距离监控的目的。
3、对各种实用芯片价格了解不够,在选择上有欠缺,如所选的显示终端价格较贵,从而使设计成本有所提高。
通过此次远程家电开关控制系统的设计和总结对我今后的学习和工作带来了积极的影响。
NRF24L01上位机原理图
主机原理图
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |