標題: 基于機智云物聯(lián)網(wǎng)平臺的家電控制器 [打印本頁]

作者: gizwits    時間: 2020-6-11 11:13
標題: 基于機智云物聯(lián)網(wǎng)平臺的家電控制器
摘  要
萬物聯(lián)網(wǎng)成為了這個近幾年的熱門話題,在智能家居的流行的同時。對于家中一些老式的家用電器如空調(diào)、電風扇、電視機等也需要考慮這些電器的聯(lián)網(wǎng)的問題。本設(shè)計為一種基于esp8266芯片的智能遙控器。由接在芯片上具有學習功能的單獨的紅外模塊完成控制指令的發(fā)送。通過手機APP遠程控制來達到解決老式家用電器聯(lián)網(wǎng)問題的目的。該遙控器同時系統(tǒng)還搭載了DHT11溫濕度一體傳感器,可以進行實時的環(huán)境溫濕度采集得到環(huán)境溫濕度數(shù)據(jù),從而更好的協(xié)助用戶進行遠程的家電控制。整個系統(tǒng)采用SOC方案并于eclipse一體化環(huán)境下編寫控制固件,借助機智云物聯(lián)網(wǎng)平臺的服務(wù)器以及與之配套的服務(wù)來實現(xiàn)用戶的遠程遙控功能。

關(guān)鍵詞:物聯(lián)網(wǎng);智能遙控器;ESP8266;SOC;機智云


1緒論1.1本文研究背景和意義
隨著互聯(lián)網(wǎng)技術(shù)、通訊技術(shù)、芯片制造技術(shù)的以及國民經(jīng)濟的不斷發(fā)展。在當今這個信息時代,經(jīng)濟的發(fā)展推動科學技術(shù)的進步從而促進了社會信息化的進程。同時人民的生活水平不斷提到使得人們更加注重生活質(zhì)量,追求方便、舒適、實用、節(jié)能、智能的居家生活。因此智能家居就在需求的推動下得到了迅猛發(fā)展。

智能家居的主要部分為智能家電,智能家電種類繁多小到保溫杯、電飯煲、魚缸等,大到熱水器、電冰箱、空調(diào)等一些數(shù)不勝數(shù)、琳瑯滿目的電器都已經(jīng)逐步智能化進入物聯(lián)網(wǎng)時代。在物聯(lián)網(wǎng)技術(shù)的支持下,多數(shù)智能電器都能與移動端通過WIFI、藍牙等方式進行連接取得相應(yīng)數(shù)據(jù),在連接的情況下移動端可以隨時隨地監(jiān)控電器運行同時也可以在移動端控制設(shè)備運行狀態(tài)。

但凡家用電器,向來都離不開控制系統(tǒng),有的如電飯鍋——集成在家電上與家用電器成為一體。有的如壁掛式空調(diào)——單獨配備了遙控器,具有單獨的控制模塊。有的兩者都有之如落地電風扇。對于老式家電他們的控制方式單一,對于10多年前當時高級的家電如空調(diào)、電視、冰箱等。很多在沒有完全報廢的情況下依然工作在我們的家庭當中,甚至還會出現(xiàn)家電使用時間比該家庭中上大學的兒女的年齡還大的情況。雖然所有的家電設(shè)施都趨于智能化,但是在這些在短期內(nèi)無需更換的家用電器我們也應(yīng)當考慮他們?nèi)绾沃悄芑?/font>

2.1開發(fā)板介紹
本次設(shè)計我選用的是機智云(GizWits)推出的物聯(lián)網(wǎng)智能硬件開發(fā)套件gokit3(s)開發(fā)套件。該套件能幫助傳統(tǒng)硬件快速接入互聯(lián)網(wǎng)。完成入網(wǎng)之后,數(shù)據(jù)可以在產(chǎn)品與云端、制造商與用戶之間互聯(lián)互通,實現(xiàn)智能互聯(lián)。他具有兩種常用開發(fā)方案一種是SOC方案另一種是MCU方案。
SOC方案是一種整體式的設(shè)計方案。它將 WiFi 模組與外設(shè)驅(qū)動模塊直接連接起來,直接在 WiFi芯片上進行開發(fā),省去了一層通訊過程。同時這種開發(fā)方案具有開發(fā)難度低、生產(chǎn)成本低的特點,但是受限于 WiFi 芯片的片上資源,應(yīng)用范圍有限。

MCU方案是一種是分體式的設(shè)計方案。WiFi芯片模組只負責信息的接收與發(fā)送相當于主芯片上的外設(shè),這種方式是通過串口MCU進行通信,因此需要在 MCU 上進行協(xié)議解析與外設(shè)的開發(fā)。這種方案的優(yōu)點是不受限于 WiFi芯片的片上資源限制可擴展度高。但是是開發(fā)難度大、開發(fā)周期長、生產(chǎn)成本高。
2.1 MCU方案


圖2.2 SOC方案

此開發(fā)板在使用不同的工作方案時需要將搭載的ESP8266芯片插入對應(yīng)的插口中才能正常工作。


圖2.3 不同工作方式對應(yīng)的插槽位置

2.3 ESP8266介紹
上海樂鑫公司生產(chǎn)的 ESP8266是⼀個完整且⾃成體系的Wi-Fi⽹絡(luò)解決⽅案,能夠獨⽴運⾏也可以作為從機搭載于其他主機MCU運⾏。ESP8266在搭載應(yīng)⽤并作為設(shè)備中唯⼀的應(yīng)⽤處理器時,能夠直接從外接 Flash 中啟動。內(nèi)置的⾼速緩沖存儲器有利于提⾼系統(tǒng)性能,并減少內(nèi)存需求。為了使所占的 PCB 空間達到最低讓ESP8266芯片擁有極少的外部電路,ESP8266⾼度⽚內(nèi)集成,包括天線開關(guān),功率放⼤器,低噪聲接收放⼤器,射頻 balun,濾波器和電源管理模塊。

整個配置ESP8266的系統(tǒng)表現(xiàn)出來的特性有:
1、節(jié)能在睡眠/喚醒模式之間的快速切換
2、配合低功率操作的⾃適應(yīng)⽆線電偏置
3、前端信號的處理功能
4、故障排除
5、消除蜂窩/藍⽛/DDR/LVDS/LCD ⼲擾的⽆線電系統(tǒng)共存特性
ESP8266WiFi芯片支持Soft AP、AirLink、和AP三種模式:

Soft AP模式:設(shè)備本身成為一個WiFi熱點,手機可以與模塊直接通訊。AirLink模式:手機APP端發(fā)送WiFi相關(guān)信息UDP廣播包或者組播包。AP模式:提供無線接入服務(wù),允許其它無線設(shè)備接入,提供數(shù)據(jù)訪問。
圖2.4 ESP8266WiFi模組內(nèi)部結(jié)構(gòu)圖


ESP8266WiFi模組功能強大外形小巧,有一個用于下載固件的Uart串口,還有一個控制工作和下載模式的撥碼開關(guān),以及一個用于復位的復位按鈕和一個正常工作時為藍色的指示燈。
圖2.5 WiFi模組實物圖

2.6 WiFi模組原理圖

2.3紅外模塊介紹2.3.1紅外遙控器工作原理
紅外線的特點:
紅外線是介于可見光與微波之間的一種電磁波,其波長為 (0.76μm到1000μm) 波譜范圍很寬。紅外線分為近紅外、中紅外和遠紅外三個區(qū),兼具可見光和微波的某些特性。實際上,凡是溫度高于幾絕對零度(即﹣273℃)的物體, 均會片刻不停地發(fā)出紅外線, 只是溫度越高,其發(fā)出的紅外線越強[14]。
紅外發(fā)射原理:
首先需要調(diào)制器將我們要發(fā)送的信號調(diào)制到紅外信號中,再由紅外發(fā)射器發(fā)射。這些發(fā)射器將會把紅外信號以特定的頻率發(fā)送,我們目測到的就是以紅色的光線閃爍。最后紅外接收器可以捕捉這些有紅外線傳遞的信息同時可以過濾掉其中的噪聲最后將其還原為二進制編碼。同時發(fā)射電路可以控制其發(fā)出的信號盡可能強以使發(fā)射的距離更遠,更甚之,它可以經(jīng)受抖動。在一般的消費類電子產(chǎn)品中,這個頻率的范圍為30KHz到60KHz,通常采用的是38KHz的載波發(fā)射頻率[15]。
紅外信號編碼協(xié)議:
紅外遙控器信號協(xié)議有很多種,平時用于生產(chǎn)生活中的有有Sony SIRC 協(xié)議、Sharp 協(xié)議、NEC 協(xié)議、ITT 協(xié)議等。本次設(shè)計選用NEC協(xié)議。因為NEC協(xié)議可以直接通過解碼器將遙控器中發(fā)出的紅外信號變成兩個字節(jié)額數(shù)據(jù)。而非NEC協(xié)議的編碼獲取以及使用都相對NEC編碼較為麻煩同時家用電器的遙控器多為NEC編碼,因此只要選用有學習功能的紅外模塊就可以完成絕大部分家電的控制。

2.3.2 YS-IRTM 發(fā)射模塊
該模塊由四個部分組成分別為紅外發(fā)射頭、紅外接收頭、紅外擴展接口、UART單片機串口通訊接口,如下圖所示。

圖2.7 YS-IRTM模組實物圖
1、紅外發(fā)射頭:用于發(fā)射紅外信號。
2、紅外接收頭:用于接收 NEC 紅外信號并且進行解碼。
3、紅外頭擴展:該接口可以用于連接多個紅外發(fā)射頭,同時使得模塊可以安放至不同方位以便達到控制目的控制。
4、UART 單片機串口通信接口:UART接口為單片機串口,該串口是單片機與其他設(shè)備傳遞信息的橋梁,其默認的波特率為9600bps,接口定義如下圖所示。
圖2.8 YS-IRTM模組UART接口定義

發(fā)射指令說明:

YS-IRTM紅外發(fā)射模組發(fā)射指令一共有五位一個地址位一個操作位三個數(shù)據(jù)位,排列方式如下圖所示。
表2.1 YS-IRTM模組發(fā)射指令排列方式
地址位:A1為默認地址(可改)。FA 為通用地址(不可改)。
操作位:該位的數(shù)據(jù)用于代表當前的工作狀態(tài)。
    (1)F1 紅外發(fā)射狀態(tài)
(2)F2 進入修改串口通信地址狀態(tài)
(3)F3 進入修改波特率

數(shù)據(jù)位:該數(shù)據(jù)位為對應(yīng)不同狀態(tài)的數(shù)據(jù)內(nèi)容,對應(yīng)內(nèi)容如下圖所示。
表2.2 YS-IRTM模組發(fā)射指令數(shù)據(jù)位對應(yīng)內(nèi)容
解碼信息輸出:
首先將紅外模塊與TTL轉(zhuǎn)串口相連接,再將TTL轉(zhuǎn)串口與電腦相連接,使用串口助手設(shè)置好工作模式,即可進行解碼操作。圖2.11展示的是電腦串口助手的設(shè)置方式,圖2.12展示的是紅外模塊如何與TTL相連接。

NEC 紅外信號編碼由一個命令碼一個命令碼的反碼和一個分為高地8位的16位用戶碼構(gòu)成,以“用戶碼1+用戶碼2+命令碼+命令碼反碼”方式排列。解碼操作只需要將遙控器對準紅外接收頭,按下要需要解碼的按鍵NEC格式紅外遙控器的按鍵,就可以通過串口調(diào)試助手查看到解碼,串口結(jié)果輸出的二進制碼的格式為“用戶碼1+用戶碼2+命令碼”。在發(fā)送編碼時,發(fā)送16位用戶碼以及命令碼即可。
圖2.9 電腦串口助手設(shè)置方式

圖2.10 YS-IRTM模組與TTL轉(zhuǎn)串口連接方式


圖2.11 YS-IRTM模組原理圖

2.4 DHT11溫濕度模塊2.4.1 DHT11溫濕度模塊簡介
DHT11模塊集成在GoKit3開發(fā)板上,它是一款溫濕度復合傳感器含有已校準數(shù)字信號輸出。為了能夠同時采集到溫度信息和濕度信息。在器件內(nèi)部,有電阻式原件用于測濕,有NTC 用來測溫,這些元件內(nèi)部連接了一個8位單片機,正是有了這些基礎(chǔ),該器件才展現(xiàn)出了卓越的響應(yīng)速度、抗干擾能力以及極高的性價比,在溫濕度檢測領(lǐng)域被廣泛采用[16]。同時響應(yīng)速度快響應(yīng)時間為1/e(63%)、精度高測量的濕度的精度為±5%RH,測量的溫度的精度為±2%RH,溫度測量范圍為0~50℃,溫度分辨率為1℃(8位),濕度測量范圍為20~90%RH,濕度分辨率為1%RH(8位)。不僅如此而且控制便捷、體積小、功耗低可靠性極高,在正常運行時穩(wěn)定性強,因此可以適應(yīng)惡劣的工作環(huán)境。DHT11溫濕度傳感器采用4針單排引腳封裝它與控制芯片的連接電路簡單,只需要通過一個I/O口即可以單總線方式進行通訊。采集的數(shù)據(jù)由DHT11的DOUT引腳傳輸。下圖為DHT11的連接圖

圖2.12 DHT11電路原理圖

3軟件系統(tǒng)設(shè)計3.1機智云系統(tǒng)框架
由于本設(shè)計是基于機智云物聯(lián)網(wǎng)平臺提供的資源來設(shè)計開發(fā)的,因此本設(shè)計整體設(shè)計框架以及流程都是基于機智云整個框架來進行的。本系統(tǒng)的運行需要確保無線網(wǎng)絡(luò)的通暢,硬件設(shè)備通過WIFI模塊接入網(wǎng)絡(luò),在局域網(wǎng)內(nèi),手機 App 和WIFI可以直接進行通信,而在廣域網(wǎng)內(nèi),兩者之間的通信就需要借助云平臺[17]?偟膩碚f分為四大塊以及兩個循環(huán)由圖3.1所示。
四大塊:硬件設(shè)備(產(chǎn)品)、手機控制軟件(APP)、局域網(wǎng)(路由器)、機智云服務(wù)器(云端)。
兩個循環(huán):
小循環(huán):由智能設(shè)備產(chǎn)品與手機或不同智能設(shè)備之間,通過路由器實現(xiàn)一個局域網(wǎng)內(nèi)的通信(控制或者查看設(shè)備數(shù)據(jù))
大循環(huán):由智能設(shè)備產(chǎn)品通過路由器接入互聯(lián)網(wǎng)服務(wù)器,再通過手機端訪問指定的服務(wù)器從而間接的與智能設(shè)備通訊(發(fā)送控制指令或獲取設(shè)備數(shù)據(jù))
圖3.1 機智云平臺系統(tǒng)框架原理圖

3.2機智云平臺的優(yōu)勢
目前,國內(nèi)有很多如阿里云、百度云等優(yōu)秀的云平臺,而本設(shè)計選擇使用機智云物聯(lián)網(wǎng)平臺是因為他們是國內(nèi)率先打造智能硬件自助開發(fā)以及云服務(wù)的平臺。早在2010年他們公司就推出了測試版機智云物聯(lián)網(wǎng)的云服務(wù),經(jīng)過10年的市場磨煉肯定有他們獨到之處,同時也在物流網(wǎng)云服務(wù)領(lǐng)域有新的發(fā)展。最重要的是機智云平臺具有國際化的特點能全球提供云服務(wù)而且總體延遲較低。

3.3機智云接入流程
機智云平臺接入只需要六個步驟分別是:注冊開發(fā)者、創(chuàng)建產(chǎn)品、軟件件開發(fā)、產(chǎn)品調(diào)試、申請發(fā)布、生產(chǎn)產(chǎn)品這六個步驟。

3.3.1注冊開發(fā)者
在使用機智云平臺服務(wù)前,需要先注冊一個機智云開發(fā)者賬號。機智云開發(fā)者帳號分“個人帳號”與“企業(yè)帳號”,如下圖所示,如果是企業(yè)用戶,相對于個人用戶擁有更多企業(yè)服務(wù)需求。

圖3.2 機智云平臺為開發(fā)者提供的服務(wù)

3.3.2創(chuàng)建產(chǎn)品
在機智云官方網(wǎng)站的開發(fā)者中心點擊“創(chuàng)建新產(chǎn)品”后輸入產(chǎn)品名稱以及選擇對應(yīng)設(shè)備接入方案即可完成“新產(chǎn)品”的創(chuàng)建。本設(shè)計的名稱為“遙控器”該名稱對應(yīng)帶手機APP上顯示的名稱同時選擇了“WiFi\移動網(wǎng)絡(luò)方案”,如下圖所示。連網(wǎng)模塊包括Wi-Fi、GPRS等主流連網(wǎng)方式,同時機智云平臺還支持BLE、GSM、CDMA、Zigbee、LoRa等聯(lián)網(wǎng)方案接入。


圖3.3 機智云平臺創(chuàng)建產(chǎn)品界面

創(chuàng)建的產(chǎn)后品需要定義產(chǎn)品的數(shù)據(jù)點,機智云平臺的數(shù)據(jù)點指的是所創(chuàng)建產(chǎn)品應(yīng)有的功能的抽象體現(xiàn),通過不同的數(shù)據(jù)類型來表達各種抽象的功能。因此明確產(chǎn)品功能是所創(chuàng)建產(chǎn)品智能化的第一步。通過在機智云平臺創(chuàng)建對應(yīng)的數(shù)據(jù)點來描述硬件要實現(xiàn)的功能,會自動將對應(yīng)的數(shù)據(jù)點生成用于嵌入式開發(fā)的MCU方案或者SOC方案的協(xié)議。

數(shù)據(jù)點的基本內(nèi)容可分為顯示名稱、標識名稱、讀寫類型、數(shù)據(jù)類型以及備注。具體含義如表3.1所示:

表3.1 機智云平臺數(shù)據(jù)點含義
表3.2 本設(shè)計定義的數(shù)據(jù)點

3.3.3軟件開發(fā)
創(chuàng)建好數(shù)據(jù)點之后即可從開發(fā)者中心下載機智云平臺自動生成的通用移植代碼,移植代碼分為SOC、MCU兩種通用代碼,本設(shè)計選擇的是SOC方案因此下載SOC通用代碼即可。通過編譯器對下載好的通用代碼進行二次開發(fā)然后編譯生成固件。最后只需在使用的智能硬件中燒寫入機智云連接協(xié)議GAgent的連網(wǎng)模塊的固件,即可通過機智云平臺實現(xiàn)設(shè)備連網(wǎng)及智能化。

開發(fā)環(huán)境選擇:
因為ESP8266 SKD 的開發(fā)環(huán)境有很多,官方的開發(fā)環(huán)境配置比較復雜需要用到虛擬機,因此本設(shè)計選擇安信可的 AiThinker_IDE 。AiThinker_IDE它不需要搭建 linux 和虛擬機,使用方便,在解壓后可以直接在 windows 環(huán)境下使用。安信可一體化開發(fā)環(huán)境集成了eclipse等相關(guān)的開發(fā)插件,它不僅支持 ESP8266 NONOS 和 FreeRTOS 環(huán)境開發(fā)同時還支持 ESP31B/ESP32 FreeRTOS 環(huán)境開發(fā)。

代碼二次開發(fā):
對于自動生成的代碼已經(jīng)根據(jù)用戶定義的產(chǎn)品數(shù)據(jù)點的信息,并針對 MCU、SOC兩種方案生成了對應(yīng)的機智云串口協(xié)議層代碼,開發(fā)者只需要調(diào)用相應(yīng)的 API 接口或添加相應(yīng)的邏輯處理即可。代碼框架如下圖所示。
圖3.4 機智云移植代碼框架

再完成了傳感器的驅(qū)動開發(fā)后即可進行上下行處理。由于機智云官方有相關(guān)驅(qū)動只需要將.c文件放入app文件夾的driver文件夾中將.h文件放入app文件夾中 include文件中的driver下。

配網(wǎng)處理:配網(wǎng)處理部分包括設(shè)備恢復出廠操作以及配置入網(wǎng),ESP8266WiFi芯片具有三種WiFi配置入的方式(前文硬件部分已做介紹),同時為了方便觀察,配置入網(wǎng)操作的同時點亮RGB燈作為指示。官方代碼都是以短按key2為Soft AP模式,RGB燈為紅色,長按key2為Air Link模式,RGB燈為綠色。因此本設(shè)計也沿用官方的習慣。程序處理入口在user_main.c文件中。具體關(guān)鍵程序附錄配網(wǎng)處理。

上行處理:上行處理是為了完成傳感器的數(shù)據(jù)的采集,包括紅外遙控模塊的數(shù)據(jù)上報和溫濕度傳感器的數(shù)據(jù)上報然后在 user 目錄下main.c 文件中的 userHandle()函數(shù)中實現(xiàn)傳感器數(shù)據(jù)采集,用戶只需并將采集到的數(shù)值賦值給對應(yīng)用戶區(qū)的設(shè)備狀態(tài)結(jié)構(gòu)體。代碼見附錄上行處理。
下行處理 :下行處理是設(shè)置紅外模塊控制指令NEC編碼對應(yīng)的二進制代碼,因此只需要對Gizwits目錄下的gizwits_product.c文件中,gizwitsEventProcess()函數(shù)稍作修改即可。此處代碼的實現(xiàn)詳見附錄中下行處理代碼。

Makefile文件修改:如果不修改主目錄下的Makefile文件則無法成功編譯,具體修改方式見附錄。
固件燒寫:

在二次開發(fā)完成后對代碼進行編譯,編譯成功后即生成了相應(yīng)的固件,只需要按照規(guī)定的格式燒寫固件至智能硬件即可。本設(shè)計固件燒寫軟件使用的是ESPFlashDownloadTool。燒錄的固件以及其對應(yīng)地址分別為:
  esp_init_data_default.bin            0x3fc000
blank.bin                          0x3fe000
  boot_v1.6.bin                      0x00000
  user1.4096.new.6.bin               0x01000
燒錄軟件按照的串口碼率115200同時在對部分選項進行如下設(shè)置: CrystalFreq=26M  
SPI_SPEED=40MHz
SPI_MODE=QIO
FLASH_SIZE=32Mbit-C1,
其余部分默認設(shè)置即可,在硬件進入uart燒錄模式后,點擊start下載即可。
詳細設(shè)置方式如下圖所示。
圖3.5 固件燒錄軟件設(shè)置

3.4產(chǎn)品調(diào)試
測試服務(wù)器為開發(fā)者提供了完整的測試環(huán)境以及部分開放功能,調(diào)試產(chǎn)品過程中可以通過機智云物聯(lián)網(wǎng)平臺的虛擬設(shè)備來進行調(diào)試與功能驗證。
虛擬設(shè)備的應(yīng)用極大的降低了研發(fā)成本同時也縮短了研發(fā)周期。

在手機下載相應(yīng)的測試APP后通過二維碼綁定虛擬設(shè)備,從而驗證之前的設(shè)計以及運行時候正常,同時可以在手機APP上進行操控來驗證設(shè)備的可行性。機智云物聯(lián)網(wǎng)平臺的服務(wù)器同時會記錄下操作日志以供對設(shè)備的穩(wěn)定性安全性進行評估。下圖展示了機智云的虛擬設(shè)備調(diào)試界面以及手機APP控制界面。


圖3.6 設(shè)備調(diào)試3.5申請發(fā)布與正式量產(chǎn)當開發(fā)者的設(shè)備完成全部開發(fā)后需要進行產(chǎn)品發(fā)布,發(fā)布的產(chǎn)品將部署在機智云正式生產(chǎn)環(huán)境服務(wù)器上,同時機智云可以為開發(fā)者提供獨立的云端的運行環(huán)境,以此來確保開發(fā)者的設(shè)備可以24小時全天候的運轉(zhuǎn),以此來保證客戶的需求。如果產(chǎn)品正式發(fā)布,開發(fā)者還能得到更由機智云提供的增值服務(wù)。當產(chǎn)品發(fā)布,廠家可以與機智云簽署《GDCS協(xié)議》即可將正式量產(chǎn)的產(chǎn)品接入機智云物聯(lián)網(wǎng)云平臺,同時量產(chǎn)的產(chǎn)品會有由機智云提供的技術(shù)人員進行24小時全天候的監(jiān)控,確保產(chǎn)品安全、穩(wěn)定的運行。

3.6硬件配置入網(wǎng)為將設(shè)備連接上路由器按照機智云官方建議采用AirLink模式配置入網(wǎng)。首先將硬件上電并長按GOKIT3開發(fā)板上的key2按鍵直至RGB燈顏色為綠色常亮即進入AirLink模式,打開手機對應(yīng)APP,選擇路由器熱點名稱并輸入對應(yīng)WiFi密碼。此時手機會隨機向路由器和設(shè)備發(fā)送包含WiFi密碼的數(shù)據(jù)包,直至設(shè)備收到數(shù)據(jù)并接入路由器。
入網(wǎng)步驟如圖3.8所示


圖3.7 配置入網(wǎng)3.7手機APP控制硬件組運行結(jié)果在配網(wǎng)成功后即可通過手機APP來遠程進行控制。溫濕度顯示如下圖所示:

圖3.8 溫濕度顯示

四種溫度控制器模式分別為:開關(guān)、溫度增、溫度減、暖腳模式,如下四圖所示。
圖3.9 開關(guān)

圖3.10 溫度增

圖3.11 溫度減

3.12 暖腳模式

4結(jié)論與展望4.1設(shè)計總結(jié)
智能家居經(jīng)過近經(jīng)過多年的發(fā)展相比較曾經(jīng)只是概念性的實驗室產(chǎn)物已經(jīng)逐步走進了我們的生活,走進了我們的家庭。在生活的各處都能看見智能家居的身影。隨著互聯(lián)網(wǎng)的發(fā)展,智能家居在網(wǎng)絡(luò)的幫助下更是如虎添翼。將曾經(jīng)的不可能逐步變成可能,在智能家居的幫助下我們的生活變得更加便利、智能、人性化。本設(shè)計的設(shè)計初衷就是為了幫助曾經(jīng)老式的具有紅外遙控功能的家用電器也能進入物聯(lián)網(wǎng)時代,將具有紅外控制系統(tǒng)的智能硬件通過接入機智云平臺的云端并配合智能手機的控制APP來實現(xiàn)遠程控制家電的功能。

本設(shè)計的總結(jié)如下:
1、使用SOC模式以ESP8266芯片為主控芯片,在機智云平臺下設(shè)計了遠程紅外遙控系統(tǒng)。
2、采用DHT11溫濕度一體傳感器,可以將采集到的信息實時上傳至機智云云端
3、采用具有解碼功能NEC紅外控制芯片,可以實現(xiàn)遠程控制使用NEC編碼的家用電器

4.2設(shè)計展望
由于個人能力有限,在使用ESP8266為主控芯片的前提下只控制了兩個額外模塊一個是NEC紅外控制模塊和DHT11溫濕度模塊。因此本設(shè)計還有很多值得改進的部分以及升級的空間。
1、設(shè)備的控制紅外信號需要增加一個檢驗?zāi)K判斷由智能控制系統(tǒng)發(fā)出的紅外信號是否被家電接收。
2、本設(shè)計只有溫度、濕度這兩個環(huán)境參考指標,可以考慮增加如PM2.5控制質(zhì)量監(jiān)控模等其他環(huán)境指標監(jiān)控的模塊。



附錄

1.配置Makefile文件:
BOOT?=new
APP?=1
SPI_SPEED?=40
SPI_MODE?=QIO
SPI_SIZE_MAP?=6
2.配置處理代碼:
LOCAL void ICACHE_FLASH_ATTR key2ShortPress(void)
{
   GIZWITS_LOG("#### key2 short press, softap mode \n");

   rgbControl(250, 0, 0);//Red LED on

   gizwitsSetMode(WIFI_SOFTAP_MODE);
}

LOCAL void ICACHE_FLASH_ATTR key2LongPress(void)
{
   GIZWITS_LOG("#### key2 long press,airlink mode\n");
   
   rgbControl(0, 250, 0);//green LED on

   gizwitsSetMode(WIFI_AIRLINK_MODE);
}
3.上行處理代碼:
void ICACHE_FLASH_ATTR userHandle(void)
{
    uint8_t curTemperature = 0;
    uint8_t curHumidity = 0;
    uint8_t ret = 0;
    static uint8_t thCtime = 0;
       thCtime++;
       if(TH_TIMEOUT < thCtime)
    {
       thCtime = 0;
       ret = dh11Read(&curTemperature, &curHumidity);
       if(0 == ret)
       {
         currentDataPoint.valuetemperature= curTemperature;
         currentDataPoint.valuehumidity = curHumidity;
        }
       else
       {
           os_printf("@@@@dh11Read error ! \n");
       }
   }
4.下行處理代碼:
int8_t ICACHE_FLASH_ATTR gizwitsEventProcess(eventInfo_t *info, uint8_t *data, uint32_t len)
{
   uint8_t command0[]={0XA1,0XF1,0X22,0XDD,0X0C};  //開關(guān)鍵
   uint8_t command1[]={0XA1,0XF1,0X22,0XDD,0X07};  //溫度加
   uint8_t command2[]={0XA1,0XF1,0X22,0XDD,0X0F};  //溫度減
   uint8_t command3[]={0XA1,0XF1,0X22,0XDD,0X16};  //暖腳模式

   uint8_t i = 0;
    dataPoint_t * dataPointPtr = (dataPoint_t *)data;
    moduleStatusInfo_t * wifiData = (moduleStatusInfo_t *)data;

    if((NULL == info) || (NULL == data))
    {
       GIZWITS_LOG("!!!gizwitsEventProcess Error \n");
       return -1;
    }

    for(i = 0; i < info->num; i++)
    {
       switch(info->event)
       {
        case EVENT_temp_control:
           currentDataPoint.valuetemp_control = dataPointPtr->valuetemp_control;
           GIZWITS_LOG("Evt:EVENT_temp_control %d\n", currentDataPoint.valuetemp_control);
           switch(currentDataPoint.valuetemp_control)
           {
           case temp_control_VALUE0:
                //user handle
             uart0_sendIFR(command0);
                break;
           case temp_control_VALUE1:
                //user handle
             uart0_sendIFR(command1);
                break;
           case temp_control_VALUE2:
                //user handle
             uart0_sendIFR(command2);
                break;
           case temp_control_VALUE3:
                //user handle
             uart0_sendIFR(command3);
                break;
           default:
                break;
           }
           break;
       case WIFI_SOFTAP:
           break;
       case WIFI_AIRLINK:
           break;
       case WIFI_STATION:
           break;
       case WIFI_CON_ROUTER:
           GIZWITS_LOG("@@@@connected router\n");
           break;
       case WIFI_DISCON_ROUTER:
           GIZWITS_LOG("@@@@disconnected router\n");
           break;
       case WIFI_CON_M2M:
           GIZWITS_LOG("@@@@connected m2m\n");
         setConnectM2MStatus(0x01);
           break;
       case WIFI_DISCON_M2M:
           GIZWITS_LOG("@@@@disconnected m2m\n");
         setConnectM2MStatus(0x00);
           break;
       case WIFI_RSSI:
           GIZWITS_LOG("@@@@RSSI %d\n",wifiData->rssi);
           break;
       case TRANSPARENT_DATA:
           GIZWITS_LOG("TRANSPARENT_DATA\n");
           //user handle, Fetch data from [data] , size is [len]
           break;
       case MODULE_INFO:
           GIZWITS_LOG("MODULEINFO ...\n");
           break;
           
       default:
           break;
       }
    }
   system_os_post(USER_TASK_PRIO_2, SIG_UPGRADE_DATA, 0);
   
    return 0;

}







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1