贾晓宝,谭凌峰,蒋岱童,许旭东,杨志豪(深圳职业技术学院 机电工程学院,广东 深圳 518055)
基于Arduino的楼宇机电设备远程短信控制系统设计
贾晓宝,谭凌峰,蒋岱童,许旭东,杨志豪
(深圳职业技术学院 机电工程学院,广东 深圳 518055)
摘 要:文章设计了基于Arduino微控器的楼宇机电设备远程控制系统,该系统包括控制器模块和无线通信模块,以GPRS SIM900A作为远程监控系统的通信平台,辅以LCD液晶显示屏、操作键盘、双控面板开关及时钟模块等.通过操作键盘可方便设置系统的合法用户,经授权的用户可通过手机发送R或C命令,远程读取楼宇机电设备的运行状态,控制其启动或停止,还可通过现场的双控面板开关实现设备的就地控制.时钟模块确保控制系统意外掉电后仍能精确计时.
关键词:Arduino;GPRS SIM900A;机电设备;短信
随着绿色建筑+互联网研究的深入,仅由于机电设备的远程可视可控性,就可以将能耗节约提升5%~5%[1].现有的互联网远程控制研究[2-5]重点都着眼于用电负荷不大的对象,控制系统大多基于单片机与通信模块开发,开发过程较为复杂.针对楼宇等大型机电设备的远程控制,国内外目前主要采用Honeywell的Excel5000或Siemens的Apogee系统,其系统庞大,价格昂贵,使用烦琐.文章从控制过程简单、节能等角度出发,设计了基于开源硬件Arduino与GPRS SIM900A的远程通信控制系统.
1.1系统工作原理
基于短信的远程控制是通过手机等设备将监控命令以短信息的方式发送至手机通信网络,网络将控制命令转发到远程微控器,微控器根据短信息指令执行相关动作,从而实现对远程设备的状态读取或启停控制.系统设计原理图如图1所示.
图1 短信远程控制系统设计原理图
该系统设计2种控制模式,即自动模式和手动模式.手动模式时,用户可通过现场开关直接控制;自动模式时,用户可通过手机短信的方式远程读取设备状态和控制设备.控制系统的主要部件包括控制器模块和无线通信模块.微控制器是整个系统的核心,无线通信模块负责系统与设备管理人员的信息交互,根据接收到的短信息或键盘输入信息执行相应的动作.用户通过系统键盘,可授权一个或多个用户远程使用该系统;并可设置控制系统定时给管理人员发送设备运行状态的时间.考虑现场机电设备供电电源一般是220 VAC或380 VAC,而微控制器的输出引脚一般只能够提供5V(40 mA)左右的电流[6],因此系统设计了继电器模块,由微控制器通过控制继电器模块间接实现对高电压大电流设备的控制.
1.2系统硬件构成
微控制器是控制系统的核心,系统基于开源硬件平台Arduino Mega 2560进行设计开发.Arduino是目前非常流行的电子互动平台,基于单片机系统开发,具有使用简单、功能多样、价格低廉等优点,广泛应用于控制系统设计和互动产品开发[7].Arduino Mega 2560具有54路数字输入输出,16路模拟输入,4路UART接口,非常适合需要大量输入输出接口控制的对象[8].此外,该控制板可通过标准的USB线缆与电脑连接,通过在线调试程序,大大缩短了开发周期.
远程监控一般通过2种方式实现,一种是GPRS短消息模块发送控制指令;另一种利用互联网通讯协议来发送指令.2种方法的控制效果没有明显差别,第一种方法对网络环境的要求不高,只要能接收到稳定的手机信号就可以.但第二种方法要求应用场景具有可以从外部直接访问的固定IP.因此本系统釆用发送短消息的方式实现远程控制.为了实现远程短信息的接收和发送,必须选择一款能够与Arduino微控制器易于连接的远程通信模块.目前在单片机开发领域主流的GPRS通信模块有西门子的TC351,WaveCom公司的GR64/Q64,华为公司的GTM900C/EM310,SIMCom公司的SIM900A[9].本文开发的控制系统采用SIM900A,主要原因是其可以方便与Arduino开发板通过串口连接进行通信,同时该模块在远程数据监控以及GPS定位等领域应用广泛.
为了使该控制系统功能更加完善,使用更人性化,系统硬件配置了时钟模块、光耦传感器模块、双控面板开关、LCD液晶显示器和键盘等辅助设备.时钟模块选择DS3231,该器件是一款高精度I2C实时时钟器件,具有集成的温度补偿晶体振荡器,当控制系统发生意外掉电时仍可保持精确计时.光藕传感器选择220V交流光电藕检测模块,检测220V交流电是否存在,其真正作用是为了检测现场被控设备的运行状态.显示屏和键盘分别采用12864显示屏和4*4薄膜键盘,用于控制系统的信息显示和系统设置.设计双控面板开关实现设备的就地控制.以3个负载作为控制对象的具体系统硬件设计图如图2所示.
系统软件程序设计包括初始化程序与主程序2个部分.初始化主要包括对Arduino控制板的引脚形式的初始化、波特率的设置及I2C总线的初始
化.主程序则主要判断串口是否有信息发来,判断是否是合法的目标用户,根据用户发送的信息执行相应动作.其软件工作流程如图3所示.
2.1系统初始化
初始化主要通过setup()函数完成,setup()函数只在系统上电后运行一次,其作用是在系统主函数运行前为系统做一些基本的初始化工作,比如设置引脚形式和波特率等[6].在远程短信平台控制的软件实现过程中,初始化主要由4部分组成:Arduino控制板的引脚状态的初始化、波特率的设置、I2C总线初始化及系统时钟的初始化.① 引脚状态的初始化通过pinMode函数来完成,该函数有2个参数,第一个参数指定引脚号,第二个函数代表引脚模式是输出模式还是输入模式.引脚22~24设计为输入模式,读取负载运行状态;引脚10~14设计为输出模式,其中10~13引脚负责设备启动和停止,第14号引脚用来表示串口数据接收标志.② 波特率是信号传输速率的一种量度,表示了每秒钟传递的比特数号,在编程语言中调用串口函数来进行波特率的设置,该系统设计波特率为9600Bd.③ 时钟模块DS3231通过I2C总线与Arduino控制板通信,在初始化芯片的I2C总线前必须加入库函数Wire.h,通过begin()来实现.④初始化程序的最后部分是对系统当前时间的读取和系统负载当前状态的读取.具体程序示例树状图如图4所示.
图2 系统硬件设计图
图3 软件工作流程图
2.2短信的读取与发送
通信模块SIM900A与Arduino微控器通过串口进行通信,串口连接成功后,微控制器会持续判断串口信息的有效性.短信的读取与控制在主程序loop()函数中实现,该loop()函数打开后就一直运行,并且只要没有关闭或者没有按下重启按钮就会一直循环运行下去[6].
图4 系统初始化程序树状图
短信息读取和发送通过AT命令执行,用户可以通过AT指令进行呼叫、短信、电话本、数据业务、传真等方面的控制[10].在执行读取或发送短信操作前,首先应设置字符集,在发送纯英文短信的时候,应发送:AT+CSCS=“GSM”,设置为缺省字符集即可.在发送中英文短信的时候,需要发送:AT+CSCS=“UCS2”,设置为16 位通用8字节倍数编码字符集.AT+CMGR命令用于读取短信,比如发送:AT+CMGR=1,则可以读取SIM卡存储在位置1的短信.AT+CMGF命令为短消息发送格式命令,该命令的值可以设置为“0”或者“1”.如果设置为“0”,则代表短消息格式为PDU模式;如果设置为“1”,则代表短消息格式为TEXT模式[4].PDU模式主要用于中英文短消息的发送,TEXT模式主要用于英文短消息发送,因该系统传输的仅为简单的英文字母和数字,所以设置“AT+CMGF=1”即表示用模式TEXT来传送消息.以发送设备当前运行状态为例的子函数设计代码如图5所示.
图5 负载当前状态发送程序树状图
按照上述设计思想,设计的三回路负载控制系统实验板如图6所示.
为了便于测试系统,三路负载用日光灯替代,当用户发送“R”给控制系统时,系统自动将灯的开关状态以消息0或1的形式反馈给用户;发送“C”可进行远程控制.同时通过实验板上的双控开关,用户也可实现三组灯的本地控制.该控制系统在深圳职业技术学院机电学院楼宇专业的技能大赛实训分室安装并进行了测试,一路控制实训室照明,另一路控制室内风扇,系统长期工作稳定可靠.此外,该控制系统也得到中山职业技师学院老师的认可,并计划用于实训室风扇的控制,以解决实训室风扇长期不及时或忘记关闭造成的能源浪费.该控制系统设计采用低功耗电子元器件,使用寿命长,成本低,并且控制回路数量可以根据被控对象的多少灵活增减.需要说明的是,系统当前设计仅为基础阶段,只考虑了手机远程短信控制的可靠性和系统运行的稳定性,后期将结合使用场景,结合用户的工作生活习惯,应用优化算法实现楼宇机电设备的最大化节能.
图6 系统测试实验板
参考文献:
[1] 愈红蕊,李玲.建筑节能发展趋势探讨[J].资源节约与环保,2015(8):75-76.
[2] Han R P S. The Control System Based on GSM Short Message Application in the Appliances Control[C]//第十七届全国青年通信学术年会论文集, 北京: College of Engineering, Peking University, 2012:513-516.
[3] Angelo. Arduino based Food and Water Dispenser for Pets with GSM Technology Control[J]. International Journal of Scientific Engineering and Technology, 2015 (4):231-234.
[4] 吴志慧.基于GR47通信模块的短信远程家电控制系统[J].机电工程,2008,25(8):26-28.
[5] 王超.基于TC35短信模块的开关远程控制系统设计[J].微型机与应用,2015,34(4):29-33.
[6] 沃伦,亚当斯,莫勒.Arduino机器人权威指南[M].于欣龙,译.北京:电子工业出版社,2014:28.
[7] 蔡睿妍.Arduino的原理及应用[J].电子设计工程,2012,20(16):155-157.
[8] 贾瑞.基于ArduinoMega2560的无线监控小车设计[J].数字技术与应用,2013(10):144-146.
[9] 周骑.面向家庭的无线移动视频监护系统[D].北京:北京交通大学,2015.
[10] 李育阳.基于GSM的学生成绩发布系统的设计[J].科技视界,2014(36):157-158.
Short Message Control System for Building Mechanical and Electrical Equipment Based on Arduino Micro-Controller
JIA Xiaobao, TAN Lingfeng, JIANG Daitong, XU Xudong, YANG Zhihao
(School of Mechanical and Electrical Engineering, Shenzhen Polytechnic, Shenzhen, Guangdong 518055, China)
Abstract:The paper designed the remote short message control system for building mechanical and electrical equipment based on Arduino micro-controller. The system uses the GPRS SIM900A as a signal communication platform, aided with LCD display, keyboard, double switch control panel, and clock module. The user can be easily authorized to operate the system through the keyboard, and legitimate users can monitor and control the equipment by sending short messages “R” or “C” from mobile phones. Besides, devices can be controlled by a switch button installed in the field. The clock module can calculate time accurately even when the system is powered off accidentally.
Key words:Arduino; GPRS SIM900A; mechanical and electrical equipment; short message
作者简介:贾晓宝(1976-),男,陕西人,硕士,讲师,研究方向为楼宇智能化控制技术.
收稿日期:2016-01-04
DOI:10.13899/j.cnki.szptxb.2016.03.004
中图分类号:TP277
文献标志码:A
文章编号:1672-0318(2016)03-0019-05