基于STM32和GSM的远程遥控定时开关装置
2013-04-25夏骏,王甜
夏 骏,王 甜
(陕西理工学院 物理与电信工程学院,陕西 汉中723000)
目前,国内市场上出现了多种定时开关产品,并被广泛应用于家居生活、汽车服务、公共照明和仓库管理等领域。其中大部分产品都只有简单的定时功能,无法实现遥控、显示等高级功能。而少数可遥控的产品也只局限于较近距离的范围内,并未实现远程控制,这些降低了它的便利性和实用性。随着科技的进步,人们向往智能化、节约化的家居生活,各种网络家电应运而生,但其高昂的价格却让普通大众望而却步,因此怎样使传统电器“智能化”是当前一个值得研究的问题[1-2]。
针对上述问题,设计了一种新型的智能开关装置,在传统定时开关的基础上改进完善,并对GSM网络在该领域的应用进行了研究,真正实现用户在任何时间、地点,对用电器工作状态的控制。不仅如此,设计还对传统定时开关结构进行了改进,使得一个主控制器可在一定范围内无线遥控任意分布的多个定时开关分机,帮助建立类似于网络家电体系的小型民用遥控开关控制系统,可大幅降低使用成本。设计中还加入了触摸屏显示和红外遥控等功能,使得产品更加人性化,具有操作方便、可靠性强、小型化、低功耗等特点,弥补了传统产品的不足,同样适合老年人、残疾人使用。
1 系统概述
系统利用GSM短信网络,使用户在信号覆盖范围内的任何位置,都能随意控制各种用电器的工作状态,系统整体结构如图1所示。
图1 系统整体结构图
用户处在远程位置时,可以使用手机或其他方式,通过现有GSM网络以短信息的形式向主控制器发送指令。当主控制器的处理器单元检测到接收完成后,会立即从GSM模块中读取短信内容,并分析判断是否需要执行。如需执行,则处理器就会启动无线传输模块向指定的一个或多个控制分机发送相应的指令,并通过触摸屏显示相关参数;当控制分机的处理器单元读取并识别指令后,会控制光耦对继电器做出相应动作。
当用户在近距离范围内时,可以通过红外遥控器或主控制器自带的触摸屏,向主控制器发送“定时开(关)”等指令,主控制器的红外接收器或处理器单元接收到指令后,经过分析处理,根据指令内容做出相应动作。
2 硬件电路设计
系统分为主控制器和控制分机两部分。主控制器系统以意法半导体公司的STM32F103RBT6芯片为核心的处理器单元和西门子公司生产的TC35模块为主,还包括了由AT24C02芯片组成的存储电路、nRF24L01+无线传输模块、红外接收器HS0038B、以及一块2.8寸(1寸=2.54 cm)TFT触摸屏。其硬件结构如图2所示。
图2 主控制器硬件结构图
控制分机系统如图3所示,其处理器单元采用低成本的STC89C52芯片,并与无线传输模块、红外接收器、数字温度传感器DS18B20、LED指示灯等构成控制分机系统。而控制分机的执行模块,则由光耦芯片PC817、继电器驱动电路和插座共同组成。为保证系统的稳定可靠和使用安全,控制分机的系统电源和继电器驱动路的电源相互独立,二者之间没有联系。
图3 控制分机硬件结构图
2.1 处理器单元
主控制器的处理器单元选用意法半导体公司新STM32F103RBT6芯片,它是基于ARM公司推出的V7平台的Cortex-M3内核的32位处理器[1]。该处理器芯片具有64个引脚、51个IO口、128 kB Flash、20 kB SRAM、3个串口、2个SPI接口、1个CAN总线和1个USB接口。芯片的数据处理能力为1.25 dMi/s·MHz,在72 MHz的工作频率下,工作电流为36 mA,待机时下降到2 mA,是目前32位处理器市场上功耗最低的产品[2]。其售价接近51系列单片机的市场售价,但它的数据处理能力却几乎媲美DSP,较高的性价比,使其具有较好的发展前景。
STM32主控芯片内部包含实时时钟(RTC)。RTC是一个独立的定时器,该模块拥有一组连续计数的计数器,再配合相应的软件设置,就可以提供时钟日历的功能,并支持掉电保护,通过修改计数器的值来重新设置系统当前的日期和时间[3]。设计中,定时开关的定时时钟功能可以依靠RTC来完成,因此主控制器只需利用STM32F103RBT6自带的RTC模块就能够满足设计要求。控制分机系统的处理器单元采用价格低廉的STC89C52单片机,该芯片的资源足以满足控制分机系统的设计要求。
2.2 GSM模块TC35
作为系统设计中远程控制部分的核心,GSM通讯模块选用了性价比高,并且已经拥有国内的无线电设备入网证的西门子TC35系列模块。TC35是西门子公司推出的GSM模块,它支持双频和标准的AT指令集。TC35模块通过配套的天线连接器和接口连接器,可分别与天线和SIM卡读卡器连接,并通过串口与处理器芯片连接。
TC35模块电路如图4所示,共有40个引脚,通过一个ZIF(Zero Insertion Force)连接器引出,这40个引脚可以划分为5类,即电源、SIM卡、数据输入/输出、音频接口和控制。TC35模块的数据输入/输出接口是一个串行异步收发器,符合ITU-T RS232接口标准,波特率在300 bit·s-1~115 kbit·s-1范围内可选,利用AT命令切换操作模式,可以使它处于数据、语音、短消息或传真模式[4]。TC35模块的短信功能支持TEXT和PDU两种模式,设计使用TEXT模式来收发短信息。
2.3 nRF24L01+无线收发模块
系统设计中的另一个重要组成部分,就是用于主控制器和控制分机之间进行通信的无线数据传输模块,该部分选用nRF24L01+系列无线收发模块。nRF24L01+是nRF24L01的加强型,两者在引脚上完全兼容,它工作在2.4~2.5 GHz ISM频段,内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并且融合了增强型ShockBurst技术,具有成本低、功耗小、网络结点多等特点。在使用PCB制板天线时,nRF24L01+的通信距离一般可达100 m[2],而使用配套的加长天线后,通信距离还有较大提升。
图4 TC35模块电路图
根据设计要求,系统采用PCB制版天线的nRF24L01+模块。在主控制器系统中,nRF24L01+模块与STM32F103RBT6处理器使用SPI口通信协议;对于控制分机部分,则利用STC89C52单片机的普通IO口模拟SPI时序与nRF24L01+模块完成通信。
3 软件设计
3.1 主控制器部分
主控制器的软件部分是在MDK4.0环境下使用V3.5.0版本的库函数完成编程的,软件设计流程如图5所示。系统加电后,初始化相关外设,读取AT24C02芯片内的数据,根据数据内容执行相关函数。由于STM32自带的RTC模块提供了闹钟中断功能,利用这一功能可以实现预约定时开(关)的功能。TC35与处理器通过串口完成通信,并在串口中断服务函数中完成对短信内容的识别工作,系统还利用外部中断的方式接收红外遥控发出的指令。
图5 主控制器主要程序流程图
3.2 控制分机部分
如图6所示,控制分机分析判断无线模块接收到的指令信息,通过控制光耦实现间接控制继电器的目的,开关装置温度过高时,系统自动切断电源,以防止事故发生。
图6 控制分机主要程序流程图
4 调试与测试结果
系统采用模块化与整体组合相结合的方法进行调试,经过软件仿真、组装调试和系统测试,基本实现了系统设计的功能。测试时,用户通过短信或手动方式向装置传达指令,装置依照指令完成相应的功能,同时通过触摸屏来显示相关参数。经测试,装置在高噪音、多尘等恶劣环境下也可正常运行。
5 结束语
此装置实现了多组定时、电路保护、掉电数据保持等功能,同时加入了红外遥控控制和触摸屏显示,与传统的定时开关类产品相比,更稳定、智能,且易于操作,弥补了传统产品的不足。
[1] 范书瑞.Cortex-M3嵌入式处理器原理与应用[M].北京:电子工业出版社,2011.
[2] 钟鼎,尹媛媛.基于STM32人流量统计监控系统设计[J].电子设计工程,2011,19(20):94-96.
[3] 刘军.例说STM32[M].北京:北京航空航天大学出版社,2011.
[4] 吴玉田,王瑞光,郑喜凤,等.GSM模块TC35及其应用[J].计算机测量与控制,2002,10(8):557-559.
[5] 罗冬,赵海刚,张源,等.基于单片机的红外遥控定时开关装置的设计[J].机电工程技术,2010,39(3):79.