亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Android 和云平臺的智能家居系統(tǒng)設計與實現(xiàn)

        2015-09-19 03:42:00武一張圣鵬丁涵
        電視技術 2015年22期
        關鍵詞:調用網(wǎng)關智能家居

        武一,張圣鵬,丁涵

        ( 河北工業(yè)大學電子信息工程學院,天津300401)

        WU Yi,ZHANG Shengpeng,DING Han

        (School of Information Engineering,Hebei University of Technology,Tianjin 300401,China)

        在“互聯(lián)網(wǎng)+”模式快速發(fā)展的背景下,智能家居的發(fā)展更加依賴于互聯(lián)網(wǎng),手機作為人們日常的通信工具,是智能家居系統(tǒng)中最便捷的控制終端。智能家居系統(tǒng)發(fā)展過程中一直存在一些亟待解決的問題,如異常報警抓拍圖像的存儲、短信報警信息模式單一以及Android 客戶端接入及控制等。結合人們對智能家居的發(fā)展需求,本文設計了一種“云+端”的智能家居模式[1],以嵌入式網(wǎng)關作為服務器端,以Android 手機作為客戶端的智能家居系統(tǒng),并結合云平臺相關技術,實現(xiàn)云推送報警信息,報警圖像云存儲,提高系統(tǒng)的實用性。

        1 系統(tǒng)方案整體設計

        圖1 系統(tǒng)總體結構

        本設計主要分為網(wǎng)關、客戶端、家庭內部無線網(wǎng)絡。網(wǎng)關作為本系統(tǒng)的核心,通過串口接收來自ZigBee 網(wǎng)絡的數(shù)據(jù),與家電控制模塊進行UDP 通信,移植了Boa 服務器和MJPG-streamer 視頻服務器,對客戶端的http請求進行響應,異常情況下向用戶手機推送報警消息并拍照上傳圖像云存儲??蛻舳藶锳ndroid 手機客戶端,可以通過用戶界面查看家庭的環(huán)境信息以及控制家電,根據(jù)情景設定不同模式,通過視頻監(jiān)控遠程查看家庭實時畫面以及查詢Yeelink 平臺云存儲的報警圖像。家庭內部網(wǎng)絡以低功耗的ZigBee 模塊組成無線傳感網(wǎng)絡采集溫度、濕度、光照、煙霧、天燃氣、人體紅外等環(huán)境參數(shù)。家電控制模塊采用帶學習功能的紅外和315 MHz、433 MHz 射頻轉發(fā)模塊,給智能燈光開關、智能窗簾、空調發(fā)送發(fā)送控制命令,并且集成了WiFi 模塊,與網(wǎng)關通過UDP 協(xié)議進行通信。系統(tǒng)的結構如圖1。

        2 硬件平臺設計

        該系統(tǒng)硬件主要為嵌入式網(wǎng)關模塊和ZigBee 模塊。嵌入式網(wǎng)關采用S3C2440AL 作為CPU 處理器,ARM920T 內核,主頻為400 MHz,最高可達533 MHz,配備256 Mbyte 的Nand Flash、2 Mbyte 的Nor Flash、64 Mbyte 的SDRAM 以及串口、網(wǎng)卡等基本模塊。串口與ZigBee 協(xié)調器連接,接收并存儲家庭環(huán)境數(shù)據(jù)。網(wǎng)關系統(tǒng)接入Internet 網(wǎng)絡,并接收來自Android客戶端的數(shù)據(jù)請求。ZigBee 模塊以TI 公司的CC2530 芯片為核心構成,擁有優(yōu)秀的RF 性能和業(yè)界標準增強8051MCU 內核,支持一般的低功耗無線通信[2]。系統(tǒng)中ZigBee 協(xié)調器節(jié)點負責無線傳感器網(wǎng)絡的建立、網(wǎng)絡地址的分配以及匯聚傳感節(jié)點所采集的數(shù)據(jù),通過UART 接口與網(wǎng)關相連,傳感器節(jié)點采集并發(fā)送各種環(huán)境和安防傳感器數(shù)據(jù)。

        3 網(wǎng)關系統(tǒng)軟件設計

        網(wǎng)關系統(tǒng)為整個系統(tǒng)的核心,負責整個系統(tǒng)的調度,包括監(jiān)聽來自ZigBee 網(wǎng)絡的數(shù)據(jù),響應客戶端的數(shù)據(jù)獲取請求和控制命令,其工作流程圖如圖2。

        圖2 網(wǎng)關系統(tǒng)工作流程

        3.1 CGI 程序設計

        基于智能家居系統(tǒng)的功能需求,本系統(tǒng)在嵌入式設備上移植Boa 服務器,接收并響應手機客戶端的http 請求,通過CGI 調用應用程序,進行設備控制。

        CGI 是外部應用擴展應用程序與Web 服務器交互的一個標準接口[3]。按照CGI 標準編寫的外部擴展應用程序可以處理客戶端輸入的數(shù)據(jù),從而完成客戶端與服務器的交互操作[4]。

        本設計中,Web 服務器根據(jù)Android 客戶端請求調用CGI程序,CGI 程序檢查REQUEST_METHOD 環(huán)境變量以確定采用的方法,如果是POST 方法,則從標準輸入STDIN 讀取數(shù)據(jù);如果是GET 方法,則從QUERY_STRING 環(huán)境變量讀取數(shù)據(jù)[5]。該系統(tǒng)中需要解碼數(shù)據(jù)格式為“變量名=值”鍵值對的格式:variable1=value&variable2=value2&..。變量名表示要發(fā)送命令對應的設備,變量值則對應要執(zhí)行的命令。解析數(shù)據(jù)并根據(jù)命令不同,如果是環(huán)境數(shù)據(jù)查詢則執(zhí)行查詢數(shù)據(jù)庫并返回數(shù)據(jù);如果是家電控制命令則與射頻紅外轉發(fā)模塊建立UDP 連接,發(fā)送相應的控制命令,如果是模式設置,則操作相應的配置文件,設置對應的模式狀態(tài)。

        3.2 報警消息推送

        本系統(tǒng)利用極光云推送服務,將家庭環(huán)境報警信息推送至用戶手機通知欄[6]。在嵌入式網(wǎng)關應用服務器上使用CURL 編程,調用JPush Remote API 遠程接口,對指定的用戶Android 手機客戶端來推送通知消息。Curl 編程基于Lib-Curl,主要采用callback function(回調函數(shù))的形式完成傳輸任務,用戶在啟動傳輸前設置好各類參數(shù)和回調函數(shù),當滿足條件時libcurl 將調用用戶的回調函數(shù)實現(xiàn)特定功能[7]。

        根據(jù)極光推送向服務器端提供的API,利用libcurl 實現(xiàn)消息的推送。首先調用curl_global_init(CURL_GLOBAL_ALL)初始化libcurl,初始化所有可能的調用。用curl_easy_init()函數(shù)初始化一個CURL 的指針,開始一個會話。調用curl_easy_setopt()設置傳輸選項。使用curl_easy_setopt(curl,CURLOPT_URL,"https://api. jpush. cn/v2/push")設 置 訪問URL。

        根據(jù)API 參數(shù)說明格式,結合智能家居系統(tǒng)應用需求,選擇和設定相應參數(shù)值。需要設定發(fā)送編號、接收者類型為廣播以及待發(fā)送的Android應用程序。然后由發(fā)送編號(sendno)、接收者類型(receiver_type)、發(fā)送范圍值(receiver_value)、API DevSecret(master_secret)4 個值拼接后,進行一次MD5 (32 位大寫)生成驗證串。

        為方便用戶查看報警信息,設定發(fā)送消息的類型為通知(msg_type=1),即將消息推送到在Android 手機客戶端的通知欄。發(fā)送消息內容msg_content 為JSON 格式。例如人體紅外報警通知可設置為:msg_content={"n_content":"Thieft Alerting!"}。選擇Android 手機作為接收推送消息的平臺,設置被推送的報警信息在手機離線狀態(tài)下可保存一天的時長。使用curl_easy_setopt(curl,CURLOPT_POSTFIELDS,pForm)函數(shù)傳遞作為HTTP POST 操作的所有設置選項內容。最后curl_easy_perform(curl)函數(shù)完成curl_easy_setopt 指定的所有選項。

        3.3 抓拍及上傳報警圖像

        本系統(tǒng)拍照使用wget 工具,與視頻服務器連接并下載圖像到/sddisk 目錄。shell 腳本語句為:wget"http://192.168.7.25:8080/action=snapshot"-O MYMdir。

        為方便上傳腳本程序查找圖像,抓拍的圖像以當前時間和“_alert”組合作為文件名,存儲在開發(fā)板的SD 卡中,節(jié)省開發(fā)板的存儲空間,并且當網(wǎng)絡異常無法上傳圖片時可以拔出內存卡,在PC 機上直接查看報警圖像。

        通過shell 腳本,使用CURL 工具對圖像上傳URL 進行HTTP POST 請求,實現(xiàn)圖像的上傳。首先查找/sddisk 目錄下按時間排序最早并且以alert.jpg 結尾的圖像,然后通過curl設置相關選項,在請求頭信息添加U-ApiKey 即yeelink 分配給用戶的API KEY,設置上傳圖像的URL,對該URL 以POST方法進行HTTP 請求,以二進制數(shù)據(jù)形式上傳圖像至yeelink物聯(lián)網(wǎng)云平臺。檢測到有符合要求的圖片就上傳,上傳后并刪除該圖片。圖像上傳語句如下:UPimage="curl-request POST-data-binary@"MYMPIC"-h(huán)eader U-ApiKey:MYMUP_ApiKey-verbose MYMUP_URL"。

        4 客戶端軟件設計

        從實用的角度出發(fā),Android 客戶端界面主要設計了環(huán)境數(shù)據(jù)查詢顯示、模式設置、家電控制、天氣預報、視頻監(jiān)控、報警記錄查詢、使用幫助、推送消息設置模塊,實現(xiàn)用戶隨時隨地查詢家庭環(huán)境信息、控制家電及查看異常報警信息和異常報警圖像。

        4.1 與網(wǎng)關Web 服務器通信

        為方便手機客戶端與遠程Web 服務器通信,并及時顯示服務器響應的數(shù)據(jù),本文采用在Android 客戶端使用webview組件加載含有JavaScript 腳本的網(wǎng)頁,利用Javascript 腳本與Android 方法相互調用,來實現(xiàn)UI 線程與網(wǎng)頁的數(shù)據(jù)交換,網(wǎng)頁中的Javascript 腳本中調用Jquery 庫的get()方法向遠程Web 服務器發(fā)送請求并獲取服務器響應數(shù)據(jù)。

        在Java 代碼中通過webview.loadUrl("javascript:方法名()")調用Javascript 方法來傳遞由UI 用戶界面觸發(fā)的一些控制操作命令到Javascript 中處理,在Javascript 中調用Jquery.get()方法從遠程Web 服務器獲取數(shù)據(jù)或發(fā)送控制命令。從遠程服務器上獲取數(shù)據(jù)后傳遞給get()函數(shù)參數(shù)指定的函數(shù),調用android 方法,將獲取的數(shù)據(jù)傳遞到UI 界面顯示。

        4.2 與網(wǎng)關視頻服務器通信

        嵌入式網(wǎng)關系統(tǒng)移植了MJPEG-streamer 視頻服務器,以input_uvc 為輸入組件,output_http 為輸出組件,根據(jù)輸出組件中的output_http 的http 通信協(xié)議,在Android 平臺上實現(xiàn)服務器連接和圖像數(shù)據(jù)解析并顯示。

        手機客戶端利用SOCKET 編程實現(xiàn)了與MJPEG-streamer視頻服務器的http 數(shù)據(jù)傳輸協(xié)議。建立TCP 連接,并發(fā)出返回視頻流數(shù)據(jù)的http 請求,服務器在收到和解析請求消息后,返回一個HTTP 響應消息,客戶端解析HTTP 響應消息,判斷MIME 類型、內容、大小。通過邊界符定位到圖像數(shù)據(jù)部分,截取圖像數(shù)據(jù)向Handler 發(fā)送消息更新UI 顯示。

        4.3 與Yeelink 云平臺通信

        利用Yeelink 平臺提供的API 接口,Android 手機客戶端與Yeelink 平臺建立連接,進行數(shù)據(jù)交換。首先設置查詢的起始和結束時間,與Yeelink 建立連接,查詢該時間段內所有節(jié)點圖像的基本信息,從輸入流獲取數(shù)據(jù),并解析,記錄對應的時間點信息。然后以時間點倒序查詢所有時間點的圖像內容,并在listview 組件中異步顯示。具體流程如圖3 所示。

        圖3 客戶端與云平臺通信流程圖

        Yeelink 平臺提供了查看規(guī)定時間段內的圖像信息的API??蛻舳送ㄟ^日期和時間對話框,設置查詢的起始時間點和截至時間點。對獲取圖像信息URL 的一個HTTP GET 請求,云平臺將返回所指定時間段內的圖像相關數(shù)據(jù)信息[8]。返回的信息包括各個圖像對應的時間節(jié)點、大小、類型等信息。把各個報警圖像數(shù)據(jù)的timestamp 取出作為獲取圖像內容URL http://api.yeelink.net/v1.0/device/<device_id >/sensor/<sensor_id >/photo/info/<key >中的key,來獲得所有節(jié)點的報警圖像內容。

        本系統(tǒng)通過HttpURLConnection 實現(xiàn)簡單的基于URL 請求、響應。先實例化一個URL 對象,通過URL 的openConnection 實例化HttpURLConnection 對象。通過conn.setRequest-Method 設置請求方法GET 以及在頭信息中設置用戶訪問權限密碼"U-ApiKey"。建立連接并獲得輸入流,處理數(shù)據(jù)。所獲得圖像內容為二進制數(shù)據(jù),然后通過Drawable d =Drawable.createFromStream(is,"src"),將數(shù)據(jù)流以Drawable 的形式返回顯示。

        4.4 接收推送消息

        在智能家居Android 客戶端增加消息推送功能,當系統(tǒng)檢測到環(huán)境異常情況時,嵌入式網(wǎng)關推送報警信息到手機通知欄,點擊該消息打開Activity,顯示推送信息內容并連接視頻服務器,實時查看家庭環(huán)境畫面,方便用戶及時掌握家庭環(huán)境動態(tài)。

        極光推送是一個端到端的推送服務,使得服務器端消息能夠及時地推送到終端用戶手機上。極光推送的Android SDK 用AlarmManager 來定時的發(fā)心跳,防止NAT 表失效,與服務器維護一個TCP 長連接,保證了數(shù)據(jù)送達的及時性。

        在Android 應用中集成JPush Android SDK,為Android App 增加推送功能,接收通知消息。cn.jpush.android.api.JPushInterface 類包含了JPush SDK 提供所有的API 接口。在應用程序啟動時調用JPushInterface.init 初始化SDK。推送消息可以根據(jù)情況選擇接收與否。在應用程序界面設置相應按鈕操作來調用stopPush API 在不需要推送消息或者開會等免打擾時間段停止JPush 推送服務。停止推送服務后,JPush Service 停止在后臺運行,收不到推送消息。調用resumePush接口函數(shù)可以恢復被停止的推送服務。

        JPush SDK 收到推送,通過廣播的方式,轉發(fā)給智能家居客戶端App。由于本課題接收來自嵌入式網(wǎng)關的通知消息,所以在AndroidManifest.xml 里配置表示收到了通知Push 和用戶點擊了通知的Receiver action。在BroadcastReceiver 類里設置點擊通知要打開的Activity。在Activity 中,通過JPushInterface.EXTRA_NOTIFICATION_TITLE、JPushInterface.EXTRA_ALERT 兩個Intent 參數(shù)分別獲取服務器推送下來的通知的標題和內容并顯示。

        5 系統(tǒng)測試

        手機客戶端設置嵌入式家庭網(wǎng)關的IP 地址或域名,進入控制主界面如圖4 所示。點擊環(huán)境參數(shù)查看到實時家庭環(huán)境狀態(tài),點擊空調、窗簾、電燈的家電設備,可進行相應的開關操作。模式設定界面,選擇無人模式,如果有人在室內活動,則手機通知欄顯示“Thieft Alerting”有人闖入的報警信息,如圖5,點擊該消息可以視頻監(jiān)控界面實時查看家庭動態(tài)環(huán)境,如圖6 所示。點擊報警記錄查看報警時間、內容及報警場景的圖像,如圖7 所示。經(jīng)測試,該系統(tǒng)能實現(xiàn)智能家居生活的基本功能。

        圖4 主界面(截圖)

        圖5 通知消息(截圖)

        圖6 報警內容(截圖)

        圖7 報警圖像記錄(截圖)

        6 小結

        本文將嵌入式網(wǎng)關、Android 智能手機、消息云推送以及圖像云存儲等相關技術緊密結合,應用到智能家居系統(tǒng)設計中,解決了智能家居系統(tǒng)大規(guī)模數(shù)據(jù)的存儲、管理及移動終端的可靠接入訪問等問題,有很高市場應用價值。本設計對“云+端”智能家居模式的發(fā)展有一定的促進作用。

        [1]朱敏玲,李寧.智能家居發(fā)展現(xiàn)狀及未來淺析[J].電視技術,2015,39(4):82-85.

        [2]高立艾,劉少博,唐娟.基于ZigBee 和GPRS 的溫室環(huán)境無線監(jiān)測系統(tǒng)設計[J].貴州農(nóng)業(yè)科學,2013(4):168-170.

        [3]焦雙偉,喻金科.嵌入式Web 服務器在控制系統(tǒng)中的設計與實現(xiàn)[J].計算機系統(tǒng)應用,2011,20(8):126-128.

        [4]陳紅梅,陳靜,李雪冬.嵌入式Linux 下基于CGI 的動態(tài)Web 的實現(xiàn)[J].計算機時代,2010(4):4-5.

        [5]盧靈,周賢軍.基于WiFi 的嵌入式視頻監(jiān)控系統(tǒng)設計[J].電視技術,2013,37(1):157-160.

        [6]極光推送.JPush Android SDK 集成指南[EB/OL].[2015-04-20].http://docs.jpush.io/guideline/android_guide/.

        [7]劉聰.智能家庭網(wǎng)關Web 存儲代理技術的研究與實現(xiàn)[D].北京:北京郵電大學,2010.

        [8]黃明亮.物聯(lián)網(wǎng)開放平臺的研究與設計[D].青島:中國海洋大學,2013.

        猜你喜歡
        調用網(wǎng)關智能家居
        基于改進RPS技術的IPSEC VPN網(wǎng)關設計
        核電項目物項調用管理的應用研究
        LabWindows/CVI下基于ActiveX技術的Excel調用
        測控技術(2018年5期)2018-12-09 09:04:46
        基于Zigbee的無線通信技術在智能家居中的應用
        電子制作(2018年1期)2018-04-04 01:48:28
        基于系統(tǒng)調用的惡意軟件檢測技術研究
        關于智能家居真正需求的探討
        LTE Small Cell網(wǎng)關及虛擬網(wǎng)關技術研究
        移動通信(2015年18期)2015-08-24 07:45:08
        應對氣候變化需要打通“網(wǎng)關”
        太陽能(2015年7期)2015-04-12 06:49:50
        智能家居更貼心
        科學生活(2015年3期)2015-01-03 09:41:18
        一種實時高效的伺服控制網(wǎng)關設計
        国产日本在线视频| 成人免费播放视频777777 | 成 人 网 站 在线 看 免费| 亚洲素人日韩av中文字幕| 亚洲区日韩精品中文字幕| 熟妇与小伙子露脸对白| 久久国产精品国语对白 | 久久久久久人妻无码| 日本久久高清一区二区三区毛片| 午夜视频在线在免费| 厨房玩丰满人妻hd完整版视频| 午夜无码亚| 精品中文字幕日本久久久| 白白色视频这里只有精品| 精品久久久久久亚洲综合网| 欧美老妇多毛xxxxx极瑞视频| 午夜成人精品福利网站在线观看| 亚洲成a人片在线观看导航| 亚洲精品女同在线观看| 91自拍视频国产精品| 久久久久久久97| 亚洲av色无码乱码在线观看| 午夜视频免费观看一区二区| 少妇下面好紧好多水真爽| 91精品国产在热久久| 亚洲欧美一区二区成人片| 乱码精品一区二区三区| 精品国免费一区二区三区| 日本女优五十路中文字幕| 国产玉足榨精视频在线观看| 狠狠噜天天噜日日噜视频麻豆| 产国语一级特黄aa大片| 日本伦理美乳中文字幕| 极品粉嫩小仙女高潮喷水网站 | 欧美成年黄网站色视频| 亚洲AV秘 无码一区二区久久| 国产一级内射一片视频免费 | 亚洲高清一区二区三区在线观看| 一区视频免费观看播放| 国模精品一区二区三区| 亚洲美国产亚洲av|