【正文】
制窗簾在窗簾界面提供直接窗簾的界面,只需要傳遞一個整數(shù),0的時候打開,1的時候關(guān)閉,用戶可以根據(jù)當(dāng)前的光照值設(shè)定當(dāng)光照值大于某設(shè)定值時,窗簾進行關(guān)閉動作,以及當(dāng)前光照值少于設(shè)定值時,窗簾開啟并屋內(nèi)的燈光。具體操作是在借口程序里面打開驅(qū)動取得表示空調(diào)的LED燈和直流電機的描述符,然后通過一個switch語句判斷用戶動作并執(zhí)行,最后回收描述符。(cflags[4]!=0))和if((k=3000)amp。我們?nèi)框?qū)動采用的驅(qū)動模型是字符驅(qū)動。步進電機步進電機驅(qū)動同樣步進電機驅(qū)動使用字符設(shè)備中的砸向設(shè)備。其中該系統(tǒng)的通訊模式、系統(tǒng)構(gòu)架、系統(tǒng)功能等是關(guān)鍵的。參考文獻:[1] 智能家居控制系統(tǒng) 周洪、胡文山、張立明、盧亦焱 中國電力出版社(200601出版)[2] 智能家居設(shè)計與施工 顧牧君 同濟大學(xué)出版社(200410出版)[3] 妙妍。2008年10期[7]. 北京:.[8][M].北京:.[9]Sajal K. Das. Mobility and Resource Management in Smart Home Notes in Computer Secience..2004,11091111附JNI源代碼:include include include include include include sys/include sys/include sys/include include linux/include include include sys/include utils/volatile int cflags[30] = {0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17}。 LOGI(%d...........2/n,fd)。 cflags[18] = 36003600。semc2,0,1)。 while(cflags[0]!= 2) { temperature_ioctl(fdtemperature , amp。 (*g_vm)DetachCurrentThread(g_vm)。j3。 } return (void *)0。 pthread_t pt3。 while(1) { sleep(2)。amp。 cflags[13] = 0。 sem_post(amp。 } if(i == 14) { cflags[14] = !cflags[14]。 cflags[13] = 1。k)。 cflags[16] = cflags[16]%10000。(cflags[5]==2)amp。 pthread_mutex_unlock(amp。j++) { ledset(fd4, 7,amp。 int fd1 = motor_open()。 break。 cflags[4] = 2。 } gas_close(fd1)。}JNIEXPORT jint JNICALL Java__example_CtrHome_GasDev_setrfid(JNIEnv *env, jobject obj){ int i=0。 pthread_create(amp。j)。 for(j=0。 pthread_create(amp。}JNIEXPORT void JNICALL Java__example_CtrHome_GasDev_waichumoshi(JNIEnv *env, jobject obj){ pthread_t pt1。 fd = stepmotor_open()。 int i,j=1。 } } cflags[6] = 1。 cflags[19] = 2。j)。 cflags[4] = 1。 motor_rollback(fd1)。 motor_close(fd)。amp。((cflags[18]%10000)=3600 )) { cflags[18] = cflags[18]/10000*10000。(cflags[5]!=0)) { beeDutyCycle(fd,)。 beeDutyCycle(fd,)。 while(1) { tp = time(NULL)。 ledset(fd,5, amp。 if(i == 13) { cflags[13] = !cflags[13]。 j12。 j = 1。semcl)。}JNIEXPORT void JNICALL Java__example_CtrHome_GasDev_setlight(JNIEnv *env, jobject obj, jint i){ cflags[9] = i。pt1,NULL,main_pthread,NULL)。 cflags[11] = 1。gprs_rfid_mutex)。 cflags[11] = 1。 jfieldID fieldID = (*g_env)GetFieldID (g_env, gasdevclazz, flags, [I)。 motor_close(fd)。 cflags[12] = 0。 i9。Academic任獻偉。我的設(shè)計較為復(fù)雜煩瑣,但是黃老師仍然細心地糾正圖紙中的錯誤。 RFID RFID就是現(xiàn)在市面上比較流行的刷卡門禁。 直流電機直流電機驅(qū)動也是使用字符設(shè)備,并且注冊的是雜項設(shè)備,所以這里就不再累述驅(qū)動的編寫流程。 切換識別ID卡以及電話號碼切換綁定號碼會把原來保存的電話號碼清除并更新為用戶輸入的新號碼,以在需要發(fā)短信的時候使用。前面我們說過,為了節(jié)省資源,我們把警報的工作也同樣放到鬧鐘的線程里面,其中用if(((cflags[4]!=0)||(cflags[5]!=0))amp。實際操作是我們在當(dāng)接收到用戶需要操作窗簾時會新建并分離一個線程,用if語句判斷如果進行動作與窗簾當(dāng)前狀態(tài)一致則不動作,或者當(dāng)信號量小于0時,利用sem_trywait()函數(shù)阻塞,直到上一個動作完成為止。在燈光界面我們給上層界面只需要提供一個界面,傳進來一個int型數(shù),就可以知道用戶的意圖,通過if語句判斷,當(dāng)傳進來的數(shù)是13或者14,我們就把對應(yīng)的房間或者客廳LED燈取反,如果傳進來的數(shù)是0,就把所有LED燈關(guān)掉,1則是打開所有的LED燈,在開關(guān)后必須把標(biāo)志燈光狀態(tài)的標(biāo)志位更新。此界面給上層提供的界面是傳遞一個字符串,通過算法把字符串提取成數(shù)字并作為設(shè)定時間。和JavaVM *g_vm = NULL。JNI一開始是為了本地已編譯語言,尤其是C和C++而設(shè)計的,只要調(diào)用約定受支持就可以了。圖21CortexA8采用了ARM CortexTMA8內(nèi)核,ARM V7指令集,主頻可達1GHZ,64/32位內(nèi)部總線結(jié)構(gòu),32/32KB的數(shù)據(jù)/指令一級緩存,512KB的二級緩存,可以實現(xiàn)2000DMIPS(每秒運算2億條指令集)的高性能運算能力。面對中國龐大的需求市場,%的速率增長,在2015年產(chǎn)值達1240億元。智能家居在美國、德國、新加坡、日本等國都有廣泛應(yīng)用?! 〗酉聛淼娜轿迥?,智能家居一方面進入一個相對快速的發(fā)展階段,另一方面協(xié)議與技術(shù)標(biāo)準(zhǔn)開始主動互通和融合,行業(yè)并購現(xiàn)象開始出來甚至成為主流。與普通家居相比,智能家居不僅具有傳統(tǒng)的居住功能,兼?zhèn)浣ㄖ?、網(wǎng)絡(luò)通信、信息家電、設(shè)備自動化,提供全方位的信息交互功能,甚至為各種能源費用節(jié)約資金。關(guān)鍵字:智能家居,JNI,C語言Smart Home system design based on Android——C Language Function Module and Drive SectionAbstract: in early 1994, Smart Home has entered China market, but wasn’t popular because the high cost of economy and technology . recently, with the gradual improvement of living standards, especially the rapid development of embedded devices, the Smart Home is more and more acceptable than before.Smart Home project in this paper, is written in Android based interface, through the C to control the hardware. To achieve control of mon household appliances such as electric air conditioning, temperature and humidity and through the acquisition of a series of control room and protection.Owing to the very big project , it is finish by twp people’s teamwork. And in this paper, Smart Home in an data came from the JAVA by JNI based on C language, and then by the various hardware action has reached the demand of the user, and the hardware drive program.Keywords: Smart Home, JNI, C language目 錄1 緒 論 1 1 22 總括 4 硬件 4 CortexA8 4 拓展板 5 JNI 53 功能設(shè)計 7 主界面 7 溫濕度監(jiān)控顯示 7 在家模式和外出模式的切換 8 進入安防界面 9 鬧 鐘 10 燈 光 11 窗 簾 12 光感監(jiān)控 12 控制窗簾 12 空調(diào)及排氣扇 13 空調(diào)和排氣扇的直接控制 13 溫度控制空調(diào) 14 短信控制空調(diào) 14 安 防 15 警報 15 切換識別ID卡以及電話號碼 15 17 LED 17 GPRS 17 直流電機 17 蜂鳴器 19 RFID 195. 總結(jié) 19致謝 2021 緒 論智能家居(英文:smart home, home automation)是以住宅為平臺,利用綜合布線技術(shù)、網(wǎng)絡(luò)通信技術(shù)、 安全防范技術(shù)、自動控制技術(shù)、音視頻技術(shù)將家居生活有關(guān)的設(shè)施集成,構(gòu)建高效的住宅設(shè)施與家庭日程事務(wù)的管理系統(tǒng),提升家居安全性、便利性、舒適性、藝術(shù)性,并實現(xiàn)環(huán)保節(jié)能的居住環(huán)境。國內(nèi)部分存活下來的企業(yè)也逐漸找到自己的發(fā)展方向,例如天津瑞朗,青島愛爾豪斯,海爾,科道等,用X10,深圳索科特做了空調(diào)遠程控制,成為工業(yè)智控的廠家。鼓勵整機企業(yè)與芯片、器件、軟件企業(yè)協(xié)作,研發(fā)各類新型信息消費電子產(chǎn)品??傉摚罕葼柹w茨是國外第一個使用智能家居的家庭,至今快有三十年的歷史了,智能家居控制系統(tǒng)也逐漸走進大家的視野。(如圖12)圖 122 總括 硬件本文所用到的主要硬件有:搭載CortexA8的GEC210嵌入式開發(fā)板,7英寸電阻屏,以及一塊硬件拓展版。MFRC522 支持MIFARE?更高速的非接觸式通信,雙向數(shù)據(jù)傳輸速率高達424kbit/s。不斷循環(huán)并取得當(dāng)前的溫濕度數(shù)值。等待10秒用戶點擊切換成外出模式關(guān)閉用電器并打開警報是否刷正確的ID卡切換成在家模式NY圖31圖31 進入安防界面在進入安防界面的時候需要用到RFID卡的認證,為上層界面提供了一個觸發(fā)界面,具體操作是當(dāng)接收到界面?zhèn)鱽淼倪M入安防界面動作時,在C語言層開辟一個安防進入的線程,利用for循環(huán)輪詢,然后用if語句把存儲有綁定的有效rfid卡ID的cfags[17]與rfid識別到的卡號進行比對,當(dāng)一致時把cfags[6]置成ID卡號表示進入安防界面成功,如果在5秒內(nèi)未能識別正確的ID卡號,就把cfags[6]置成1表示進入安防界面失敗。((s_tmtm_min)==(cflags[16]%100)))其中cflags[16]中,后面四位是表示用戶設(shè)定的時間和分鐘,第一位是指是否設(shè)定鬧鐘的標(biāo)志位,如果標(biāo)志鬧鐘的clags[16]不為0而當(dāng)前的時分與用戶設(shè)定的時分又是一致的話,就直接通過蜂鳴器的包裝