国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于物聯(lián)網(wǎng)云平臺(tái)的空調(diào)源碼庫(kù)

2019-04-15 05:22張加書韓躍平張瑞珍
關(guān)鍵詞:一鍵模組遙控器

張加書, 韓躍平, 張瑞珍

(中北大學(xué) 信息與通信工程學(xué)院, 山西 太原 030051)

0 引 言

物聯(lián)網(wǎng)作為新一代信息技術(shù)的重要組成部分, 在信息化發(fā)展中起到了舉足輕重的作用[1]. “云+端”模式[2]到來之后, 基于物聯(lián)網(wǎng)云平臺(tái)的遠(yuǎn)程控制[3]、 語(yǔ)音控制[4]等一些智能化控制產(chǎn)品慢慢普及到人民的生活. 必須承認(rèn), 由于平臺(tái)的可擴(kuò)展性、 兼容性、 時(shí)效性以及開發(fā)周期的原因, 這些概念和產(chǎn)品并沒有打開最廣闊的智能家居市場(chǎng)[5].

本文利用智能通信模組(以下稱為智能模組)對(duì)接云平臺(tái)并且發(fā)射紅外波形信號(hào)到空調(diào)電控板, 移動(dòng)客戶端APP與智能模組綁定連接到云平臺(tái), 下發(fā)控制命令. 智能模組利用紅外發(fā)射接口, 將數(shù)據(jù)轉(zhuǎn)換成紅外波形信號(hào), 發(fā)射到空調(diào)電控板的紅外接收端口[6], 進(jìn)而用戶通過APP的UI界面[7]即可控制空調(diào)電控板. 本文提出了一種借助云端部署、 一鍵匹配開發(fā)控制不同品牌空調(diào)遙控器源碼庫(kù)的開發(fā)方法, 實(shí)現(xiàn)了品牌空調(diào)控制的兼容性, 通過精簡(jiǎn)內(nèi)存提高了匹配以及控制效率, 本文重點(diǎn)對(duì)空調(diào)源碼庫(kù)的開發(fā)做了深入的研究.

1 系統(tǒng)總體設(shè)計(jì)

1.1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

研究基于智能模組與云平臺(tái)(broadlink云)服務(wù)[8]相結(jié)合, 實(shí)現(xiàn)移動(dòng)客戶端一鍵學(xué)習(xí)匹配空調(diào)設(shè)備進(jìn)行遠(yuǎn)程控制、 兼容多品牌空調(diào)等功能. 智能模組硬件設(shè)備集成了WiFi模塊通信與紅外模塊通信的功能, 通過WiFi模塊與云平臺(tái)建立網(wǎng)絡(luò)連接. 云平臺(tái)核心業(yè)務(wù)面向家電產(chǎn)品實(shí)現(xiàn)了產(chǎn)品的創(chuàng)建、 標(biāo)準(zhǔn)功能參數(shù)屬性設(shè)置、 產(chǎn)品部署等功能. 云空調(diào)的實(shí)現(xiàn)不需要對(duì)傳統(tǒng)空調(diào)廠商產(chǎn)品進(jìn)行二次開發(fā), 智能云空調(diào)取代傳統(tǒng)的空調(diào)遙控器, 在保證產(chǎn)品智能化、 最優(yōu)化的情況下節(jié)約了開發(fā)成本. 如圖 1 所示為系統(tǒng)整體結(jié)構(gòu)框圖.

圖 1 系統(tǒng)整體結(jié)構(gòu)框圖Fig.1 System overall block diagram

1.2 系統(tǒng)軟件設(shè)計(jì)

移動(dòng)客戶端APP用戶賬號(hào)注冊(cè)登陸, APP設(shè)置為L(zhǎng)AN模式和WLAN模式[7]. 云平臺(tái)創(chuàng)建的產(chǎn)品列表提供了空調(diào)遙控器標(biāo)準(zhǔn)功能參數(shù)以及枚舉值, 如表 1 所示, 列表屬性針對(duì)本次開發(fā)設(shè)計(jì)可滿足用戶基本需求, 可根據(jù)用戶需求提供靈活性的自定義添加. 前端開發(fā)利用云平臺(tái)提供的不同功能參數(shù), 對(duì)其中的枚舉值進(jìn)行相對(duì)應(yīng)功能的UI界面開發(fā), UI開發(fā)界面如圖 2 所示.

移動(dòng)客戶端用戶可采用局域網(wǎng)WiFi、 廣域網(wǎng)WiFi兩種主要的聯(lián)網(wǎng)方式: 局域網(wǎng)下, 移動(dòng)客戶端APP下發(fā)控制指令到智能模組, 智能模組接受命令后對(duì)空調(diào)電控板發(fā)送控制指令, 同時(shí)APP把參數(shù)值上傳云平臺(tái); 廣域網(wǎng)下, APP發(fā)送的控制命令先改變?cè)破脚_(tái)的對(duì)應(yīng)參數(shù), 之后云平臺(tái)將參數(shù)值傳遞到本地設(shè)備. 局域網(wǎng)下移動(dòng)客戶端APP(client端)通過UDP協(xié)議[9]建立網(wǎng)絡(luò)套接字的方式實(shí)現(xiàn)與云平臺(tái)(server端)通信, 局域網(wǎng)通信方式如圖 3 所示; 廣域網(wǎng)下移動(dòng)客戶端APP通過建立一個(gè)線程向云平臺(tái)發(fā)送HTTP的GET/POST請(qǐng)求去查詢?cè)破脚_(tái)的功能參數(shù)變化以及下發(fā)控制命令.

表 1 空調(diào)功能參數(shù)列表及枚舉值Tab.1 List of air conditioning function parameters

圖 2 UI開發(fā)界面Fig.2 Development interface of UI

圖 3 局域網(wǎng)通信方式Fig.3 Communication mode under LAN

2 源碼庫(kù)開發(fā)

源碼庫(kù)的開發(fā)是整套產(chǎn)品的核心部分, 也是本文的研究重點(diǎn), 研究云空調(diào)的源碼庫(kù)開發(fā), 對(duì)云空調(diào)產(chǎn)品的品牌兼容性、 一鍵匹配、 控制高效性起到了不可或缺的作用.

2.1 源碼庫(kù)開發(fā)環(huán)境搭建

網(wǎng)上下載虛擬機(jī)VMware安裝包, 并安裝64 b ubuntu, 版本號(hào)16.04, 用于編譯調(diào)試開發(fā)的c語(yǔ)言文件. 配置虛擬機(jī)的網(wǎng)絡(luò)設(shè)置為橋接方式(NAT方式不要), 為了方便后期的云端調(diào)用操作配置靜態(tài)IP地址, 在ubuntu終端中輸入$sudo vi /etc/network/interfaces, 再打開的網(wǎng)絡(luò)配置文件輸入配置內(nèi)容設(shè)置靜態(tài)IP地址. 注意在橋接方式下, 虛擬機(jī)相當(dāng)于是局域網(wǎng)中一臺(tái)獨(dú)立的主機(jī), 因此這個(gè)靜態(tài)IP地址不能和局域網(wǎng)中別的主機(jī)沖突. 如果對(duì)網(wǎng)絡(luò)設(shè)置做了更改后無法連接網(wǎng)絡(luò), 可以嘗試重啟網(wǎng)絡(luò). 安裝samba服務(wù)器[10]進(jìn)行Windows和ubuntu平臺(tái)文件共享實(shí)時(shí)同步更改, 服務(wù)器重啟命令sudo /etc/init.d/samba restart. 安裝Sourceinsight進(jìn)行源程序的讀取和編輯. 安裝紅外遙控編碼分析儀PC端軟件IRReader以及紅外遙控編碼分析儀驅(qū)動(dòng)用于分析空調(diào)遙控器輸出的紅外波形.

2.2 源碼庫(kù)開發(fā)原理

選用通用型智能紅外遙控編碼分析儀分析遙控器波形, 提供了被測(cè)紅外遙控器的所有脈寬信息和波形[11]. 分析儀接入PC端打開上位機(jī)軟件, 界面能清晰穩(wěn)定地顯示信號(hào)完整波形, 這是很多示波器達(dá)不到的; 可測(cè)試脈沖寬度、 碼串長(zhǎng)度、 數(shù)據(jù)位數(shù)、 引導(dǎo)碼、 客戶碼、 數(shù)據(jù)碼等; 支持一鍵多碼的解碼; 4通道顯示波形, 方便波形對(duì)比, 每個(gè)通道支持兩種模式.

在開機(jī)狀態(tài)溫度、 模式、 風(fēng)速、 風(fēng)向一定的情況下, 在上位機(jī)界面采集顯示某品牌空調(diào)遙控器輸出的紅外波形如圖 4 所示.

圖 4 采集紅外波形圖Fig.4 Acquisition of infrared waveforms

通過溫度增減按鍵以及在上位機(jī)界面的紅外遙控編碼分析儀的數(shù)據(jù)波形顯示, 空調(diào)遙控器實(shí)際是給空調(diào)電控板紅外接收器發(fā)送一連串的紅外波形, 進(jìn)而實(shí)現(xiàn)控制空調(diào)功能的作用[12]. 分析紅外遙控編碼分析儀給出的數(shù)據(jù): 空調(diào)遙控器與電控板的通信數(shù)據(jù)格式為起始碼、 數(shù)據(jù)區(qū)、 結(jié)束碼; 其中起始碼和結(jié)束碼以比特為單位, 數(shù)據(jù)區(qū)以字節(jié)為單位; 波形由高到低證明是波形發(fā)射端; 數(shù)據(jù)區(qū)中的一段高低電平(1/0)的定義見圖 5; 波形上面顯示的數(shù)字代表的是電平的大小, 見圖 6. 由此可以觀察一款空調(diào)遙控器發(fā)射的某個(gè)功能參數(shù)下的數(shù)據(jù)區(qū)有幾個(gè)字節(jié), 根據(jù)波形分析對(duì)應(yīng)的數(shù)據(jù)值(小端模式)以及起始、 結(jié)束幾個(gè)bit位.

圖 5 高低電平(1/0)的定義Fig.5 Definition of high and low level

圖 6 電平大小Fig.6 Level size

將其他輔助功能關(guān)閉(APP里沒有添加這個(gè)輔助功能按鍵, 按照用戶需求可以靈活添加), 找出固定字節(jié)、 找出各功能按鍵對(duì)應(yīng)影響的字節(jié).

某些品牌遙控器某些功能的溫度遞增受影響的不止兩個(gè)字節(jié), 如圖 7 所示, 為某品牌遙控器字節(jié)控制溫度. 風(fēng)向本有上下30°, 60°, 90°掃風(fēng), 由于控制面板里面沒有添加可以改變風(fēng)向的按鍵, 故取一個(gè)常用的值拿來做固定值.

圖 7 字節(jié)控制溫度Fig.7 Byte control temperature

某些品牌遙控器的某些功能參數(shù)沒有開發(fā), 但是UI界面具有的功能則取有效的控制波形當(dāng)默認(rèn)值.

某些品牌遙控器, 紅外遙控編碼分析儀采集的波形數(shù)據(jù)可能有多個(gè)起始碼、 多個(gè)結(jié)束碼, 其按規(guī)律進(jìn)行輸出波形的編碼添加.

某些品牌遙控器輸出的波形按照大端模式輸出, 添加電平反轉(zhuǎn)函數(shù)輸出正確電平.

2.3 主要功能代碼

選用一款通用型三菱品牌空調(diào)遙控器進(jìn)行源碼庫(kù)的開發(fā), UI界面控制功能參數(shù)包括: 溫度遞增、 溫度遞減、 模式、 風(fēng)速、 風(fēng)向、 狀態(tài)6個(gè)功能按鍵(按用戶需求可以逐個(gè)添加), 其中模式分為自動(dòng)、 制熱、 制冷、 除濕、 送風(fēng)5個(gè)模式; 風(fēng)速分為自動(dòng)、 低、 中、 高4個(gè)等級(jí); 風(fēng)向包括固定風(fēng)向和自動(dòng)掃風(fēng); 狀態(tài)包括開機(jī)狀態(tài)、 關(guān)機(jī)狀態(tài). 采集UI界面包含的功能按鍵數(shù)據(jù), 邏輯開發(fā)寫入底層繼而實(shí)現(xiàn)控制功能.

列出底層源碼庫(kù)開發(fā)的一些主要代碼為: 一鍵匹配函數(shù)、 數(shù)據(jù)輸出轉(zhuǎn)換波形函數(shù)以及溫度獲取函數(shù).

2.3.1 一鍵匹配函數(shù)功能碼

int fujistu_type_check(irda_local_frame_t*frame)

{

irda_frame_pos_t frame_pos;

irda_parse_data_t data_stream1;

memset(&frame_pos, 0, sizeof(irda_frame_pos_t));

frame_pos.frame=frame;

//匹配起始碼字節(jié)

if(irda_parse_basic_logic(&frame_pos, &startup_code)<0) return-1;

//匹配數(shù)據(jù)區(qū)字節(jié)數(shù)以及第一個(gè)字節(jié)

irda_parse_data_frame(&frame_pos, &bit01, &data_stream1, DATA_STREAM1_BIT);

if(data_stream1.bit_count

//匹配結(jié)束碼字節(jié)

if(irda_parse_basic_logic(&frame_pos,&end_code)<0) return -1;

return 0;

}

2.3.2 數(shù)據(jù)輸出波形轉(zhuǎn)換函數(shù)

int irda_merge_basic_logic(irda_local_frame_t *frame, const irda_baisc_bit_t *basic_bit)

{

//添加一個(gè)電平到數(shù)據(jù)流 0: 低電平 1: 高電平

irda_add_level(basic_bit->level0, frame, 1);

if(basic_bit->level1 != 0)

irda_add_level(basic_bit->level1, frame, 0);

return 0;

}

2.3.3 溫度獲取邏輯函數(shù)

char temp_gain(int mod_flag,int temp_flag)

{

char temp=0;

switch(temp_flag){

case 17: tmp=(mod_flag?4 ) | 0x00; break;

case 18: tmp=(mod_flag?4 ) | 0x08; break;

case 19: tmp=(mod_flag?4 ) | 0x0c; break;

case 20: tmp=(mod_flag?4 ) | 0x04; break;

case 21: tmp=(mod_flag?4 ) | 0x06; break;

case 22: tmp=(mod_flag?4 ) | 0x0e; break;

case 23: tmp=(mod_flag?4 ) | 0x0a; break;

case 24: tmp=(mod_flag?4 ) | 0x02; break;

case 25: tmp=(mod_flag?4 ) | 0x03; break;

case 26: tmp=(mod_flag?4 ) | 0x0b; break;

case 27: tmp=(mod_flag?4 ) | 0x09; break;

case 28: tmp=(mod_flag?4 ) | 0x01; break;

case 29: tmp=(mod_flag?4 ) | 0x05; break;

case 30: tmp=(mod_flag?4 ) | 0x0d; break;

default: break;

}

return (tmp);

}

3 系統(tǒng)功能聯(lián)調(diào)

按照紅外遙控編碼分析儀輸出的數(shù)據(jù)波形、 云平臺(tái)提供的功能參數(shù)枚舉值以及尋找功能參數(shù)變化邏輯規(guī)律, 進(jìn)行函數(shù)的邏輯判斷編碼, 編譯開發(fā)c程序和腳本程序代碼. 其中在IRReader界面采集的電平有效誤差范圍根據(jù)智能模組硬件電路的識(shí)別精度經(jīng)實(shí)驗(yàn)取值在80~200之間.

一鍵匹配功能函數(shù)的實(shí)現(xiàn)包括對(duì)起始碼的匹配、 數(shù)據(jù)區(qū)的匹配以及結(jié)束碼的匹配, 為了提高匹配的效率以及準(zhǔn)確性, 多次進(jìn)行起始碼、 結(jié)束碼匹配, 數(shù)據(jù)區(qū)只匹配1~2個(gè)字節(jié)的實(shí)驗(yàn), 實(shí)驗(yàn)結(jié)果顯示能達(dá)到正常的匹配功能并且相對(duì)于全部數(shù)據(jù)區(qū)匹配提高了時(shí)效性, 進(jìn)而縮短了代碼段的內(nèi)存空間.
圖 8 為空調(diào)一鍵匹配成功結(jié)果. 代碼編譯完成后通過更改輸入功能參數(shù)在ubuntu環(huán)境下驗(yàn)證c編譯后的可執(zhí)行文件和腳本程序輸出的紅碼相等, 調(diào)試對(duì)比之后上傳到云端部署.

圖 8 空調(diào)一鍵匹配成功結(jié)果Fig.8 Successful result of air conditioning key match

智能家居控制APP用戶登錄成功之后, 長(zhǎng)按智能模組復(fù)位按鍵到配網(wǎng)狀態(tài), APP添加設(shè)備綁定, 通過一鍵學(xué)習(xí)匹配空調(diào)遙控器, 學(xué)習(xí)成功后彈出控制界面.

傳統(tǒng)空調(diào)遙控器和APP在其他功能參數(shù)保持一致的情況下, 同時(shí)改變溫度,
圖 9 是傳統(tǒng)遙控器和APP控制在溫度從20 ℃~21 ℃的溫度變化過程對(duì)比, 結(jié)果顯示APP和傳統(tǒng)遙控器紅外輸出的波形是一致的, 通過實(shí)驗(yàn)驗(yàn)證都能達(dá)到遠(yuǎn)程、 實(shí)時(shí)、 準(zhǔn)確控制的目的.

圖 9 空調(diào)遙控器和APP數(shù)據(jù)對(duì)比圖Fig.9 Contrast diagram of air conditioning remote controller and APP data

一款傳統(tǒng)空調(diào)遙控器對(duì)應(yīng)開發(fā)一款應(yīng)用c文件, 對(duì)應(yīng)生成一個(gè)可執(zhí)行文件, 同理收錄海量空調(diào)遙控器進(jìn)行紅外碼錄入, 系統(tǒng)開辟一定的內(nèi)存空間來存儲(chǔ)海量的空調(diào)紅碼及云端部署, 形成最終的源碼庫(kù).

4 結(jié) 論

基于物聯(lián)網(wǎng)云平臺(tái)的空調(diào)源碼庫(kù)開發(fā)以及后期測(cè)試驗(yàn)證分析結(jié)果表明:

1) 智能終端APP遠(yuǎn)程控制的可行性以及控制的準(zhǔn)確性和時(shí)效性, 實(shí)現(xiàn)了和傳統(tǒng)空調(diào)遙控器一樣的控制功能.

2) 海量收錄空調(diào)遙控器云端部署一鍵匹配形成了一套源碼庫(kù), 通過大量的實(shí)驗(yàn)證明了整套方案的時(shí)效性以及控制準(zhǔn)確性, 符合產(chǎn)品市場(chǎng)的要求以及客戶的需要, 最終能夠?qū)崿F(xiàn)移動(dòng)客戶端對(duì)不同品牌空調(diào)的實(shí)時(shí)遠(yuǎn)程操作控制.

猜你喜歡
一鍵模組遙控器
冷軋機(jī)一鍵式升降速軋制的實(shí)現(xiàn)
我是“糊涂蟲”
“一鍵報(bào)貧”助力脫貧攻堅(jiān)
時(shí)間遙控器
爸媽有個(gè)“遙控器”
光學(xué)薄膜技術(shù)及在背光模組中的應(yīng)用研究
行走的飛行遙控器
一鍵觀影,一鍵K歌 菱杰 TRS IW影院系列5.1音響套裝
高速公路表貼透鏡模組設(shè)計(jì)淺談
淺談石墨烯材料在LED路燈模組中的應(yīng)用及該模組的設(shè)計(jì)