基于S3C2440家庭網(wǎng)關(guān)設(shè)計(jì)方案
為了方便調(diào)用遙控器的紅外脈沖信號,要將其接收到紅外碼保存,而保存數(shù)據(jù)就需要一個嵌入式的數(shù)據(jù)庫,在目前Linux 下常用的數(shù)據(jù)庫產(chǎn)品中,Oracel、BIMDB 等功能強(qiáng)大,但系統(tǒng)寵大,需付費(fèi)使用,適用于大型商業(yè)型數(shù)據(jù)庫。而MysQL 在保持中等體積的情況下,提供了較為適用的功能己成為中小規(guī)模數(shù)據(jù)庫應(yīng)用的首選,但商業(yè)應(yīng)用也需付費(fèi),而且對于嵌入式系統(tǒng)來說空間占用仍然太大。小型數(shù)據(jù)庫msQL 適用于嵌入式系統(tǒng),但只有30 天的使用期限,并非完全開源。而在開源的數(shù)據(jù)庫中,PostgreSQL 功能完善,但體積較大。而Berkeley DB 則是開發(fā)難度比較大。
SQlite 則在體積與功能之間做到了較好的平衡,是"理想的嵌入式數(shù)據(jù)庫"。此系統(tǒng)創(chuàng)建文件名為dc_main.
db 的sqlite3 數(shù)據(jù)庫文件,并在以創(chuàng)建的dc_main.db中創(chuàng)建一張數(shù)據(jù)表study 用來存儲各個房間各遙控器的紅外指令,SQL 命令為:
create table study(
id integer primary key autoincrement,--id 號,自動產(chǎn)生
room varchar(10), --房間名稱
appliance varchar(10), --電器名稱
key varchar(10), --按鍵名稱
command varchar(500)); --紅外脈沖信號
為了用戶方便與系統(tǒng)進(jìn)行交互,采用QT4 設(shè)計(jì)遙控器自學(xué)習(xí)界面,Qt 是Trolltech 公司開發(fā)的一個多平臺的C++圖形用戶界面應(yīng)用程序框架。包括直觀的API 和豐富C++ 類庫、用于GUI 開發(fā)和國際化的集成工具,支持使用JavaTM 和C++ 語言進(jìn)行開發(fā)。該圖形系統(tǒng)最大的優(yōu)點(diǎn)是采用面向?qū)ο笤O(shè)計(jì),移植性好,基于X Window 的Qt 桌面應(yīng)用程序可以非常方便的移植到嵌入式系統(tǒng)上。在對硬件和容量都有限制的嵌入式環(huán)境上,Qt 可以直接在Framebuffer 上顯示圖形。
Qt 的這種特性在一定程度上提高了嵌入式GUI 程序的執(zhí)行效率,這對硬件和容量都有限制的嵌入式環(huán)境非常重要。同時Qt4 為數(shù)據(jù)庫訪問提供的QtSQL 模塊實(shí)現(xiàn)了數(shù)據(jù)庫與Qt 應(yīng)用程序的無縫集成。
此系統(tǒng)用Qt4 和SQLite3 技術(shù)實(shí)現(xiàn)了遙控器自學(xué)習(xí)系統(tǒng)的前臺界面及數(shù)據(jù)的存儲,遙控器自學(xué)習(xí)界面如圖 5 所示。
圖 5 遙控器自學(xué)習(xí)界面
為了存儲時能將按鍵與其紅外指令對應(yīng),在遙控器自學(xué)習(xí)前臺界面要輸入房間、電器、按鍵的名稱,因此設(shè)計(jì)了鍵盤進(jìn)行內(nèi)容輸入,用戶在界面輸入房間、電器、按鍵,之后對著紅外一體化接收頭按下遙控器的對應(yīng)按鍵接收紅外指令,按確認(rèn)后,將房間、電器、按鍵信息以及所對應(yīng)的遙控器紅外指令存入sqlite3 數(shù)據(jù)庫。
2.2 短信接收模塊
短信接收模塊實(shí)現(xiàn)的功能包括接收短信,以及根據(jù)短信內(nèi)容調(diào)取數(shù)據(jù)庫中的紅外指令發(fā)送給Zigbee 模塊。
2.2.1 硬件設(shè)計(jì)
短信接收模塊采用GR64 模塊,通過串口連接到中央處理器,GR64 模塊是一款帶有GSM/GPRS 全套語音和數(shù)據(jù)功能的工業(yè)級無線調(diào)制解調(diào)模塊。集射頻電路和基帶處理器于一體,提供豐富的外設(shè)及接口,其硬件原理圖如圖 6 所示。
圖6 GR64 原理圖
紅外遙控器相關(guān)文章:紅外遙控器原理
評論