基于ARM的智能家居控制通信控制站的设计与实现
扫描二维码
随时随地手机看文章
0 引言
物体信息化是现代社会信息化建设的“催化剂”和“增倍器”。只有走集成整合信息技术以及信息数据之路,企业的信息化建设才能真正发挥作用,才能进一步推动信息建设上水平。现代物体信息化的发展,直接刺激了新生事物的生长,物联网的出现,让IT业充满了挑战。
智能家居控制系统可以定义为一个过程或者一个系统。利用先进的计算机技术、网络通讯技术、综合布线技术、将与家居生活有关的各种子系统,有机地结合在一起,通过统筹管理,让家居生活更加舒适、安全、有效。与普通家居相比,智能家居不仅具有传统的居住功能,提供舒适安全、高品位且宜人的家庭生活空间。还将原来的被动静止结构转变为具有能动智慧的工具,提供全方位的信息交换功能,帮助家庭与外部保持信息交换畅通,优化人们的生活方式,帮助人们有效安排时间,增强家居生活的安全性,甚至为各种能源费用节约资金。设计是基于嵌入式Linux的智能家居系统。系统主要由GSM模块SIM900A、DSl8820、QM-2气体传感器、DHT11湿度传感器、光敏传感器、带触摸屏的LCD模块等构成。系统初始化正常工作后,定时采集传感器数据,若采集数据出现异常,则对室内的相应设备进行控制使其达到指定指标,并将所得数据选择性通过GSM发送或者报警达到有效控制室内设备的目的,也可通过短信方式控制室内设备运作。实物实验证明本系统运行稳定,符合设计要求。
1 系统结构
系统由ARM芯片S3C2440为控制中心,控制硬件和传输信息。硬件包括各式传感器如气体,光照,温度,湿度,防盗传感器,系统内部各层次通信的方式由多种通信方式组成如:GPIO,A/D采样,串口,Spi等;外部通讯方式由GSM通信模块和由ARM为核心的RJ45网口通信;显示器是由LCD加上电阻屏组成的液晶显示器界面终端。
系统采用Linux操作系统为任务控制系统。
人机交互界面使用带有触摸屏的LCD液晶显示器,采用ARM内部自带的LCD驱动和电阻屏驱动硬件控制采集数据。
远程通信采用SIM900A模块,使用短信通信的模式,可以将系统的参数和用户的任务以短信作为载体来进行相应的交流。
声音模块采用了外置的芯片UDA1341TS,具有双通道声音输入输出的功能,和ARM通信采用IIS通信协议,快速抗干扰能力强。
传感器网络采用各式传感器,例如:温度、湿度、光照度、气体、防盗等等,通讯协议上由于通讯的方式不同所以为每一个传感器都制作了对应的通信驱动。
调节设备有温度调节设备、干燥设备,增湿设备、光照调节设备、通风设备、加热设备。
2 硬件设计
(1)温度传感器与降温装置
此模块主要通过DS18B20来采集家庭的各点温度所设计,其电路图如图2所示。
降温装置用来对空气温度进行调节,达到控制室温的目的,其电路图如图3所示。
装置使用延时继电器通过控制三极管的信号使继电器得电后导通电阻丝,当需要加热电阻丝时,将DIN引脚拉高,此时三极管导通,继电器线圈得电吸合开关,这时电热丝得电加热,等待DIN变为低电平时,继电器失电断开,此时开关断开,电热丝断电停止加热,为了防止陡然对电热丝加电和停电而使电热丝寿命减少,加上了电容保护。
(2)气体传感器与空气流通装置
气体传感器用来采集室内气体是否为有害气体,若为有害气体就启动排风机换风,气体传感器硬件电路如图4所示。
将模拟信号输出端送入到ARM自带的AD端口检测得到检测到的值即可。当调整好全桥电阻的阻值后,器皿传感器的阻值改变后会引起OUT1和OUT2的电势差改变,将此电势差输入ARM的AD模块进行采集和处理。若空气不符合标准便可以通过排风扇进行空气更新处理。
(3)光照传感器与室内亮度调节装置
光照传感器采用光敏电阻采集室内光照信息,并且通过判断光照度调节对应设备达到调节室内亮度的目的。
(4)湿度传感器与湿度控制调节装置
湿度传感器用来检测当前空气湿度,使用DHT11传感器,将采集的数据进行相应的分析,若超过额定值,便进行干燥处理。DHT11传感器是单总线协议,一根总线只能挂载一个DHT11传感器,读取的是已经转换好的湿度值,使用一个ARM的引脚控制一个DHT11传感器。
(5)人机交互界面
人机交互界面分为信息输入与输出,输入设备为电阻触摸屏,输出设备为采用VGA驱动的LCD显示器。
(6)GSM模块的通信与设计
GSM模块采用的是SIM900A通信模块,并采用增强型AT指令,其电路如图5所示。
系统采用的GSM模块作为与用户进行信息交换的途径,GSM采用串口通信,进行数据交换,其电源模块必须满足最大电流能够达到2A的直流电流能力,否则将会因电源功率不够而导致系统不稳定现象。
(7)系统电源设计
由于系统对于电能的特殊要求,所以必须使用分离式电源单独给予GSM模块供电。
3 软件设计
软件设计采用嵌入式Linux,具有较强的网络数据处理能力,嵌入式linux系统的构建包括驱动编程,内核裁剪,文件系统制作,应用软件制作等。
(1)嵌入式系统Linux的移植与分析
第一、编写对应的驱动程序,驱动程序是内核中的面向硬件层的程序,这些程序为上层软件提供抽象函数接口,通过这些函数接口可以间接地控制硬件,因此首先要将目标驱动编写出来,在本系统中需要SPI,USART,单总线,LCD,电阻屏等驱动接口。
第二、裁剪内核,将编写好的底层驱动程序加入到内核程序中后,需要通过make menueonfig软件对其进行配置,将需要的驱动加入到内核配置单里,通过make zImage制作出内核镜像。
第三、制作文件系统,利用busybox工具制作文件系统。
第四、将做好的内核和文件系统一次烧写到ARM硬件的对应区域,开机成功启动后配置目标板的FTP协议。
第五、编写任务程序,利用抽象的底层函数作为信息交换接口,利用C语言编写任务程序,将编写好的程序利用arm-linux-gcc进行相应的编译和连接,将编好的程序通过FTP下载到目标板调试。
(2)系统与任务构架结构
系统硬件层的驱动编写到Linux驱动中进行相应硬件操作,定时执行,系统层和抽象层中将底层的硬件抽象成为接口使用,上层的软件使用接口操作硬件执行任务。任务的优先级由右向左依次降低,最顶层的任务是反馈调节任务位于基本任务之上。
系统任务(按照优先级别排列):
①防盗监控②温度监控③湿度监控④气体监控⑤光照监控⑥排风扇加热⑦电灯喇叭⑧GSM通讯⑨RJ45通讯⑩LCD人机交互界面。
(3)GSM通讯协议
GSM采用SAM900A通信模块,使用短信通信方式,手机收到短信后通知串口接收数据,得到的数据编码方式如下:
在这些短信编码中,将所需要的内容截取下来,便可以识别。在控制家庭智能终端的过程中所采取的指令方式也是采用编码方式,其中短信部分编码定义如下:
[优先级所代表的设备0-10][监控开关0/1][设定参数级别0-5][是否定时开启若不定时为0否则为分钟单位的1-255]
其中优先级所代表的设备就是任务优先级代码所代表的设备,控制开关将控制对应设备是否开启或者关闭,参数级别代表对应设备对应环境参数的控制区间0最窄5最宽,是否开启定时为设置开启时间单位分钟,若不定时则为0。
(4)系统安全策略
为避免他人恶意控制家具,在系统中加入了对应的密码服务,系统将会识别对应的手机号,对应的密码,识别之后才会执行对应的操作,否则将会记录恶意短信发送方的手机号码,以备调查之用。
(5)传感器反馈控制的通用程序流程图
在本系统中所使用的传感器检测与反馈调节方式是相同的,程序流程图如图6所示。系统初始化后,进入重复由优先级从高到低检测传感器对应的数据,并将数据与对应的参数进行对比,若监测数据符合事先所设定的参数,那么继续测试下一个传感器,若监测数据不符合,那么将检测数据分析,检测是否超过危险临界值,若没有超过就执行一般的对应处理反馈交互环境信息,若超过危险临界值就发短信给予用户并且咨询是否报警等应急措施。
●硬件控制分析:本系统可以使用Linux操作系统下的SHELL命令执行对应的命令控制对应的硬件达到检测硬件可行性的目的。采用如输入:openlight命令控制led的端口输出高电平驱动三极管,led灯就亮了;Lightoff命令控制led的端口输出低电平,led熄灭。在此可以检测到硬件控制达到了预期要求。
●短信收发数据分析:对于GSM通讯协议的测试采取实际短信功能的测试,通过手机发送如下格式的数据:
13995991-为发送方的手机号码的前8位
2-选定控制对象为温度监控设备
3-控制对象的参数选择为适中
200-定时200分钟后执行
测试结果为:在200分钟后执行了对应的操作,原先被关闭了的温度传感器设备被激活,能够在一定温度范围内反馈控制风扇吹风降温。