基于射频单片机的自动感知遥控暖箱设计
2018-01-25唐华
唐华
(南京晓庄学院,江苏南京,211171)
0 引言
暖箱的出现,为南方人们的工作生活提供了便利,不过当前多数暖箱一般仅能够依靠硬件来实现自动开关、智能恒温,功能相对单一,无法很好地满足人们个性化需求。对此,可以采用软件和硬件相互结合的方式,依托物联网技术自动完成暖箱环境内温度的监测、数据的远程传输、数据的显示及远程控制等工作来实现自动、感知、遥控的功能,有效的解决日常生活使用中的若干常见问题,达到温度上限及下限要求时,能自动通断电来控制发热体,从而保证智能控制温度,通信无需对准,用免费的公共信号2.4G的载波频段;同时配有振动传感器,能智能切换安全模式,从而保证熟睡的人的安全;配有压力传感器,通过感知是否有人来自动通断暖箱发热体,从而保证更节能;采用的发热体也是24V供电,发热体可辐射出波长为8-415纳米,对身体有益的远红外,同时保障安全节能,具有一定的现实意义及实用价值。
图1 暖箱系统框图
1 硬件设计
1.1 总体设计
系统总体包括暖箱和遥控器,暖箱硬件部分采用了CC2530单片机、开关电源、温度传感器、压力传感器、发热体等,如图1所示。
暖箱遥控器硬件部分采用了CC2530单片机、OLED、按键等,如图2所示。
图2 暖箱遥控器系统框图
1.2 模块设计
一是单片机模块,CC2530单片机成本低和功耗低,具备良好性能的同时,还遵循2.4G免费无线通讯频段的无线通信技术传递数据和控制指令,该通讯方式是一种新兴的短距离、低速率的无线网络技术,适应无线传感器的低花费、低能力、高容错性等的要求,主要用于近距离无线连接,采用跑单任务程序,不跑系统程序,可以避免系统中由于任务轮询机制造成的事件处理速度慢,可以自由定义通信握手信号,加快数据传输速度,也使AD转换处理的速度也快;二是温度传感器模块,采用DS18B20温度传感器,有体积小,硬件开销低,抗干扰能力强,精度高的特点,采用单总线接口,测温范围是-55℃~+125℃,能精确测量暖箱内温度,配合继电器进行恒温控制;三是振动传感器和压力传感器,振动传感器采用SW-18010P传感器,压力传感器采用应变片,能智能切换安全模式,从而保证熟睡的人的安全,同时压力传感器可以判断是否有人;四是按键模块,遥控器上拥有按键,进行控制,当遥控器找不到的时候可以通过暖箱上的按键进行控制;五是OLED显示模块,为0.96寸的12864屏,用于显示暖箱温度、模式等;六是变送器电路,压力传感器输出的信号微弱,不利于单片机采集,需要增加变送器电路,便于识别;七是发热体,24V供电,发热体可辐射出波长为8-415纳米,对身体有益的远红外[1]。
2 系统设计
2.1 主程序设计
为了确保单片机内部硬件能够正常运作,暖箱系统的主程序运行需要延迟100ms,之后对相应功能模块如按键、串口、RF、ADC、DS18B20等进行初始化操作,CC2530的IO口配置我们需要配置PxSEL、PxDIR、PxINP三个寄存器,有一些复杂功能模块初始化操作不仅要配置IO口,还要配置其它寄存器,例如串口0还需要配置PERCFG、U0CSR、U0GCR、U0BAUD和UT0XIF五个寄存器。编写while进入无限循环,在循环中,扫描按键,采集温度、压力、振动数据并进行处理,作出是否需要发热体工作,需要则驱动继电器使发热体工作,同时通过RF通讯传输暖箱的状况。
暖箱遥控器的主程序则需要对OLED液晶屏、RF和按键进行初始化操作,对OLED液晶屏的初始化直接移植厂家提供的范例。编写while进入无限循环,在循环中,扫描按键,执行相应的功能,并且通过RF通讯接收暖箱传递的数据,并进行显示。
2.2 自动开关程序设计
暖箱实现自动开关,需要获取压力传感器的数据,压力传感器输出微弱的模拟信号,通过变送器放大,在通过自带的ADC模块转换成数字,端口0引脚可以配置为ADC输入端,依次为AIN0~AIN7,配置ADC操作步骤如下:(1)配置APCFG寄存器:当使用ADC时,端口0的引脚必须配置为ADC模拟输入。要配置一个端口0引脚为一个ADC输入,APCFG寄存器中相应的位必须设置为1。这个寄存器的默认值是0,选择端口0为非模拟输入,即作为数字I/O端口。(2)配置ADCCON3寄存器:单通道的ADC转换,只需将控制字写入ADCCON3寄存器即可。(3)ADC初始化:主要对端口的功能进行选择,设置其传输方向,并将端口设置为模拟输入。(4)ADC数据采集:首先将ADCIF标志位清0,接着对ADCCON3寄存器设置,该寄存器一旦被写入,转换立即开启;然后等待ADCIF置1,这时候转换完成,读取数据即可。
配置完后就可以通过主函数读取压力的数据,通过压力来判断是否有人,若有人,则读取温度传感器采集到的温度,根据系统的温度范围,判断是否进行智能恒温调节,如果一段时间(10分钟)内没有人,则停止一系列操作,保障暖箱的使用安全,时间通过定时器累计。
2.3 智能恒温程序设计
初始化DS18B20传感器后,主程序一直读取温度数据,如果温度低于设定的下限值,则CC2530的IO口输出低电平,控制驱动电路驱动继电器,实现发热体的通电,进行加热升温,如果温度高于设定的上限值,则CC2530的IO口输出高电平,控制驱动电路驱动继电器,实现发热体的断电,不进行加热。例如用户设定的温度最小值为28℃,温度最大值为40℃,幅度为2℃,暖箱开始温度为20℃,则暖箱控制发热体工作,升到42℃(温度最大值+幅度)后,发热体不工作,暖箱温度降到26℃(温度最小值-幅度),发热体继续工作,一直循环[2]。
2.4 模式切换程序设计
振动传感器输出数字信号,检测到压力的同时且一段时间(10分钟)没有到振动,则可认为用户睡着,自动切换到人体最适温度范围。
2.5 通讯程序设计
使用CC2530自身的RF通讯,和遥控器进行组网,不需要外接任何无线模块,也不需类似红外,点对点进行通讯,非常的方便,也是系统采用该CPU最主要的原因之一,RF通讯的初始化需要设置TXPOWER、CCACTRL0、FRMFILT0、FSCAL1、TXFILTCFG、AGCCTRL1、AGCCTRL2、FREQCTRL、RFIRQM0、IEN2、RFST 十 一个寄存器,部分寄存器的值推荐通过SmartRF软件生成[3]。
3 结语
本文基于CC2530单片机,对自动感知遥控暖箱系统进行了设计,通过相应的软件程序,实现了硬件模块的有机联系,可以在遥控器的屏幕上对暖箱温度、模式等进行显示,通过暖箱上自带的按键或遥控器调节温度范围、模式,通过振动传感器判断人是否入睡,并且采用低电压,更安全、节能、环保。经调研和问卷调查,暖箱的智能性、安全性和环保性得到了充分肯定,用户也提出了一些富有建设性的意见,如提升发热体的发热效率、加热时间等,可以更进一步的提升暖箱的智能化程度。
[1]张同翰,王正彦,袁双,等.基于CC2530的ZigBee的智能家居设计[J].工业控制计算机,2015,28(4):75-76.
[2]王江红,朱丽君,孙学用.基于DS18B20恒温监控系统的设计与实现[J].湖北农业科学,2013,52(8):1947-1949.
[3]张毅,徐菲菲,雷景生,等.基于CC2530和ZigBee技术智能家居系统的设计与研究[J].上海电力学院学报,2017,33(2):191-195.