本發(fā)明涉及智能家居控制技術(shù)領(lǐng)域,尤其涉及一種智能家居的遠程控制方法及系統(tǒng)。
背景技術(shù):
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,物聯(lián)網(wǎng)設(shè)備呈爆炸性增長,各種設(shè)備直接聯(lián)網(wǎng)是一種趨勢,但是由于互聯(lián)網(wǎng)協(xié)議的第四版(internetprotocol,簡稱ipv4)技術(shù)的限制和網(wǎng)絡(luò)環(huán)境的復(fù)雜性,使得各種設(shè)備的通信必須適應(yīng)比較差的網(wǎng)絡(luò)環(huán)境,包括數(shù)據(jù)的實時傳輸以及設(shè)備的實時控制。
而目前市面上智能家居控制系統(tǒng)所采用的通信方式多種多樣,如有線控制方式,或采用藍牙、zigbee或者wifi組成局域網(wǎng)對設(shè)備進行無線控制的方式,但是,眾所周知,有線控制方式容易受到一定的局限性,而上述無線控制方式其控制范圍也受到一定的局限,從而不能進行遠程控制。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種智能家居的遠程控制方法及系統(tǒng),用以解決現(xiàn)有技術(shù)中智能家居控制系統(tǒng)不能進行遠程控制的問題。
本發(fā)明的第一個方面是提供一種智能家居的遠程控制系統(tǒng),包括各智能家居硬件設(shè)備、遠程控制設(shè)備、wifi模塊和mqtt服務(wù)器,其中,各智能家居硬件設(shè)備和遠程控制設(shè)備通過wifi模塊接入互聯(lián)網(wǎng),各智能家居硬件設(shè)備和遠程控制設(shè)備分別與mqtt服務(wù)器連接,以使各智能家居硬件設(shè)備和遠程控制設(shè)備之間通過mqtt方式進行通信。
進一步的,還包括mysql模塊和restapi模塊,其中,mysql模塊與mqtt服務(wù)器連接,restapi模塊分別與mysql模塊和遠程控制設(shè)備連接,mysql模塊用于存儲用戶基本信息和用戶所擁有的設(shè)備信息,restapi模塊用于與遠程控制設(shè)備進行通信。
進一步的,mqtt服務(wù)器包括依次連接的mqtt主模塊和mqtt用戶認證模塊。
進一步的,wifi模塊采用esp8266。
進一步的,遠程控制設(shè)備包括手機、平板電腦或電腦。
本發(fā)明的另一個方面是提供一種智能家居的遠程控制方法,包括:
將各智能家居硬件設(shè)備和遠程控制設(shè)備通過wifi模塊接入互聯(lián)網(wǎng);
各智能家居硬件設(shè)備和遠程控制設(shè)備之間通過mqtt方式進行通信。
采用上述本發(fā)明技術(shù)方案的有益效果是:通過wifi模塊將各設(shè)備接入互聯(lián)網(wǎng),從而使得各設(shè)備可以進行遠程控制,并將各設(shè)備連接到mqtt服務(wù)器,使得各設(shè)備之間傳輸?shù)臄?shù)據(jù)包小,通信時間更短。
附圖說明
圖1為本發(fā)明智能家居的遠程控制系統(tǒng)的結(jié)構(gòu)示意圖;
圖2為本發(fā)明智能家居的遠程控制方法流程圖;
圖3為本發(fā)明控制方法的流程圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。
本發(fā)明公開了一種智能家居的遠程控制系統(tǒng),如圖1所示,包括各智 能家居硬件設(shè)備(包括硬件設(shè)備10a、10b、……、10n)、遠程控制設(shè)備(包括遠程控制設(shè)備11a、11b、……、11n)、wifi模塊12和消息隊列遙測傳輸(messagequeuingtelemetrytransport,簡稱mqtt)服務(wù)器13,其中,各智能家居硬件設(shè)備(包括硬件設(shè)備10a、10b、……、10n)和遠程控制設(shè)備(包括遠程控制設(shè)備11a、11b、……、11n)通過wifi模塊12接入互聯(lián)網(wǎng),各智能家居硬件設(shè)備和遠程控制設(shè)備分別與mqtt服務(wù)器13連接,以使各智能家居硬件設(shè)備和遠程控制設(shè)備之間可以通過mqtt方式進行通信。
在本發(fā)明實施例中,mqtt服務(wù)器13包括依次連接的mqtt主模塊131和mqtt用戶認證模塊132。另外,該智能家居的遠程控制系統(tǒng)還可以包括關(guān)系型數(shù)據(jù)庫管理系統(tǒng)mysql模塊14和restapi模塊15,其中,mysql模塊14與mqtt服務(wù)器13連接,restapi模塊15分別與mysql模塊14和遠程控制設(shè)備連接。在本實施例中,mysql模塊14具體用于存儲用戶基本信息和用戶所擁有的設(shè)備信息,restapi模塊15則用于與遠程控制設(shè)備進行通信。
具體的,本發(fā)明采用wifi直接將各硬件設(shè)備接入互聯(lián)網(wǎng),各硬件設(shè)備連接到數(shù)據(jù)中轉(zhuǎn)服務(wù)器,各硬件設(shè)備和遠程控制設(shè)備分別與mqtt服務(wù)器連接,使得所有的硬件設(shè)備就可以直接通過遠程控制設(shè)備進行遠程控制。在本實施例中,各硬件設(shè)備和遠程控制設(shè)備之間的通信使用mqtt來解決各種網(wǎng)絡(luò)環(huán)境的問題,由于mqtt通信數(shù)據(jù)包比較小,傳輸一個指令消耗時間比較短,專門為了各種復(fù)雜的網(wǎng)絡(luò)環(huán)境設(shè)計,其支持網(wǎng)絡(luò)地址轉(zhuǎn)換(networkaddresstranslation,簡稱nat)網(wǎng)絡(luò),從而使得數(shù)據(jù)包能夠更快更準確的到達目的地,實現(xiàn)實時控制的功能。
在本實施例中,遠程控制設(shè)備可以是手機、平板電腦或電腦,在本實施例中以手機為例進行說明。當各硬件設(shè)備和遠程控制設(shè)備與mqtt服務(wù) 器連接后,可以根據(jù)設(shè)備中預(yù)定義的用戶名和密碼進行身份認證,其中,用戶名和密碼是出廠預(yù)置在設(shè)備中的;身份認證通過之后再根據(jù)預(yù)定義的參數(shù)進行話題訂閱,訂閱的話題參數(shù)是通過將設(shè)備芯片序列號加入一些隨機數(shù)經(jīng)過md5加密之后生成的,此序列號可以生成為二維碼以方便使用;然后通過手機端發(fā)送控制指令,服務(wù)器端轉(zhuǎn)發(fā)該指令到訂閱話題的硬件設(shè)備,進而實現(xiàn)遠程實時控制。
在上述實施例中,wifi模塊具體可以采用esp8266作為核心部件,并使用smartconfig技術(shù)連接路由器,手機端自動獲取手機此時連接wifi的ssid,用戶輸入wifi密碼之后點擊連接按鈕,手機就會向每一個信道發(fā)送包含有路由器ssid和密碼的廣播包,wifi模塊接收到廣播包之后解碼出路由器ssid和密碼就可以連接到路由器。例如,可以通過手機app輸入路由器密碼,并將此密碼通過smartconfig協(xié)議傳遞給設(shè)備,設(shè)備將路由器信息寫入flash,進而實現(xiàn)簡單地將沒有人機界面的硬件設(shè)備接入互聯(lián)網(wǎng)。
采用mqtt協(xié)議對各硬件設(shè)備進行控制,數(shù)據(jù)包更小,擁有服務(wù)質(zhì)量(qualityofservice,簡稱qos)分級控制,從而可以靈活控制通信質(zhì)量,當qos為0的時候服務(wù)器推送一次信息,當qos為1的時候客戶端至少收到一次消息,當qos為2的時候客戶端剛好收到一次消息,從而保證信息到達率,mqtt通信是訂閱/發(fā)布機制,向服務(wù)器某一個話題發(fā)布信息,所有訂閱這個話題的設(shè)備(包括手機app和各硬件設(shè)備)都可以接受到信息。在本實施例中,采用mysql模塊存儲用戶基本信息和用戶所擁有的設(shè)備信息,服務(wù)器端采用超文本預(yù)處理器(hypertextpreprocessor,簡稱php)讀寫mysql模塊來管理用戶基本信息和其所擁有的設(shè)備信息,并通過restapi與手機客戶端通信。手機端則通過服務(wù)器身份驗證并讀取服務(wù)器端restapi設(shè)備信息來生成對應(yīng)的設(shè)備列表,并發(fā)送控制指令與服務(wù)器 通信,以實現(xiàn)對硬件設(shè)備的控制。
在本實施例中,首先服務(wù)器通過mqtt協(xié)議接受控制指令并推送這些指令到設(shè)備中實現(xiàn)實時控制,服務(wù)器端推送控制指令到手機app實現(xiàn)設(shè)備狀態(tài)同步顯示。然后,服務(wù)器端通過php+mysql數(shù)據(jù)庫進行用戶認證,用戶認證通過之后才能發(fā)送和接收指令。而手機端,則需要支持smartconfig協(xié)議,從而可以很簡單的配置路由器信息到設(shè)備,使設(shè)備接入互聯(lián)網(wǎng)。使得手機可以通過會員機制與服務(wù)器端進行通信,解析服務(wù)器端返回的設(shè)備列表數(shù)據(jù)等,從而可以通過mqtt協(xié)議向服務(wù)器發(fā)送控制信息。
本發(fā)明通過wifi模塊將各設(shè)備接入互聯(lián)網(wǎng),從而使得各設(shè)備可以進行遠程控制,并將各設(shè)備連接到mqtt服務(wù)器,使得各設(shè)備之間傳輸?shù)臄?shù)據(jù)包小,通信時間更短。
本發(fā)明還公開了一種智能家居的遠程控制方法,如圖2所示,該方法可以包括如下步驟:
步驟s201,將各智能家居硬件設(shè)備和遠程控制設(shè)備通過wifi模塊接入互聯(lián)網(wǎng);
步驟s202,各智能家居硬件設(shè)備和遠程控制設(shè)備之間通過mqtt方式進行通信。
本實施例中的具體接入互聯(lián)網(wǎng)方法和通信方式的建立與上述實施例所描述的相類似,此處不再贅述。
以下通過具體的實施例進一步說本發(fā)明的控制方法,如圖3所示,包括如下步驟:
步驟s301,對各設(shè)備進行上電;
步驟s302,判斷是否讀取到wifi信息;若可以,則執(zhí)行步驟s303,否則執(zhí)行步驟s304;
在本實施例中,當一個設(shè)備啟動的時候會首先向自身flash中讀取存儲的路由器wifi信息,包括ssid和路由器密碼以進行聯(lián)網(wǎng),當讀取到自身flash中存儲有wifi信息的時候,則執(zhí)行步驟s303;當讀取到自身flash中沒有存儲任何wifi信息的時候,則執(zhí)行步驟s304。
步驟s303,連接wifi;
可以根據(jù)提示輸入連接wifi的密碼,輸入wifi密碼之后,點擊確定按鈕,手機會向所有信道廣播路由器wifi信息,設(shè)備接收到數(shù)據(jù)包之后解碼出相應(yīng)數(shù)據(jù),并存儲到自身flash,以便下次開機的時候使用,并連接到路由器。
步驟s304,開啟smartconfig模式;
在本步驟中,可以開啟smartconfig模式,并等待手機為其配置路由器信息。
步驟s305,判斷wifi是否連接成功;若連接成功,則執(zhí)行步驟s306,否則執(zhí)行步驟s307;
步驟s306,等間隔時間發(fā)送心跳包以判斷wifi是否斷開;若wifi沒有斷開則執(zhí)行步驟s308,否則執(zhí)行步驟s309;
步驟s307,判斷是否超過連接次數(shù);若沒有超過則返回執(zhí)行步驟s303,否則執(zhí)行步驟s304;
步驟s308,連接mqtt服務(wù)器;
步驟s309,判斷mqtt連接是否斷開,若是則返回執(zhí)行步驟s308,否則執(zhí)行步驟s312;
步驟s310,進入訂閱話題;
步驟s311,進行身份認證;
步驟s312,確認是否收到指令;若是則執(zhí)行步驟s313,否則返回執(zhí)行步驟s306。
步驟s313,采取動作。
在本實施例中,設(shè)備獲取到wifi信息的時候,連接到相應(yīng)wifi,一旦wifi斷開就會開啟重新連接,保證設(shè)備不斷網(wǎng)。設(shè)備連接到wifi之后通過mqtt協(xié)議與服務(wù)器握手連接到服務(wù)器,每隔一段時間發(fā)送一次心跳包保證mqtt連接不斷開,即是保證mqtt信息推送的通暢,設(shè)備連接服務(wù)器成功之后就等待手機客戶端發(fā)送控制指令。mqtt斷開的時候,也會立即連接,如果一段時間之內(nèi)沒有重新連接,服務(wù)器會向所有訂閱這個話題的設(shè)備或者app發(fā)布此設(shè)備掉線的信息,而在wifi斷開的時候mqtt也會隨之斷開。
當聯(lián)網(wǎng)完成后,手機首先會向mysql查詢已登錄用戶名下所有設(shè)備列表并顯示出來,當使用手機app控制的時候,即是通過mqtt協(xié)議發(fā)送指令到服務(wù)器;服務(wù)器接收到mqtt信息之后就會通過信息中所攜帶的話題推送到所有訂閱此話題的設(shè)備中去;設(shè)備接收到服務(wù)器推送信息之后就會采取指令所對應(yīng)的相關(guān)動作,比如rgb燈光的調(diào)色和開閉等,其他訂閱此話題的手機app接收到信息之后會同步此次控制的狀態(tài),做到狀態(tài)的實時顯示。
本發(fā)明采用定時發(fā)送心跳包與服務(wù)器連接,而不是采用長連接與服務(wù)器連接,從而減輕服務(wù)器壓力,使服務(wù)器并發(fā)連接數(shù)量大大增加,降低成本。
本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:rom、ram、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對 其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。