基于Arm-Linux的嵌入式智能家居控制系統(tǒng)的設(shè)計(jì)
首先用Qt Desinger根據(jù)系統(tǒng)要求設(shè)計(jì)圖形界面,建立槽函數(shù)開(kāi)槽并且通過(guò)語(yǔ)句connect(PushButtonl,SIGNAL(clicked()),this,SLOT(set_userandphone()));建立信號(hào)與槽函數(shù)的連接。槽函數(shù)需要根據(jù)設(shè)計(jì)的功能需要編寫。用UIC與MOC工具生成文件user.h、user.cpp及完成信號(hào)與插槽功能的moc_user.cpp程序,由PROGEN與TMAKE生成工程文件user.pro與Makefile。user.cpp中有SQLite數(shù)據(jù)庫(kù)代碼,要把庫(kù)路徑加到Makefile庫(kù)文件的搜索路徑中否則會(huì)因?yàn)檎也坏絊QLite的庫(kù)文件而編譯失敗。
要實(shí)現(xiàn)用戶的用戶名、密碼等信息存到前面創(chuàng)建的user.db數(shù)據(jù)庫(kù)中,要把創(chuàng)建表與插入數(shù)據(jù)的代碼放到槽函數(shù)下。點(diǎn)擊set按鈕后就會(huì)產(chǎn)生一個(gè)信號(hào)來(lái)觸發(fā)槽函數(shù),實(shí)現(xiàn)數(shù)據(jù)庫(kù)的創(chuàng)建與數(shù)據(jù)的存儲(chǔ)。實(shí)現(xiàn)串口通信的功能把設(shè)置的信息傳遞給智能家居的各個(gè)控制模塊,需通過(guò)設(shè)置struct termios結(jié)構(gòu)體的各成員值實(shí)現(xiàn)波特率、校驗(yàn)位、停止位等設(shè)置,完成之后對(duì)串口的操作就可以像普通文件一樣進(jìn)行讀寫操作。串口通信程序代碼也放到槽函數(shù)下邊
完成X86環(huán)境下的編譯之后需要修改Makefile文件把PC環(huán)境編譯器gcc和g++修改為嵌入式環(huán)境下的arm-linux-gcc和arm-linux-g++,編譯完成下載到文件系統(tǒng)的相應(yīng)目錄下并運(yùn)行測(cè)試,系統(tǒng)的其他應(yīng)用程序如系統(tǒng)工作模式設(shè)定、狀態(tài)查詢等也遵循同樣的開(kāi)發(fā)流程。
圖5為第一個(gè)為系統(tǒng)的總體界面,里面包含12應(yīng)用程序的圖標(biāo)。第二幅為示例應(yīng)用程序的界面,在輸入相應(yīng)的信息后點(diǎn)擊set按鈕,用戶名密碼以及報(bào)警電話分別保存到了namekey與tel表中并發(fā)送給電話報(bào)警模塊。達(dá)到了設(shè)定用戶信息的設(shè)計(jì)目標(biāo)。本文引用地址:http://www.ex-cimer.com/article/150896.htm
5 結(jié)束語(yǔ)
本文利用嵌入式數(shù)據(jù)庫(kù)SQLite實(shí)現(xiàn)了對(duì)智能家居控制系統(tǒng)的數(shù)據(jù)管理,在管理效率上有了很大提高,節(jié)省了系統(tǒng)資源開(kāi)銷。應(yīng)用Qtopia圖形系統(tǒng)實(shí)現(xiàn)了操作界面的可視化界面更加友好,操作更加簡(jiǎn)單明了。系統(tǒng)運(yùn)行穩(wěn)定,很好的滿足了設(shè)計(jì)要求。
評(píng)論