智能家居远程监控系统

  • 格式:pdf
  • 大小:1.51 MB
  • 文档页数:7

下载文档原格式

  / 7
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一种基于SMS的智能家居远程监控系统(1)

关键字:SMS智能家居远程监控系统

1 引言

随着生活节奏的加快,生活水平的提高,人们对现代家居的安全性、智能性、舒适性和便捷

性提出了更高的要求。智能家居控制系统就是适应这种需求而出现的新事物,正朝着智能化、远程化、小型化、低成本等方向发展。如今手机已经十分普及,如何让普通百姓只需要

增加少量投入便可以通过手机远程遥控自己家中的电器设备,远程查看设备或安防系统状

况。同时,一旦家中发生煤气泄露、火灾、被盗等安全事故时能够立即获知警报,及时处理。为此本文提出了一种基于SMS和Atmega128 的智能家居远程监控系统。

2 系统结构及工作原理

本文所设计的智能家居远程监控系统由CP U 模块、短信收发模块、电源模块、时钟模块、LCD 显示模块、键盘模块、驱动模块、无线收发模块、检测模块等模块组成,如图 1 所示。系统的工作原理如下:用户通过手机将控制或查询命令以短信的形式通过GSM 网发送到短信收发模块,CPU 再通过串口将短信读入内存,然后对命令分析处理后作出响应,控制相

应电器的开通或关断,实现了家电的远程控制。CPU 定时检测烟感传感器、CO 传感器、门禁系统的信号,一旦家中发生煤气泄露、火灾、被盗等险情时,系统立即切断电源、蜂鸣

器警报并向指定的手机发送报警短信,实现了家居的远程监视。为了达到更人性化的设计,

当用户在家时可通过手持无线遥控器控制各个家电的通断,通过自带的小键盘设定授权手机

号码、权限和设定系统的精确时间等参数。LCD 用来实时显示各电器状态和各个传感器的

状态。

图1 系统结构框图

3 硬件系统设计

CPU 选用Atmega128 单片机,它是基于AVR RISC结构的8 位低功耗CMOS 微处理器,具有性价比高、功耗小、可靠性高等特点。短信收发模块选择厦门桑荣公司的Saro310 GSM Modem.传感器选择香港嘉永公司的SS-168 烟感探测报警器、HD-111 家用CO 探测报警器。它们在检测到危险信号时输出开关量信号,能及时准确地向CPU 发出报警信号。LCD 显示模块选用LCD12864 带中文字符型液晶显示屏,它自带汉字字库,只用查询中文字库表便能实现LCD 的中文显示,占用CPU 管脚少,只需三个管脚便能完成通讯和控制。

图2 系统主要模块原理图。

键盘模块采用了一个 4 × 4 的小键盘。开关驱动模块实现弱电对强电的控制。因为本系统中有较大功率电器,在启动时电流会较大,可能会达到10A,因此采用了2JB0.5-1 型固态继电器。时钟模块选用DS1302 时钟芯片,为CPU 提供实时时钟。它采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能,编程简单,功耗小。无线收发模块选用超外差双向无线接收模块JL-RT01A.电源模块由插头引入220V 交流电源,

经过220V/36V/12V 变压器降压,整流桥整流,二级电容滤波,三端稳压芯片7 8 L 0 5 和78L24 稳压后,分别为核心板和接口驱动模块提供5V和24V 供电。

图3 主程序流程图。

4 软件系统设计

Atmega 128 芯片集成的指令功能丰富,内存等资源也都比较丰富,为了提高编程效率、代码的可读性、可移植性和可维护性,本系统使用 C 语言开发系统软件。

4.1 主程序流程

系统上电后,首先初始化各底层硬件(包括LCD 设备、串口参数等)和系统I /O, 然后并通过RS- 2 3 2 端口向短信模块发送AT E 命令查询短信模块是否正常工作?若收到应答后,则顺序发送"A T + CMG F "、"A T + C NM I "、"AT+CSCA"等AT 命令(可参考AT 命令集),设置或获取相关参数,完成短信预处理。然后进入循环等待状态,定时查询短信

模块是否收到新短信,检测各个传感器的信号输入以及键盘操作等。若查询到有新短信,则判断它是否来自授权手机?若是,核查该手机号码的权限后,对该短信进行分析,根据具体命令(见表1-3)作出响应。一旦检测到烟感、CO 传感等传感器有异常,则立即切断

主要电器的电源,输出报警信号并向指定手机发送短信。

4.2 GSM 短信息设计

4.2.1 短信收发模式选择

Saro 310 GSM Modem 模块使用AT 命令集控制短信的收发,它支持TEXT 和PDU 两种短信收发模式。

前者不支持非ASCII 码字符,不能收发中文短信,而后者支持多种不同的编码格式,因此在本系统采用PDU 模式来收发短信息。手机中文字显示使用国标码,在CPU中需要先将U C S 2 编码转换为国标码以便于输出。

UCS2 编码与国标码之间转换不能依靠算法完成,只能通过查表来实现转换。

4.2.2 短信命令格式(控制协议)

短信命令分为传感器查询命令、基本控制命令、高级管理命令。各种命令格式和说明分别如

表1、表 2 和表 3 所示。

表1 传感器查询命令

表2 基本控制命令

表3 高级管理命令

例如,执行打开电灯的命令:

uint8 ExecuteSMS Cmd(void)// 执行命令

{ case SMS_DD :RELAY_PORT|=BIT(RELAY_DD

); / / 打开电灯

DvcSt t|=0x02; break; / / 电灯的命令代码为0000 0010B

}

短信命令以U n i c o d e 码的形式存储在数据缓冲区中。

4.2.3 短信命令解析

当系统接收到短信命令后,按顺序从传感器查询、基本命令、高级管理命令匹配扫描。扫描代码如下:

wh i l e (- - i &&! (mh = s t r s t r (UART0 _RxBu f ,DefDetCmd[i])));

i f(! i )/ / 若非传感命令

wh i l e (- - j&&! (mh = s t r s t r (UART 0 _RxBu f ,DefBasicCmd[j])));