|
摘要: 文章主要介紹了一種基于機智云iot開發(fā)平臺的空調(diào)遠程控制模塊的應用開發(fā),模塊功能是通過智能手機的用戶界面遠程控制空調(diào)的工作,包括工作條件的設置和溫度環(huán)境監(jiān)測,開發(fā)內(nèi)容包含了硬件和軟件兩部分,硬件開發(fā)部分主要解決空調(diào)控制模塊的設計,軟件開發(fā)部分主要解決互聯(lián)網(wǎng)通訊問題。
引言
機智云IoT開發(fā)平臺是面向個人、企業(yè)開發(fā)者的一站式智能硬件開發(fā)及云服務平臺,平臺提供了從定義產(chǎn)品、設備開發(fā)調(diào)試、應用開發(fā)、產(chǎn)品檢測、云端開發(fā)、運營管理、數(shù)據(jù)服務等覆蓋智能硬件接入到運營管理的全周期全鏈條服務,也是智能家居產(chǎn)品開發(fā)應用的理想服務平臺。查看更多關于智能家電家居的方案,可到機智云官網(wǎng)行業(yè)方案查閱。機智云IoT開發(fā)平臺的接入流程如圖1所示。
1,系統(tǒng)設計
空調(diào)遠程智能控制系統(tǒng)是一款基于機智云IoT開發(fā)平臺的智能家居產(chǎn)品的嵌入式系統(tǒng),設計原理是客戶端1(空調(diào)控制器)通過互聯(lián)網(wǎng)向服務器(機智云IoT開發(fā)平臺)發(fā)出通訊請求,服務器響應請求后與客戶端2(手機APP)建立聯(lián)系,即建立數(shù)據(jù)接口,從而建立多客戶端間的通訊,最終達到用手機APP實時檢測和控制空調(diào)的目的。
系統(tǒng)架構如圖2所示,空調(diào)控制器利用無線通信模塊與機智云服務器連接進行通訊,空調(diào)控制器負責發(fā)送產(chǎn)品序列號和密鑰,在機智云IoT開發(fā)平臺訂閱設備,手機客戶端利用機智云平臺提供的軟件開發(fā)工具包來開發(fā)具有個性化的手機APP,同時使用工具包中提供的方法建立與機智云服務器的通訊,發(fā)送序列號和密鑰,訂閱對應的設備。
系統(tǒng)設計采用機智云的Gizwits Agent(WIFI模塊/GPRS模塊串口標準協(xié)議)和Open API(開放的應用編程接口),不需要研究底層協(xié)議,大大減少了開發(fā)周期及成本。
1.1系統(tǒng)硬件設計
系統(tǒng)硬件設計主要是空調(diào)控制器的設計,其工作原理是傳感器采集環(huán)境的溫濕度信號,MCU實時顯示環(huán)境溫濕度并根據(jù)設定閾值進行調(diào)節(jié),同時把數(shù)據(jù)通過網(wǎng)絡傳送到手機端供客戶遠程控制。部分硬件模塊電路如圖3所示,MCU選用STM32F103C8T6單片機,它使用STM32Cube MX軟件來生成所需要的外設代碼,摒棄了傳統(tǒng)的固件庫,利用圖形化的優(yōu)勢,更直觀地配置外設,節(jié)省前期底層的代碼編寫,也縮短了編譯時間。
無線通信模塊采用esp8266系列芯片,是一款32位泰思立達處理器,具有性能穩(wěn)定、功耗低的特點。溫濕度采集模塊采用DHT11溫濕度傳感器,它是一款性價比較高的單總線型溫濕度傳感器,性能滿足設計需求。顯示模塊采用市場通用的OLED液晶顯示屏,該顯示屏可以實現(xiàn)彩色、柔軟顯示,具有體積小巧、厚度輕薄、攜帶方便、抗震能力強等優(yōu)點。
圖2系統(tǒng)架構
圖3 空調(diào)控制器部分模塊
1.2系統(tǒng)軟件設計
系統(tǒng)軟件的設計包括空調(diào)控制器程序開發(fā)、手機APP開發(fā)兩個部分[1]。機智云IoT開發(fā)平臺為開發(fā)者提供了開放的網(wǎng)絡開發(fā)平臺,機智云官網(wǎng)為https://www.gizwits.com/。用戶進入相關界面,只需注冊登入便可以添加屬于自己的產(chǎn)品,添加產(chǎn)品時,平臺自動分配產(chǎn)品標識碼與密鑰。在產(chǎn)品創(chuàng)建完成后,根據(jù)提示添加自己所需要的數(shù)據(jù)點,內(nèi)容如表1所示。
1.2.1控制器程序開發(fā)
設備(空調(diào))控制器程序開發(fā)方法是借用機智云提供的軟件包完成,步驟如下:(1)根據(jù)產(chǎn)品密鑰下載相應的軟件工具包,內(nèi)容包括官方提供的移植手冊和設備控制程序。(2)用戶需將MCU的通信接口參數(shù)配置好,同時將機智云所提供的系統(tǒng)固件程序燒錄進無線通信模塊芯片中,固件封裝了設備與云端通信的協(xié)議以及通信流程,減少了開發(fā)者研究相關網(wǎng)絡協(xié)議而花費的精力。
(3)設備MCU進行設備控制程序的代碼移植[2]。這一步是關鍵,代碼移植成功后馬上調(diào)試單片機控制無線通信模塊實現(xiàn)網(wǎng)絡通信,過程比較復雜,無線通信模塊必須先進行配網(wǎng),以Air Link模式為例,設備MCU向無線通信模塊發(fā)送指令進入配網(wǎng)模式,手機在連接WIFI路由的前提下,打開機智云提供的調(diào)試APP選擇配網(wǎng)模式,APP會發(fā)送一個UDP(用戶數(shù)據(jù)報協(xié)議)廣播數(shù)據(jù)包,包中存放了WIFI路由器的賬號和密碼,無線通信模塊接收到該包后對內(nèi)容進行解析,獲得WIFI路由器的賬號和密碼,然后配置本地無線通信模塊直接連接WIFI路由器[3]。
(4)無線通信模塊配網(wǎng)成功后,編寫設備本地控制程序并調(diào)試。設備與云端通訊成功,手機調(diào)試APP會顯示設備的名稱與工作狀態(tài),網(wǎng)頁端調(diào)試日志中也會顯示設備已上線,這樣設備MCU可以通過本地控制程序讀寫最初設置的數(shù)據(jù)點,實現(xiàn)設備與云端數(shù)據(jù)的交互,達到實現(xiàn)遠程控制的目的。
1.2.2手機APP開發(fā)
機智云IoT開發(fā)平臺為開發(fā)者提供了多種適合于快速開發(fā)的移動端開源框架,但框架存在耦合性過高、各類推送煩瑣、云廣告干擾頻繁等缺陷,因此本系統(tǒng)采用Android studio開發(fā)環(huán)境,使用Java語言自行開發(fā)APP,同時采納機智云平臺所提供的SDK(軟件開發(fā)工具包)進行APP開發(fā)設計,APP開發(fā)流程如圖4所示。
APP首先完成GUI(圖形界面)框架的搭建,GUI創(chuàng)建采用由Android studio內(nèi)置的Base模板,引入騰訊推出的QMUI第三方庫可以進行界面美化,最終設計界面如圖5所示。
框架構建完成后,參考機智云官網(wǎng)提供的Android SDK集成指南通過Giz Wifi SDK類初始化SDK。具體方法是參考機智云官網(wǎng)提供的Android SDK集成指南,先對工程代碼進行移植,將SDK中jar包以及應用程序二進制接口文件導入安卓工程中,再在安卓工程目錄下對AndroidManifest.xml文件進行本地環(huán)境配置,配置參數(shù)說明如表2所示。由于Android 6.0新增了運行時權限動態(tài)檢測,GizWifiSDK在使用權限的時候需要先進行判斷,開發(fā)者還應在build.gradle中寫入權限申請的動態(tài)檢測代碼,最后完成程序編寫。
表1 數(shù)據(jù)點分析
圖4移動端APP開發(fā)流程
圖5設備控制頁面
2 系統(tǒng)測試
軟硬件開發(fā)完畢后進入聯(lián)調(diào)聯(lián)試階段。測試開始時,首先設備需要入網(wǎng),使設備進入配網(wǎng)模式,通過機智云提供的測試APP對設備進行配網(wǎng),配網(wǎng)成功后,在測試APP的設備列表中會出現(xiàn)新的設備,此時可以使用測試軟件來對硬件系統(tǒng)的數(shù)據(jù)接收與發(fā)送,以確保每個模塊都能成功接收到云指令。
在軟件測試部分中,可以使用開發(fā)者中心的虛擬設備收發(fā)數(shù)據(jù)來測試開發(fā)的APP是否能訪問云服務器,通過此方式調(diào)試還可以確定數(shù)據(jù)的準確性。最后,將設備、機智云、APP整合完畢,就能夠實現(xiàn)精確的數(shù)據(jù)上傳及下發(fā),從而實現(xiàn)智能家居的遠程控制功能。
表2 權限說明
3 結語
該嵌入式系統(tǒng)是智能家居系統(tǒng)的典型應用,采用了M2M算法模型(一種模仿人類思維方式與解決問題方法的全新算法設計模型),可實現(xiàn)自動采集數(shù)據(jù)并上傳到云端,打破時間與空間的束縛,真正做到遠程的操控,為家庭提供24 h全方位的保障。
|