999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android 和云平臺的智能家居系統設計與實現

2015-09-19 03:42:00武一張圣鵬丁涵
電視技術 2015年22期
關鍵詞:嵌入式系統

武一,張圣鵬,丁涵

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

WU Yi,ZHANG Shengpeng,DING Han

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

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

1 系統方案整體設計

圖1 系統總體結構

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

2 硬件平臺設計

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

3 網關系統軟件設計

網關系統為整個系統的核心,負責整個系統的調度,包括監聽來自ZigBee 網絡的數據,響應客戶端的數據獲取請求和控制命令,其工作流程圖如圖2。

圖2 網關系統工作流程

3.1 CGI 程序設計

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

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

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

3.2 報警消息推送

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

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

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

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

3.3 抓拍及上傳報警圖像

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

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

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

4 客戶端軟件設計

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

4.1 與網關Web 服務器通信

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

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

4.2 與網關視頻服務器通信

嵌入式網關系統移植了MJPEG-streamer 視頻服務器,以input_uvc 為輸入組件,output_http 為輸出組件,根據輸出組件中的output_http 的http 通信協議,在Android 平臺上實現服務器連接和圖像數據解析并顯示。

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

4.3 與Yeelink 云平臺通信

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

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

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

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

4.4 接收推送消息

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

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

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

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

5 系統測試

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

圖4 主界面(截圖)

圖5 通知消息(截圖)

圖6 報警內容(截圖)

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

6 小結

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

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

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

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

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

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

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

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

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

猜你喜歡
嵌入式系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
主站蜘蛛池模板: 成年人免费国产视频| 国产本道久久一区二区三区| 99re精彩视频| 国产无码性爱一区二区三区| 国产va免费精品观看| 国产精品太粉嫩高中在线观看| 成人福利在线视频| 国产成人三级| 黄色一级视频欧美| 免费看av在线网站网址| 国产超碰一区二区三区| 人妖无码第一页| 无码有码中文字幕| 国产又爽又黄无遮挡免费观看| 91精品国产福利| 狠狠色综合久久狠狠色综合| 国产成人无码综合亚洲日韩不卡| 国产在线观看高清不卡| 中文字幕资源站| 久久免费视频播放| 四虎影视库国产精品一区| 国产主播喷水| 四虎永久在线视频| 中国一级特黄视频| 亚洲另类色| 欧美日韩精品一区二区视频| 曰AV在线无码| 麻豆AV网站免费进入| 成人久久精品一区二区三区| 露脸国产精品自产在线播| 最新国产网站| 青青青草国产| 国产精品性| 婷婷综合在线观看丁香| 亚洲毛片一级带毛片基地| 亚洲视频免费在线看| 婷婷激情五月网| 亚洲国产成人无码AV在线影院L| 国产丝袜无码精品| 91成人在线免费观看| 波多野结衣第一页| 77777亚洲午夜久久多人| 欧美三级视频网站| 亚洲swag精品自拍一区| 国产成人a在线观看视频| 久久久受www免费人成| 国产视频只有无码精品| 国产福利在线观看精品| 99久久无色码中文字幕| 欧美成人精品高清在线下载| 亚洲日本一本dvd高清| 亚洲免费播放| 久久性视频| 国产青青操| 久久人妻xunleige无码| 特级aaaaaaaaa毛片免费视频| 欧美黄网站免费观看| 国产99热| 国产中文一区二区苍井空| 国产一区二区三区精品久久呦| 最新国语自产精品视频在| 无码精品国产VA在线观看DVD | 国产色偷丝袜婷婷无码麻豆制服| 2021国产v亚洲v天堂无码| 亚洲无码高清一区二区| 热思思久久免费视频| 欧美精品亚洲日韩a| 亚洲aaa视频| 日韩在线播放中文字幕| 麻豆精品在线视频| lhav亚洲精品| 亚洲人免费视频| 青草视频网站在线观看| 精品丝袜美腿国产一区| 四虎亚洲国产成人久久精品| 欧美性色综合网| 久久99精品久久久大学生| 日本在线国产| 国产成人亚洲精品色欲AV | 亚洲欧美日韩精品专区| 色婷婷视频在线| 亚洲天堂首页|