基于S3C2440家庭网关设计方案(二)
db 的sqlite3 数据库文件,并在以创建的dc_main.db中创建一张数据表study 用来存储各个房间各遥控器的红外指令,SQL 命令为:
create table study(
id integer primary key autoincrement,--id 号,自动产生
room varchar(10), --房间名称
appliance varchar(10), --电器名称
key varchar(10), --按键名称
command varchar(500)); --红外脉冲信号
为了用户方便与系统进行交互,采用QT4 设计遥控器自学习界面,Qt 是Trolltech 公司开发的一个多平台的C++图形用户界面应用程序框架。包括直观的API 和丰富C++ 类库、用于GUI 开发和国际化的集成工具,支持使用JavaTM 和C++ 语言进行开发。该图形系统最大的优点是采用面向对象设计,移植性好,基于X Window 的Qt 桌面应用程序可以非常方便的移植到嵌入式系统上。在对硬件和容量都有限制的嵌入式环境上,Qt 可以直接在Framebuffer 上显示图形。
Qt 的这种特性在一定程度上提高了嵌入式GUI 程序的执行效率,这对硬件和容量都有限制的嵌入式环境非常重要。同时Qt4 为数据库访问提供的QtSQL 模块实现了数据库与Qt 应用程序的无缝集成。
此系统用Qt4 和SQLite3 技术实现了遥控器自学习系统的前台界面及数据的存储,遥控器自学习界面如图 5 所示。
图 5 遥控器自学习界面
为了存储时能将按键与其红外指令对应,在遥控器自学习前台界面要输入房间、电器、按键的名称,因此设计了键盘进行内容输入,用户在界面输入房间、电器、按键,之后对着红外一体化接收头按下遥控器的对应按键接收红外指令,按确认后,将房间、电器、按键信息以及所对应的遥控器红外指令存入sqlite3 数据库。
2.2 短信接收模块
短信接收模块实现的功能包括接收短信,以及根据短信内容调取数据库中的红外指令发送给Zigbee 模块。
2.2.1 硬件设计
短信接收模块采用GR64 模块,通过串口连接到中央处理器,GR64 模块是一款带有GSM/GPRS 全套语音和数据功能的工业级无线调制解调模块。集射频电路和基带处理器于一体,提供丰富的外设及接口,其硬件原理图如图 6 所示。
图6 GR64 原理图
2.2.2 软件实现
短信接收软件提供短信的接收以及处理,GR64模块支持两种模式收发短信:Text 模式、 PDU 模式。
Text 模式是纯文本方式,不支持中文,可使用不同的字符集,主要用于欧美地区;PDU 模式被所有手机及工业级模块支持,可以使用任何字符集,目前最为常用。家庭网关采用PDU 模式接收数据,以便能够正确的显示汉字。
用户根据遥控器对码学习的格式编写控制家电的短消息,其格式为:房间,电器,按键例如:客厅,空调,打开发送至家庭网关,家庭网关使用AT 命令接收短消息,AT 命令集具有标准的硬件接口(串口)并且可以通过一组AT 命令完成对GR64 的配置和控制,接收短信用到的AT 命令为:
AT+CMGF=0 设置短信格式为PDU 格式
AT+CMGL=1 读取未读短消息
短信处理子程序流程图如图 7 所示。
图7 短信处理子程序流程图
家庭网关接收到的手机短信是unicode 码值,要将其转换为GB2312 编码显示为汉字,之后进行身份验证(手机号码验证),通过之后将短信内容提取出来作为条件查询数据库,调取数据库中所对应的遥控器红外指令,发送至Zigbee 模块。
2.3 Zigbee 模块
Zigbee 模块作为家庭内部网的主节点能够实现的功能包括接收遥控器红外指令,以及通过Zigbee 网络将此红外指令发送给各个分控节点。
2.3.1 硬件设计
硬件部分的设计如图 8 所示。采用无线SoC 单片机CC2430 构建Zigbee 模块,具有超低功耗、高灵敏度、出众的抗噪声及抗干扰能力,并且包括的许多强大的外设资源。通过串口与中央处理器相连。
图8 Zigbee 模块原理图
2.3.2 软件实现
通过软件实现红外指令的接收及发送,程序流程图如图 9 所示。
图9 Zigbee 模块程序流程图
Zigbee 模块首先使用串口接收红外指令,然后通过射频通信,将红外指令发送到各个分控节点。
3 结语
随着Intemet 技术的发展以及32 位微处理器时代的来临,信息家电、信息家庭的概念已开始深入人心。
提出以ARM9 的32 位微处理器S3C2440A 作为家庭网关的中央处理器,软件上以嵌入式Linux 为平台,实现了短信接收、遥控器自学习、红外指令发送等功能。该家庭网关成本较低,易于升级,便于推广应用。
评论