莊麗榕 穆云飛 李松?!∪_暉 張棟
摘要:該文主要介紹一種感知型智能插座的設計與實現(xiàn)。在硬件設計上,將smartlink閃連技術與傳統(tǒng)的繼電器控制技術結合,實現(xiàn)智能插座與互聯(lián)網(wǎng)的連接,獲取云端數(shù)據(jù)驅(qū)動智能插座。在軟件設計上,系統(tǒng)支持P2P的遠程數(shù)據(jù)采集與傳輸,自動下載云端實時溫度等數(shù)據(jù),響應外部環(huán)境變化,及時做出智能決策。除云端數(shù)據(jù)驅(qū)動外,還實現(xiàn)由手機APP通過本地局域網(wǎng)或遠程控制插座的開關來控制家電運行,推動智能家居生活的便捷化。
關鍵詞:智能插座;云數(shù)據(jù);WIFI網(wǎng)絡連接;感知環(huán)境;遠程控制
中圖分類號:TP2 文獻標識碼 A 文章編號:1009-3044(2015)08-0228-04
Abstract: This paper mainly introduces the design and implementation of a perceptual intelligent socket. In hardware design, it combines smartlink flash connection technology with traditional relay controlling technology, implements the connection between intelligent socket with the Internet and obtains the cloud end data driven intelligent socket. In software design, the system supports the remote data collection and transmission of P2P, downloads the real-time reliable air temperature and other data automatically, responds to the changes of external environment and makes the intelligent decisions in time. Except for cloud end data drive, it also realizes the implementation of controlling the operation status of household appliances with mobile APP through local area network or the switch of remote control outlet and promotes the convenience of intelligent household life.
Key words: Intelligent socket; cloud data; WIFI internet connection; perceive the environment; remote control
1 引言
處于信息時代的洪流中,控制技術、計算機技術、網(wǎng)絡技術、通信技術的快速發(fā)展促使了家庭實現(xiàn)自動化。這些高科技改變了人生的生活習慣,提高了人們的生活質(zhì)量,家庭自動化也正是在這種形勢下應運而生。家庭自動化也已成為人們對生活品質(zhì)的又一種追求,它的覆蓋日漸廣泛,大到集成控制整個家庭的電子電器網(wǎng)絡,小到僅僅是某個電子產(chǎn)品的智能化。在無線網(wǎng)絡的發(fā)展和移動設備的普及下,出現(xiàn)了越來越多可以通過手機或者平板電腦來控制的產(chǎn)品,極大的推進了家庭自動化的發(fā)展。
為了使人們可以遠程控制家里的空調(diào),讓空調(diào)可以通過服務器端下載的數(shù)據(jù)感知當前溫度,并且根據(jù)所設置的開啟空調(diào)的限制溫度智能的選擇開啟或者關閉。因此提出設計一種感知型智能插座,通過這個插座感知當前環(huán)境,并且控制空調(diào)的開啟。
如圖1所示,移動端通過連接云端服務器或者直接跟Wi-Fi路由器相連,獲取到相關實時數(shù)據(jù),可選擇本地、遠程控制智能插座,通過智能插座系統(tǒng)自定義的開關協(xié)議進行環(huán)境切換,從而控制家電的工作狀態(tài)。結合感知型智能插座所提供的便捷功能使得生活更加人性化,只需指尖輕觸移動端,即可開啟。
2 智能插座的硬件設計與實現(xiàn)
如圖2所示,整個系統(tǒng)可以大致分為以下主要部分:電源穩(wěn)壓電路模塊,繼電器控制電路模塊和WIFI模塊。電源穩(wěn)壓電路模塊是將220V轉(zhuǎn)為5V開關電源和3.3V MCU供電。WIFI模塊是用來獲取外部信息,然后通過SPI/I2C跟MCU交換信息。繼電器控制電路模塊根據(jù)接受到MCU發(fā)出的指令來實現(xiàn)插座的開與關。
2.1 電源穩(wěn)壓電路
智能插座電源模塊由電源適配器接入JP1供電。這個系統(tǒng)由多個不同的模塊組合而成,不同的模塊需要的電源電壓不同,故需要對源電源引出的電壓進行不同的降壓處理,以得到各自符合要求的電源電壓,供不同模塊使用。本電路需要有5V,3.3V電壓, 3.3V主要給MCU(stm32)、WiFi模塊、撥碼開關、LED燈等供電;5V為繼電器控制供電。
5V直接由適配器輸出的穩(wěn)定電壓提供。經(jīng)過LDO(線性穩(wěn)壓)電路獲得3.3電壓給開發(fā)板其他電路供電。如圖3所示,電源接入時由SW1開關控制電源輸入,開關輸出端BATT電壓還是5V。在BATT端的話接有一個大電容,起到儲能的作用,以維持電源電壓的穩(wěn)定;還接有一個LED指示燈,用于指示電源供電與否,之間串聯(lián)一個限流電阻對LED燈進行保護。然后從BATT引出一個輸出到單片機,作為單片機的電源供電。電源輸入端并聯(lián)一個電容起到濾波作用。經(jīng)過穩(wěn)壓芯片AMS117-3.3在輸出端并聯(lián)一大一小的電容,起到濾波作用減少輸出端電壓波動,使輸出端電壓穩(wěn)定在3.3V。
AMS117-3.3芯片是一個正向低電壓穩(wěn)壓器,內(nèi)部集成過熱保護和限流回路,通過此芯片后輸出3.3V的穩(wěn)定電壓,此芯片廣泛應用于開關電源的穩(wěn)壓電路解決方案。
2.2 繼電器控制電路
繼電器模塊是智能插座控制的關鍵部分,繼電器由鐵芯、線圈、銜鐵、觸點簧片等組成。此繼電器是一個單刀雙擲,一個公共端、一個常開端、一個常閉端的開關。繼電器最大輸出:直流30V/10A,交流250V/10A。此繼電器由兩個NPN三極管,兩個K級電阻。其中一個NPN三極管控制繼電器,另一個三極管控制第一個三極管的B級。此繼電器的4腳和5腳是線圈,1腳和2腳是常閉開關,1腳和3腳是常開開關。
如圖4所示V5為繼電器提供電源,此繼電器工作電壓為5V,PA4為信號控制端口,PA4為低電平時繼電器4腳和5腳接通,有電流流過時,線圈就會產(chǎn)生磁力,把銜鐵開關K1克服彈簧拉力吸向鐵芯吸,這時候公共端COM1和CK1導通通,COM1和CB1斷開;PA4高電平時繼電器線圈磁力消失,開關K1彈回此時COM1與CK1斷開。這樣就可實現(xiàn)繼電器的控制,從而實現(xiàn)控制接入繼電器的插座火線的導通與斷開斷。此電路還有個LED指示燈,當繼電器吸合時狀態(tài)LED指示燈亮,釋放時狀態(tài)LED指示燈滅,用于查看繼電器工作狀態(tài)。
2.3 WIFI模塊
采用最新的SmartLink閃連技術,可以輕松極速連到WiFi路由器,然后自動定位當前所在地點或者手動配置當前地點,以便自動從云端僅僅下載實時更新的當前位置所需數(shù)據(jù),節(jié)省流量數(shù)據(jù),從而感知外部環(huán)境的變化,驅(qū)動智能及時做出人性化的決策,使得家電的工作不依賴其內(nèi)部的傳感器而是從云端下載實時最新的權威數(shù)據(jù)。
普通的WIFI模塊,大部分都是WIFI-串口,使用單片機串口就可以直接控制。本文中的智能插座的WiFi模塊包含所有的WIFI協(xié)議棧、lwip協(xié)議棧、Uip協(xié)議棧、OSI等。使用千兆以太網(wǎng)lwip協(xié)議棧,屬于高速SDIO接口,并且支持多個接入點。
WIFI模塊主要包括以下核心模塊:WifiService、WifiMonitor、Wifi驅(qū)動模塊、Wifi電源管理模塊和Wpa supplicant。如圖5示,SystemServer啟動時候生成的ConnecttivityService創(chuàng)建了WifiService,負責啟動關閉wpa_supplicant和WifiMonitor線程,把命令下發(fā)給wpa_supplicant以及更新WIFI新的狀態(tài);WifiMonitor模塊負責從wpa_supplicant接收事件通知;其中,Wifi驅(qū)動模塊主要進行l(wèi)oad firware和kernel的wireless通信;Wifi電源管理模塊主要控制硬件的GPIO和上下電,讓CPU和Wifi模組之間通過sdio接口通信;Wpa supplicant模塊的工作流程是:先讀取配置文件,初始化配置文件和驅(qū)動函數(shù),接著驅(qū)動scan當前的所有的bssid,檢查掃描的參數(shù)是否和用戶設置的相符,如果相符,則通知驅(qū)動進行權限和認證操作,最后連上AP。
3 云端服務器的設計
云端服務器使用網(wǎng)絡服務商提供的高性能云服務器作為平臺,完成數(shù)據(jù)的收集和數(shù)據(jù)的服務兩種功能。云端服務器上搭載24小時運行的數(shù)據(jù)收集程序和數(shù)據(jù)服務程序。數(shù)據(jù)收集程序負責從網(wǎng)絡上的開放平臺收集并存儲信息。數(shù)據(jù)服務程序會向網(wǎng)絡上的設備提供一個用于交互的API接口,智能處理網(wǎng)絡設備的數(shù)據(jù)需求并將數(shù)據(jù)查詢結果提供給發(fā)出請求的設備。
3.1 數(shù)據(jù)收集程序
3.1.1 數(shù)據(jù)收集模塊
云端服務器的數(shù)據(jù)收集程序24小時不間斷運行,進行數(shù)據(jù)收集操作。為保證數(shù)據(jù)的多樣性,數(shù)據(jù)收集程序以網(wǎng)絡上的多種開放API( 如:百度LBS開放平臺,新浪SAE,Google App Engine等)獲得權威的天氣數(shù)據(jù)作為數(shù)據(jù)源。數(shù)據(jù)的獲取頻率由統(tǒng)一管理調(diào)度系統(tǒng)視服務器情況和網(wǎng)絡平臺的數(shù)據(jù)獲取頻率限制進行調(diào)整,理論上越高的獲取頻率越能保證獲得數(shù)據(jù)的實時性。
3.1.2 數(shù)據(jù)分析模塊
由于從不同API獲取的數(shù)據(jù)格式不盡相同,數(shù)據(jù)收集程序會對獲取的天氣數(shù)據(jù)進行分析,僅獲取系統(tǒng)規(guī)定要進行收集的數(shù)據(jù)項(如:當前氣溫,當前濕度,當前天氣狀況等,數(shù)據(jù)項由統(tǒng)一管理調(diào)度系統(tǒng)控制),將與收集條件無關的數(shù)據(jù)部分進行丟棄,并將從每個平臺獲取的數(shù)據(jù)都以相同的數(shù)據(jù)格式進行封裝,以減少數(shù)據(jù)之間的差異性。
3.1.3 校驗模塊
在對從網(wǎng)絡平臺獲取的數(shù)據(jù)進行分析的過程中,會對數(shù)據(jù)進行校驗,排除損壞的數(shù)據(jù)和不正常的數(shù)據(jù),以保證數(shù)據(jù)的完整性和真實性。如果從某平臺獲取的數(shù)據(jù)通過了分析校驗,那么系統(tǒng)會在數(shù)據(jù)后添加一個通過標識,以表示此數(shù)據(jù)可以被用來維持系統(tǒng)的正常運作;一旦遇到無法讀取的數(shù)據(jù)時,系統(tǒng)會立即重試獲取數(shù)據(jù)的操作,用來獲得新的數(shù)據(jù)來進行分析步驟,如在規(guī)定次數(shù)內(nèi)(由統(tǒng)一管理調(diào)度系統(tǒng)調(diào)整)依舊無法獲取正常的數(shù)據(jù),則放棄對當前數(shù)據(jù)進行分析,并以一個不通過標識覆蓋數(shù)據(jù)內(nèi)容,以表示此數(shù)據(jù)不能使用;若在分析過程中發(fā)現(xiàn)不正常的數(shù)據(jù)(例如溫度高過現(xiàn)實變化水平)則立即重試獲取數(shù)據(jù)的操作,并將新數(shù)據(jù)與舊數(shù)據(jù)進行對比,如果依舊不正常則在數(shù)據(jù)后添加一個警告標識,以表示此數(shù)據(jù)可能存在問題。
3.1.4 統(tǒng)一管理調(diào)度系統(tǒng)
統(tǒng)一管理調(diào)度系統(tǒng)作為程序的主要控制系統(tǒng),起到調(diào)整系統(tǒng)各項參數(shù)、調(diào)度系統(tǒng)各個模塊以及收集并反饋模塊錯誤信息的功能。統(tǒng)一調(diào)度管理系統(tǒng)全面控制數(shù)據(jù)收集程序各個模塊的性能參數(shù),保證系統(tǒng)的穩(wěn)定運行,并且提供一個管理界面供系統(tǒng)管理員來對數(shù)據(jù)收集程序的各項功能進行調(diào)整,以適合實際運行中的需求。同時記錄各個模塊反饋的錯誤日志,供系統(tǒng)維護所用。
3.1.5 數(shù)據(jù)存儲模塊
在數(shù)據(jù)分析階段結束后,系統(tǒng)會向封裝好的數(shù)據(jù)添加當前時間的UNIX時間戳,并將數(shù)據(jù)全部寫入云端服務器的數(shù)據(jù)庫中,如出現(xiàn)存取故障,程序會記錄錯誤日志并發(fā)出警告。
以上為云端服務器的數(shù)據(jù)的收集程序的功能。
3.2 數(shù)據(jù)服務程序
3.2.1 數(shù)據(jù)通信模塊
云端服務器的數(shù)據(jù)服務程序會對網(wǎng)絡上的設備提供一個用于交互的API,用來對網(wǎng)絡設備和客戶端設提供數(shù)據(jù)服務。數(shù)據(jù)服務API使用且總是使用HTTP協(xié)議作為與用戶進行通信的協(xié)議,部署在專用域名之下,采用固定的POST操作方式(安全級別較高)作為資源的操作方式,在數(shù)據(jù)服務API與網(wǎng)絡設備和客戶端進行交互式采用JSON數(shù)據(jù)格式作為標準數(shù)據(jù)格式,且不接受其他數(shù)據(jù)格式請求。
3.2.2 用戶統(tǒng)一驗證模塊
對于網(wǎng)絡設備,每次發(fā)出請求時需要附帶設備的唯一識別ID,當前時間戳,請求參數(shù)作為請求數(shù)據(jù)發(fā)送到服務器,服務器在收到請求以后首先會對設備的ID進行校驗,若通過校驗則開始分析請求參數(shù),并依照參數(shù)要求予以服務。
對于客戶端,每次發(fā)出請求時需要附帶操控設備的唯一識別ID,客戶端賬號,當前時間戳,請求參數(shù)作為請求數(shù)據(jù)發(fā)送到服務器,服務器在收到請求以后首先會對設備的ID和客戶端賬號進行校驗,若通過校驗則開始分析請求參數(shù),并依照參數(shù)要求予以服務。
3.2.3 指令分析與數(shù)據(jù)庫交互模塊
數(shù)據(jù)服務程序會識別請求中的附帶參數(shù),以確定請求的具體操作和需求的數(shù)據(jù),如只有數(shù)據(jù)獲取請求,則程序進行數(shù)據(jù)庫查詢操作,篩選數(shù)據(jù)標識僅為可用的數(shù)據(jù),提取要求的數(shù)據(jù)并進行封裝,在數(shù)據(jù)中添加請求成功的狀態(tài)標識并發(fā)回給網(wǎng)絡設備/客戶端;若在查詢過程中遇到標識為無法使用/可能存在問題的數(shù)據(jù),則向網(wǎng)絡設備/客戶端發(fā)送一個請求失敗的狀態(tài)標識。
如請求中包含客戶端部分的用戶的設定操作(溫控,定時),則將用戶設定的時間溫度等條件封裝成特定格式,并在首部添加當前系統(tǒng)UNIX時間戳作為唯一標識,將封裝好的數(shù)據(jù)寫入數(shù)據(jù)庫,若寫入成功,則向客戶端發(fā)送一條執(zhí)行成功的狀態(tài)標識,若寫入失敗,向客戶端發(fā)送一條執(zhí)行失敗的狀態(tài)標識。用戶可多次進行定時和溫控操作,并且允許用戶隨時取消設定好的溫控/定時操作。
以上為云端服務器的數(shù)據(jù)服務程序的功能。
4 手機端設計
手機客戶端與云端服務器上的數(shù)據(jù)服務程序通過專用的API進行通訊。手機端共包括6個部分的功能,包括用戶注冊新的客戶端賬號,登陸賬號,綁定網(wǎng)絡設備ID,對網(wǎng)絡設備進行開關操作,進行溫控開關操作,進行定時開關操作,修改客戶端密碼。
手機客戶端的運作流程為:注冊客戶端賬號→登陸賬號→綁定網(wǎng)絡設備ID(賬號首次使用或新添加網(wǎng)絡設備)→對網(wǎng)絡設備進行開關操作,進行溫控開關操作,
進行定時開關操作,修改客戶端密碼。
定時和控溫操作在手機上設定,手機上的設定僅做到一個發(fā)送設定給服務器的操作,具體的條件判斷及開關控制都由服務器進行記錄并且在觸發(fā)條件符合時對需要控制的網(wǎng)絡設備進行控制。
在直接控制網(wǎng)絡設備開關操作中,客戶端會在進入設定頁面時查詢當前的開關狀態(tài)并在設定頁面上顯示,設定頁面提供兩個按鈕(開和關)給用戶進行開關的遠程控制操作。
在定時操作中,用戶可以設定一個固定的時間和一個開關狀態(tài),在設定好后客戶端會向服務器發(fā)送請求,若服務器發(fā)送成功標識,則將設定的條件加入客戶端的已設定列表中,供用戶對當前設定進行瀏覽。
5 總結
本文介紹了智能插座的整體實現(xiàn)過程。移動端通過連接云端服務器或者直接跟Wi-Fi路由器相連,獲取到相關實時數(shù)據(jù),本地、遠程控制插座的開關來實現(xiàn)控制家用電器的運行狀態(tài)或者在多電器的場景下切換不同的模式。采用SmartLink閃連技術,不需要長時間工作或待機。同時云端的數(shù)據(jù)具有強大的可拓展性,在未來一段時間內(nèi)都具有良好的擴充性。
參考文獻:
[1] 李文仲,段朝玉.ZigBee無線網(wǎng)絡技術入門與實踐[M].北京:北京航空航天大學出版社,2007: 128-153.
[2] 姚文軒,滕召勝,熊靜雯,鄧遠寧,譚霞.多功能智能插座設計[J].企業(yè)技術開發(fā),2010,29(11):28-30.
[3] 孫慧芳,莫淳棟.基于STM32智能家居系統(tǒng)的設計與實現(xiàn)[J].電子設計工程,2014,22(19):82-85.
[4] 王水紅,徐煒,郝立平.STM32系列ARM Cortex-M3微控制器原理與實踐[M].北京:北京航空航天大學出版社,2008.
[5] 項粵生,高瑞霞,鄔楊波,等.基于單片機的智能插座的設計與實現(xiàn)[J].工業(yè)控制計算機,2012,25(9):129-131.
[6] 顏庭柏,姚迪,沈澄.基于Google Map API的天氣實況顯示系統(tǒng)[J].地理空間信息,2013,11(3):120-123.
[7] LAMP兄弟連,高洛峰.細說PHP[M].北京:電子工業(yè)出版社,2012.
[8] 阮一峰.RESTful API 設計指南[CP/OL]. http://www.ruanyifeng.com/blog/2014/05/restful_api.html?spm=0.0.0.0.9k3cKg,2014,5,22