日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

一種基于MQTT協(xié)議的無線通訊裝置和方法以及一種控水器與流程

文檔序號:11180764閱讀:843來源:國知局
一種基于MQTT協(xié)議的無線通訊裝置和方法以及一種控水器與流程

本發(fā)明涉及一種無線通訊裝置和方法以及該無線通訊裝置的應(yīng)用,屬于無線通訊技術(shù)領(lǐng)域。



背景技術(shù):

目前多數(shù)高校學(xué)生公寓飲用水、淋浴,單位后勤浴室、工廠淋浴室等的用水都通過控水器采用進行用水管控,不僅方便使用,還節(jié)約用水。當(dāng)前控水器與系統(tǒng)軟件之間采用有線聯(lián)網(wǎng)模式工作,這種聯(lián)網(wǎng)方式需要大規(guī)模布線實現(xiàn)聯(lián)網(wǎng),不僅增加布線成本,同時也增加了施工難度。另一方面,現(xiàn)有的應(yīng)用于固定范圍(如學(xué)校、工廠等)的無線通訊裝置多采用自組網(wǎng)模式(如zigbee)和coap協(xié)議,自組網(wǎng)模式需要獨立建網(wǎng),建設(shè)成本較高,而coap協(xié)議不方便與其他產(chǎn)品對接,其適應(yīng)性受限。



技術(shù)實現(xiàn)要素:

本發(fā)明為了解決布線成本高、施工難度大的問題,本發(fā)明提出了一種基于mqtt協(xié)議的無線通訊裝置和方法,以及基于該無線通訊裝置的控水器。

一種基于mqtt協(xié)議的無線通訊裝置,所采取的技術(shù)方案如下:

所述無線通訊裝置包括:

用于建立mqtt數(shù)據(jù)收發(fā)線程的數(shù)據(jù)收發(fā)線程建立模塊;

用于所述mqtt數(shù)據(jù)收發(fā)線程與mqtt代理服務(wù)器之間建立連接的連接建立模塊;

用于所述mqtt數(shù)據(jù)收發(fā)線程進行消息訂閱的消息訂閱模塊;

用于所述mqtt數(shù)據(jù)收發(fā)線程注冊遺囑消息的信息注冊模塊;

用于建立mqtt發(fā)送消息隊列和mqtt接收消息隊列的消息隊列建立模塊;

用于建立串口數(shù)據(jù)接收線程的串口數(shù)據(jù)接收線程建立模塊;

用于所述串口數(shù)據(jù)接收線程初始化串口和串口接收完成信號量的串口初始化模塊;

用于所述串口數(shù)據(jù)接收線程建立接收數(shù)據(jù)緩存的數(shù)據(jù)緩存模塊;

用于所述串口數(shù)據(jù)接收線程建立接收數(shù)據(jù)緩存互斥量的緩存互斥量模塊;

用于建立數(shù)據(jù)處理線程的數(shù)據(jù)處理線程建立模塊。

進一步地,所述無線通訊裝置還包括:

用于所述mqtt數(shù)據(jù)收發(fā)線程接收mqtt代理服務(wù)器發(fā)布的外部設(shè)備控制命令的外部設(shè)備控制命令接收模塊;

用于將所述外部設(shè)備控制命令接收模塊接收到的外部設(shè)備控制命令推入所述mqtt接收消息隊列的命令推入模塊;

用于數(shù)據(jù)處理線程從所述mqtt接收消息隊列中提取外部設(shè)備控制命令的外部設(shè)備控制命令提取模塊;

用于數(shù)據(jù)處理線程解析所述外部設(shè)備控制命令的外部設(shè)備控制命令解析模塊;

用于數(shù)據(jù)處理線程判斷所述外部設(shè)備控制命令是發(fā)給對應(yīng)外部設(shè)備的命令判斷模塊;

用于數(shù)據(jù)處理線程向所述外部設(shè)備發(fā)送外部設(shè)備控制命令的命令發(fā)送模塊;

用于串口數(shù)據(jù)接收線程接收所述外部設(shè)備的命令執(zhí)行結(jié)果的執(zhí)行結(jié)果接收模塊;

用于串口數(shù)據(jù)接收線程將所述命令執(zhí)行結(jié)果保存到所述接收數(shù)據(jù)緩存的數(shù)據(jù)保存模塊;

用于串口數(shù)據(jù)接收線程向mqtt數(shù)據(jù)收發(fā)線程發(fā)送所述串口接收完成信號量的信號發(fā)送模塊;

用于所述mqtt數(shù)據(jù)收發(fā)線程接收所述串口接收完成信號量的信號接收模塊;

用于所述mqtt數(shù)據(jù)收發(fā)線程接收所述串口接收完成信號量后,讀取所述接收數(shù)據(jù)緩存中緩存數(shù)據(jù)的數(shù)據(jù)讀取模塊;

用于所述mqtt數(shù)據(jù)收發(fā)線程向mqtt代理服務(wù)器發(fā)布消息的消息發(fā)布模塊。

進一步地,所述無線通訊裝置還包括:

用于所述mqtt數(shù)據(jù)收發(fā)線程接收mqtt代理服務(wù)器發(fā)布的控制命令的命令接收模塊;

用于將所述命令接收模塊接收到的控制命令推入所述mqtt接收消息隊列的控制命令推入模塊;

用于數(shù)據(jù)處理線程從所述mqtt接收消息隊列中提取控制命令的控制命令提取模塊;

用于數(shù)據(jù)處理線程解析所述控制命令的控制命令解析模塊;

用于數(shù)據(jù)處理線程執(zhí)行其從所述mqtt接收消息隊列中提取的控制命令的命令執(zhí)行模塊;

用于數(shù)據(jù)處理線程向mqtt代理服務(wù)器發(fā)布其執(zhí)行所述控制命令的執(zhí)行結(jié)果的結(jié)果發(fā)布模塊。

進一步地,所述無線通訊裝置還包括:

用于所述mqtt數(shù)據(jù)收發(fā)線程接收mqtt代理服務(wù)器發(fā)布的固件升級命令的升級命令接收模塊;

用于將所述升級命令接收模塊接收到的固件升級命令推入所述mqtt接收消息隊列的升級命令推入模塊;

用于數(shù)據(jù)處理線程從所述mqtt接收消息隊列中提取固件升級命令的升級命令提取模塊;

用于建立固件升級線程的固件升級線程建立模塊;

用于所述固件升級線程連接http文件服務(wù)器的連接模塊;

用于固件升級線程下載固件文件的文件下載模塊;

用于固件升級線程校驗文件完整性的文件校驗?zāi)K;

用于固件升級線程寫入升級標(biāo)志的標(biāo)志寫入模塊。

所述無線通訊裝置還包括:

用于網(wǎng)絡(luò)層加密的網(wǎng)絡(luò)層加密模塊;

用于傳輸層加密的傳輸層加密模塊;

用于應(yīng)用層加密的應(yīng)用層加密模塊。

一種基于mqtt協(xié)議的無線通訊方法,所采取的技術(shù)方案如下,

所述無線通訊方法包括:

用于建立mqtt數(shù)據(jù)收發(fā)線程的數(shù)據(jù)收發(fā)線程建立步驟;

用于所述mqtt數(shù)據(jù)收發(fā)線程與mqtt代理服務(wù)器之間建立連接的連接建立步驟;

用于所述mqtt數(shù)據(jù)收發(fā)線程進行消息訂閱的消息訂閱步驟;

用于所述mqtt數(shù)據(jù)收發(fā)線程注冊遺囑消息的信息注冊步驟;

用于建立mqtt發(fā)送消息隊列和mqtt接收消息隊列的消息隊列建立步驟;

用于建立串口數(shù)據(jù)接收線程的串口數(shù)據(jù)接收線程建立步驟;

用于所述串口數(shù)據(jù)接收線程初始化串口和串口接收完成信號量的串口初始化步驟;

用于所述串口數(shù)據(jù)接收線程建立接收數(shù)據(jù)緩存的數(shù)據(jù)緩存步驟;

用于所述串口數(shù)據(jù)接收線程建立接收數(shù)據(jù)緩存互斥量的緩存互斥量步驟;

用于建立數(shù)據(jù)處理線程的數(shù)據(jù)處理線程建立步驟。

進一步地,所述無線通訊方法還包括:

用于所述mqtt數(shù)據(jù)收發(fā)線程接收mqtt代理服務(wù)器發(fā)布的外部設(shè)備控制命令的外部設(shè)備控制命令接收步驟;

用于將所述外部設(shè)備控制命令接收步驟接收到的外部設(shè)備控制命令推入所述mqtt接收消息隊列的命令推入步驟;

用于數(shù)據(jù)處理線程從所述mqtt接收消息隊列中提取外部設(shè)備控制命令的外部設(shè)備控制命令提取步驟;

用于數(shù)據(jù)處理線程解析所述外部設(shè)備控制命令的外部設(shè)備控制命令解析步驟;

用于數(shù)據(jù)處理線程判斷所述外部設(shè)備控制命令是發(fā)給對應(yīng)外部設(shè)備的命令判斷步驟;

用于數(shù)據(jù)處理線程向所述外部設(shè)備發(fā)送外部設(shè)備控制命令的命令發(fā)送步驟;

用于串口數(shù)據(jù)接收線程接收所述外部設(shè)備的命令執(zhí)行結(jié)果的執(zhí)行結(jié)果接收步驟;

用于串口數(shù)據(jù)接收線程將所述命令執(zhí)行結(jié)果保存到所述接收數(shù)據(jù)緩存的數(shù)據(jù)保存步驟;

用于串口數(shù)據(jù)接收線程向mqtt數(shù)據(jù)收發(fā)線程發(fā)送所述串口接收完成信號量的信號發(fā)步驟;

用于所述mqtt數(shù)據(jù)收發(fā)線程接收所述串口接收完成信號量的信號接收步驟;

用于所述mqtt數(shù)據(jù)收發(fā)線程接收所述串口接收完成信號量后,讀取所述接收數(shù)據(jù)緩存中緩存數(shù)據(jù)的數(shù)據(jù)讀取步驟;

用于所述mqtt數(shù)據(jù)收發(fā)線程向mqtt代理服務(wù)器發(fā)布消息的消息發(fā)布步驟。

進一步地,所述無線通訊方法還包括:

用于所述mqtt數(shù)據(jù)收發(fā)線程接收mqtt代理服務(wù)器發(fā)布的控制命令的命令接收步驟;

用于將所述命令接收步驟接收到的控制命令推入所述mqtt接收消息隊列的控制命令推入步驟;

用于數(shù)據(jù)處理線程從所述mqtt接收消息隊列中提取控制命令的控制命令提取步驟;

用于數(shù)據(jù)處理線程解析所述控制命令的控制命令解析步驟;

用于數(shù)據(jù)處理線程執(zhí)行其從所述mqtt接收消息隊列中提取的控制命令的命令執(zhí)行步驟;

用于數(shù)據(jù)處理線程向mqtt代理服務(wù)器發(fā)布其執(zhí)行所述控制命令的執(zhí)行結(jié)果的結(jié)果發(fā)布步驟。

進一步地,所述無線通訊方法還包括:

用于所述mqtt數(shù)據(jù)收發(fā)線程接收mqtt代理服務(wù)器發(fā)布的固件升級命令的升級命令接收步驟;

用于將所述升級命令接收步驟接收到的固件升級命令推入所述mqtt接收消息隊列的升級命令推入步驟;

用于數(shù)據(jù)處理線程從所述mqtt接收消息隊列中提取固件升級命令的升級命令提取步驟;

用于建立固件升級線程的固件升級線程建立步驟;

用于所述固件升級線程連接http文件服務(wù)器的連接步驟;

用于固件升級線程下載固件文件的文件下載步驟;

用于固件升級線程校驗文件完整性的文件校驗步驟;

用于固件升級線程寫入升級標(biāo)志的標(biāo)志寫入步驟。

所述無線通訊方法還包括:

用于網(wǎng)絡(luò)層加密的網(wǎng)絡(luò)層加密步驟;

用于傳輸層加密的傳輸層加密步驟;

用于應(yīng)用層加密的應(yīng)用層加密步驟。

一種基于本發(fā)明所述無線通訊裝置的控水器,所采取的技術(shù)方案如下,

所述控水器包括核心處理器、顯示模塊、讀寫卡模塊、時鐘模塊、無線通訊裝置、后備電源、電源、水表檢測模塊和門閥控制模塊;所述核心處理器的顯示控制信號輸出端與顯示模塊的控制信號輸入端相連;所述核心處理器的讀寫控制信號輸出端與讀寫卡模塊的控制信號輸入端相連;所述核心處理器的時鐘信號輸入端與時鐘模塊的時鐘信號輸出端相連;所述核心處理器的無線控制信號輸出端與無線通訊裝置的控制信號輸入端相連;所述核心處理器的電源信號輸入端和備用電源信號輸入端分別于電源的電信號輸出端和后背電源的電信號輸出端相連;所述核心處理器的水表檢測信號輸入端與水表檢測模塊的信號輸出端相連;所述核心處理器的閥門驅(qū)動控制信號輸出端與閥門驅(qū)動模塊的控制信號輸入端相連。

進一步地,所述控水器利用無線通訊裝置的消息發(fā)布模式發(fā)送報警提示信息;

所述控水器通過所述無線通訊裝置的消息發(fā)布模式發(fā)送控水器工作狀態(tài)信息;所述消息發(fā)布模式采用至多一次的發(fā)送形式進行控水器工作狀態(tài)信息的發(fā)送;

所述控水器通過所述無線通訊裝置的消息發(fā)布模式發(fā)送消費流水信息;所述消息發(fā)布模式采用只有一次的發(fā)送形式進行消費流水信息的發(fā)送;

所述控水器通過無線通訊裝置的訂閱消息模式獲取工作模式設(shè)定或更改信息;所述訂閱消息模式采用至少一次的獲取形式進行工作模式設(shè)定或更改信息的獲??;

所述控水器通過無線通訊裝置的訂閱消息模式獲取用戶賬戶信息;所述訂閱消息模式采用至少一次的獲取形式進行用戶賬戶信息的獲取。

本發(fā)明有益效果:

本發(fā)明提出的基于mqtt協(xié)議的無線通訊裝置和方法采用wifi模式通過tcp/ip網(wǎng)絡(luò)連接以及mqtt協(xié)議實現(xiàn)設(shè)備與控制軟件之間的數(shù)據(jù)連接,其有益效果有:

(1)本發(fā)明提出的無線通訊裝置與傳統(tǒng)透傳方式的無線通訊相比,不存在固定延時,有效提高無線通訊的響應(yīng)速度;同時,當(dāng)應(yīng)用數(shù)據(jù)包超過數(shù)據(jù)緩沖時,本發(fā)明提出無線通訊裝置的數(shù)據(jù)緩沖大小不受限制,可根據(jù)mqtt協(xié)議設(shè)置進行靈活處理。

(2)本發(fā)明提出的無線通訊裝置采用http協(xié)議下載固件文件實現(xiàn)固件升級,有效降低了系統(tǒng)升級的復(fù)雜度。

(3)本發(fā)明提出的無線通訊裝置由mqtt數(shù)據(jù)收發(fā)線程,串口數(shù)據(jù)接收線程,數(shù)據(jù)處理線程和固件升級線程四個線程組成,在裝置運行過程中,通過不同的線程處理耗費時間的操作,有效節(jié)省操作時間,極大程度上提高了無線通訊裝置的實時性。同時,多線程操作將通信處理和數(shù)據(jù)處理分離開,減少了通信處理和數(shù)據(jù)處理之間的耦合,提高了通信處理和數(shù)據(jù)處理的穩(wěn)定性,另一方面,所述無線通訊裝置的通信處理部分為通用程序?qū)崿F(xiàn),不用關(guān)心具體數(shù)據(jù),便于程序移植到其他類似應(yīng)用中,增加了本發(fā)明所述無線通訊裝置實際應(yīng)用的廣泛性。

(4)本發(fā)明提出的無線通訊裝置通過網(wǎng)絡(luò)層加密模塊,傳輸層加密模塊和應(yīng)用層加密模塊的分層加密方式,提高通信安全,解決了現(xiàn)有透傳方式無線通訊裝置通信安全性差的問題。其中,加密形式包括網(wǎng)絡(luò)層加密、傳輸層加密和應(yīng)用層加密,其中,網(wǎng)絡(luò)層加密,支持wep,wpa/wpa2,psk/enterprise多種加密方式,加密了除ip之外的所有層,提高網(wǎng)絡(luò)安全性。傳輸層加密,采用tls加密,加密mqtt數(shù)據(jù)包,無線模塊內(nèi)置mqtt代理服務(wù)器證書,建立連接時與mqtt代理服務(wù)器協(xié)商通信密鑰,防止中間人攻擊。應(yīng)用層加密,支持用戶名密碼方式的認(rèn)證,挺高了用戶應(yīng)用安全。

(5)本發(fā)明提出的無線通訊裝置與zigbee無線通訊裝置相比,其使用wi-fi模式通過tcp/ip網(wǎng)絡(luò)組網(wǎng)具有通用性,可以直接使用現(xiàn)有的無線網(wǎng)絡(luò)資源,降低組網(wǎng)的投資成本;與coap無線通訊裝置相比,使用mqtt協(xié)議的產(chǎn)品非常豐富,可以方便其他產(chǎn)品接入本產(chǎn)品和本產(chǎn)品接入其他用戶系統(tǒng),而不需要再做更多的二次開發(fā),提高了產(chǎn)品的適應(yīng)性、擴展性和可靠性,確保通訊質(zhì)量。

(6)在應(yīng)用本發(fā)明無線通訊裝置的設(shè)備數(shù)量較多的時候,能夠極大的降低系統(tǒng)工作壓力,降低對網(wǎng)絡(luò)及計算機等設(shè)備的配置要求,減少項目建設(shè)成本。

本發(fā)明提出一種基于無線通訊裝置的控水器,通過無線通訊裝置實現(xiàn)控水器與控制軟件之間的數(shù)據(jù)連接,其有益效果有:

(1)通過無線通訊裝置實現(xiàn)控水器和控制軟件之間的聯(lián)系,在控水器使用量大的情況下,有效降低了布線成本和施工難度。

(2)本發(fā)明提出的控水器在刷卡消費時才產(chǎn)生通信數(shù)據(jù),通信相應(yīng)延時不受控水系統(tǒng)中控水器數(shù)量的影響,因此,本發(fā)明提出的控水器具有較高的通信質(zhì)量,同時能夠?qū)崿F(xiàn)多數(shù)量、大規(guī)模的安裝使用,具有廣泛的實用性。

(3)本發(fā)明提出的控水器采用的發(fā)布消息模式和訂閱消息模式,為實現(xiàn)設(shè)備與控制軟件之間提供了一對多的消息發(fā)布,有效解除了通信和數(shù)據(jù)之間的耦合;控水器的通信數(shù)據(jù)由同一主題轉(zhuǎn)發(fā),網(wǎng)絡(luò)控制和應(yīng)用控制分離,方便控制軟件進行測試和排錯,有效提高了控水器運行的穩(wěn)定性。

(4)本發(fā)明提出的控水器能夠及時向控制系統(tǒng)自動通知控水器運行狀態(tài),包括上線和掉線狀況,同時可自動添加新入網(wǎng)的控水器及其信息;同時,本發(fā)明控水器采用多種加密方式在網(wǎng)絡(luò)層、傳輸層和應(yīng)用層分別采用加密處理,提高網(wǎng)絡(luò)數(shù)據(jù)安全性;并且,可進行在線升級,支持自更新和升級控水器的應(yīng)用程序。

附圖說明

圖1為本發(fā)明所述無線通訊裝置的功能框圖。

圖2為本發(fā)明所述控水器的系統(tǒng)結(jié)構(gòu)示意圖。

具體實施方式

下面結(jié)合具體實施例對本發(fā)明做進一步說明,但本發(fā)明不受實施例的限制。

一種基于mqtt協(xié)議的無線通訊裝置,用于實現(xiàn)外部設(shè)備與控制軟件間的通信,所采取的技術(shù)方案如下:

所述無線通訊裝置包括:

用于建立mqtt數(shù)據(jù)收發(fā)線程的數(shù)據(jù)收發(fā)線程建立模塊;

用于所述mqtt數(shù)據(jù)收發(fā)線程與mqtt代理服務(wù)器之間建立連接的連接建立模塊;

用于所述mqtt數(shù)據(jù)收發(fā)線程進行消息訂閱的消息訂閱模塊;

用于所述mqtt數(shù)據(jù)收發(fā)線程注冊遺囑消息的信息注冊模塊;

用于建立mqtt發(fā)送消息隊列和mqtt接收消息隊列的消息隊列建立模塊;

用于建立串口數(shù)據(jù)接收線程的串口數(shù)據(jù)接收線程建立模塊;

用于所述串口數(shù)據(jù)接收線程初始化串口和串口接收完成信號量的串口初始化模塊;

用于所述串口數(shù)據(jù)接收線程建立接收數(shù)據(jù)緩存的數(shù)據(jù)緩存模塊;

用于所述串口數(shù)據(jù)接收線程建立接收數(shù)據(jù)緩存互斥量的緩存互斥量模塊;

用于建立數(shù)據(jù)處理線程的數(shù)據(jù)處理線程建立模塊。

所述無線通訊裝置還包括:

用于所述mqtt數(shù)據(jù)收發(fā)線程接收mqtt代理服務(wù)器發(fā)布的外部設(shè)備控制命令的外部設(shè)備控制命令接收模塊;

用于將所述外部設(shè)備控制命令接收模塊接收到的外部設(shè)備控制命令推入所述mqtt接收消息隊列的命令推入模塊;

用于數(shù)據(jù)處理線程從所述mqtt接收消息隊列中提取外部設(shè)備控制命令的外部設(shè)備控制命令提取模塊;

用于數(shù)據(jù)處理線程解析所述外部設(shè)備控制命令的外部設(shè)備控制命令解析模塊;

用于數(shù)據(jù)處理線程判斷所述外部設(shè)備控制命令是發(fā)給對應(yīng)外部設(shè)備的命令判斷模塊;

用于數(shù)據(jù)處理線程向所述外部設(shè)備發(fā)送外部設(shè)備控制命令的命令發(fā)送模塊;

用于串口數(shù)據(jù)接收線程接收所述外部設(shè)備的命令執(zhí)行結(jié)果的執(zhí)行結(jié)果接收模塊;

用于串口數(shù)據(jù)接收線程將所述命令執(zhí)行結(jié)果保存到所述接收數(shù)據(jù)緩存的數(shù)據(jù)保存模塊;

用于串口數(shù)據(jù)接收線程向mqtt數(shù)據(jù)收發(fā)線程發(fā)送所述串口接收完成信號量的信號發(fā)送模塊;

用于所述mqtt數(shù)據(jù)收發(fā)線程接收所述串口接收完成信號量的信號接收模塊;

用于所述mqtt數(shù)據(jù)收發(fā)線程接收所述串口接收完成信號量后,讀取所述接收數(shù)據(jù)緩存中緩存數(shù)據(jù)的數(shù)據(jù)讀取模塊;

用于所述mqtt數(shù)據(jù)收發(fā)線程向mqtt代理服務(wù)器發(fā)布消息的消息發(fā)布模塊。

所述無線通訊裝置還包括:

用于所述mqtt數(shù)據(jù)收發(fā)線程接收mqtt代理服務(wù)器發(fā)布的控制命令的命令接收模塊;

用于將所述命令接收模塊接收到的控制命令推入所述mqtt接收消息隊列的控制命令推入模塊;

用于數(shù)據(jù)處理線程從所述mqtt接收消息隊列中提取控制命令的控制命令提取模塊;

用于數(shù)據(jù)處理線程解析所述控制命令的控制命令解析模塊;

用于數(shù)據(jù)處理線程執(zhí)行其從所述mqtt接收消息隊列中提取的控制命令的命令執(zhí)行模塊;

用于數(shù)據(jù)處理線程向mqtt代理服務(wù)器發(fā)布其執(zhí)行所述控制命令的執(zhí)行結(jié)果的結(jié)果發(fā)布模塊。

所述無線通訊裝置還包括:

用于所述mqtt數(shù)據(jù)收發(fā)線程接收mqtt代理服務(wù)器發(fā)布的固件升級命令的升級命令接收模塊;

用于將所述升級命令接收模塊接收到的固件升級命令推入所述mqtt接收消息隊列的升級命令推入模塊;

用于數(shù)據(jù)處理線程從所述mqtt接收消息隊列中提取固件升級命令的升級命令提取模塊;

用于建立固件升級線程的固件升級線程建立模塊;

用于所述固件升級線程連接http文件服務(wù)器的連接模塊;

用于固件升級線程下載固件文件的文件下載模塊;

用于固件升級線程校驗文件完整性的文件校驗?zāi)K;

用于固件升級線程寫入升級標(biāo)志的標(biāo)志寫入模塊。

所述無線通訊裝置還包括:

用于網(wǎng)絡(luò)層加密的網(wǎng)絡(luò)層加密模塊;

用于傳輸層加密的傳輸層加密模塊;

用于應(yīng)用層加密的應(yīng)用層加密模塊。

所述無線通訊裝置運行后進入初始化階段:

在初始化階段中,首先通過數(shù)據(jù)收發(fā)線程建立模塊、串口數(shù)據(jù)接收線程建立模塊和數(shù)據(jù)處理線程建立模塊分別建立mqtt數(shù)據(jù)收發(fā)線程,串口數(shù)據(jù)接收線程和數(shù)據(jù)處理線程。所述mqtt數(shù)據(jù)收發(fā)線程建立后,首先通過連接建立模塊建立mqtt數(shù)據(jù)收發(fā)線程與mqtt代理服務(wù)器之間的連接。連接完成后,所述mqtt數(shù)據(jù)收發(fā)線程利用消息訂閱模塊和信息注冊模塊進行消息訂閱和注冊自己的遺囑消息。同時,利用消息隊列建立模塊建立mqtt發(fā)送消息隊列和mqtt接收消息隊列。所述串口數(shù)據(jù)接收線程建立后,首先串口數(shù)據(jù)接收線程通過初始化模塊對串口和串口接收完成信號量進行初始化,然后利用數(shù)據(jù)緩存模塊和緩存互斥量模塊分別建立接收數(shù)據(jù)緩存和接收數(shù)據(jù)緩存互斥量。此外,在初始化階段中,所述數(shù)據(jù)處理線程建立后,數(shù)據(jù)處理線程等待mqtt接收消息隊列和串口接收完成信號量。此時,初始化階段結(jié)束。

所述無線通訊裝置進入處理外部設(shè)備控制命令階段時:

所述mqtt數(shù)據(jù)收發(fā)線程通過外部設(shè)備控制命令接收模塊接收mqtt代理服務(wù)器發(fā)布的外部設(shè)備控制命令,其中,外部設(shè)備可以是下文提出的控水器。

然后,mqtt數(shù)據(jù)收發(fā)線程通過命令推入模塊將外部設(shè)備控制命令推入mqtt接收消息隊列中。隨后,數(shù)據(jù)處理線程通過外部設(shè)備控制命令提取模塊從所述mqtt接收消息隊列中提取外部設(shè)備控制命令,并利用外部設(shè)備控制命令解析模塊解析當(dāng)前提取的外部設(shè)備控制命令,同時利用命令判斷模塊判斷確定所述外部設(shè)備控制命令需要發(fā)給的對應(yīng)外部設(shè)備對象(例如、判斷該命令是發(fā)給控水器的)。在判斷確定該外部設(shè)備之后,所述數(shù)據(jù)處理線程直接通過串口阻塞式向外部設(shè)備發(fā)送數(shù)據(jù)。外部設(shè)備接收到命令數(shù)據(jù)后執(zhí)行命令,并通過串口返回執(zhí)行結(jié)果。所述串口數(shù)據(jù)接收線程通過執(zhí)行結(jié)果接收模塊接收該命令執(zhí)行結(jié)果,該執(zhí)行結(jié)果為一個完整的串口數(shù)據(jù)。隨后,所述串口數(shù)據(jù)接收線程利用數(shù)據(jù)保存模塊將命令執(zhí)行結(jié)果保存到所述接收數(shù)據(jù)緩存,并通過信號發(fā)送模塊向mqtt數(shù)據(jù)收發(fā)線程發(fā)送串口接收完成信號量。所述mqtt數(shù)據(jù)收發(fā)線程通過信號接收模塊接收串口接收完成信號量,并利用數(shù)據(jù)讀取模塊讀取所述接收數(shù)據(jù)緩存中緩存數(shù)據(jù),然后通過消息發(fā)布模塊向mqtt代理服務(wù)器發(fā)布消息。此時,外部設(shè)備控制的通信完成。

所述無線通訊裝置進入處理控制軟件對無線通訊裝置發(fā)送的無線通訊控制命令階段時:

首先,所述mqtt數(shù)據(jù)收發(fā)線程通過命令接收模塊接收mqtt代理服務(wù)器發(fā)布的無線通訊控制命令;然后,所述mqtt數(shù)據(jù)收發(fā)線程通過控制命令推入模塊將控制命令推入所述mqtt接收消息隊列中。隨后,數(shù)據(jù)處理線程通過控制命令提取模塊從所述mqtt接收消息隊列中提取控制命令;然后,數(shù)據(jù)處理線程依次利用控制命令解析模塊和命令執(zhí)行模塊進行控制命令的解析和控制命令的執(zhí)行。最后,數(shù)據(jù)處理線程通過結(jié)果發(fā)布模塊向mqtt代理服務(wù)器發(fā)布其執(zhí)行所述控制命令的執(zhí)行結(jié)果。此時,此階段的通信完成。

所述無線通訊裝置進入固件升級階段時:

首先,所述mqtt數(shù)據(jù)收發(fā)線程通過升級命令接收模塊接收mqtt代理服務(wù)器發(fā)布的固件升級命令;然后,所述mqtt數(shù)據(jù)收發(fā)線程通過升級命令推入模塊將固件升級命令推入所述mqtt接收消息隊列中;隨后,數(shù)據(jù)處理線程通過升級命令提取模塊從所述mqtt接收消息隊列中提取固件升級命令;并通過固件升級線程建立模塊建立固件升級線程。完成固件升級線程建立后,所述固件升級線程通過連接模塊建立固件升級線程與http文件服務(wù)器之間的連接;并通過文件下載模塊和文件校驗?zāi)K依次進行升級固件文件的下載以及對該固件文件完成性進行校驗;最后,所述固件升級線程通過標(biāo)志寫入模塊將本次升級寫入升級標(biāo)志。并重啟系統(tǒng)完成升級。

一種基于mqtt協(xié)議的無線通訊方法,所采取的技術(shù)方案如下,

所述無線通訊方法包括:

用于建立mqtt數(shù)據(jù)收發(fā)線程的數(shù)據(jù)收發(fā)線程建立步驟;

用于所述mqtt數(shù)據(jù)收發(fā)線程與mqtt代理服務(wù)器之間建立連接的連接建立步驟;

用于所述mqtt數(shù)據(jù)收發(fā)線程進行消息訂閱的消息訂閱步驟;

用于所述mqtt數(shù)據(jù)收發(fā)線程注冊遺囑消息的信息注冊步驟;

用于建立mqtt發(fā)送消息隊列和mqtt接收消息隊列的消息隊列建立步驟;

用于建立串口數(shù)據(jù)接收線程的串口數(shù)據(jù)接收線程建立步驟;

用于所述串口數(shù)據(jù)接收線程初始化串口和串口接收完成信號量的串口初始化步驟;

用于所述串口數(shù)據(jù)接收線程建立接收數(shù)據(jù)緩存的數(shù)據(jù)緩存步驟;

用于所述串口數(shù)據(jù)接收線程建立接收數(shù)據(jù)緩存互斥量的緩存互斥量步驟;

用于建立數(shù)據(jù)處理線程的數(shù)據(jù)處理線程建立步驟。

所述無線通訊方法還包括:

用于所述mqtt數(shù)據(jù)收發(fā)線程接收mqtt代理服務(wù)器發(fā)布的外部設(shè)備控制命令的外部設(shè)備控制命令接收步驟;

用于將所述外部設(shè)備控制命令接收步驟接收到的外部設(shè)備控制命令推入所述mqtt接收消息隊列的命令推入步驟;

用于數(shù)據(jù)處理線程從所述mqtt接收消息隊列中提取外部設(shè)備控制命令的外部設(shè)備控制命令提取步驟;

用于數(shù)據(jù)處理線程解析所述外部設(shè)備控制命令的外部設(shè)備控制命令解析步驟;

用于數(shù)據(jù)處理線程判斷所述外部設(shè)備控制命令是發(fā)給對應(yīng)外部設(shè)備的命令判斷步驟;

用于數(shù)據(jù)處理線程向所述外部設(shè)備發(fā)送外部設(shè)備控制命令的命令發(fā)送步驟;

用于串口數(shù)據(jù)接收線程接收所述外部設(shè)備的命令執(zhí)行結(jié)果的執(zhí)行結(jié)果接收步驟;

用于串口數(shù)據(jù)接收線程將所述命令執(zhí)行結(jié)果保存到所述接收數(shù)據(jù)緩存的數(shù)據(jù)保存步驟;

用于串口數(shù)據(jù)接收線程向mqtt數(shù)據(jù)收發(fā)線程發(fā)送所述串口接收完成信號量的信號發(fā)步驟;

用于所述mqtt數(shù)據(jù)收發(fā)線程接收所述串口接收完成信號量的信號接收步驟;

用于所述mqtt數(shù)據(jù)收發(fā)線程接收所述串口接收完成信號量后,讀取所述接收數(shù)據(jù)緩存中緩存數(shù)據(jù)的數(shù)據(jù)讀取步驟;

用于所述mqtt數(shù)據(jù)收發(fā)線程向mqtt代理服務(wù)器發(fā)布消息的消息發(fā)布步驟。

所述無線通訊方法還包括:

用于所述mqtt數(shù)據(jù)收發(fā)線程接收mqtt代理服務(wù)器發(fā)布的控制命令的命令接收步驟;

用于將所述命令接收步驟接收到的控制命令推入所述mqtt接收消息隊列的控制命令推入步驟;

用于數(shù)據(jù)處理線程從所述mqtt接收消息隊列中提取控制命令的控制命令提取步驟;

用于數(shù)據(jù)處理線程解析所述控制命令的控制命令解析步驟;

用于數(shù)據(jù)處理線程執(zhí)行其從所述mqtt接收消息隊列中提取的控制命令的命令執(zhí)行步驟;

用于數(shù)據(jù)處理線程向mqtt代理服務(wù)器發(fā)布其執(zhí)行所述控制命令的執(zhí)行結(jié)果的結(jié)果發(fā)布步驟。

所述無線通訊方法還包括:

用于所述mqtt數(shù)據(jù)收發(fā)線程接收mqtt代理服務(wù)器發(fā)布的固件升級命令的升級命令接收步驟;

用于將所述升級命令接收步驟接收到的固件升級命令推入所述mqtt接收消息隊列的升級命令推入步驟;

用于數(shù)據(jù)處理線程從所述mqtt接收消息隊列中提取固件升級命令的升級命令提取步驟;

用于建立固件升級線程的固件升級線程建立步驟;

用于所述固件升級線程連接http文件服務(wù)器的連接步驟;

用于固件升級線程下載固件文件的文件下載步驟;

用于固件升級線程校驗文件完整性的文件校驗步驟;

用于固件升級線程寫入升級標(biāo)志的標(biāo)志寫入步驟。

所述無線通訊方法還包括:

用于網(wǎng)絡(luò)層加密的網(wǎng)絡(luò)層加密步驟;

用于傳輸層加密的傳輸層加密步驟;

用于應(yīng)用層加密的應(yīng)用層加密步驟。

網(wǎng)絡(luò)層加密,支持wep,wpa/wpa2,psk/enterprise多種加密方式,加密了除ip之外的所有層,提高網(wǎng)絡(luò)安全性。傳輸層加密,采用tls加密,加密mqtt數(shù)據(jù)包,無線模塊內(nèi)置mqtt代理服務(wù)器證書,建立連接時與mqtt代理服務(wù)器協(xié)商通信密鑰,防止中間人攻擊。應(yīng)用層加密,支持用戶名密碼方式的認(rèn)證,挺高了用戶應(yīng)用安全。

所述無線通訊方法在初始化階段中,建立mqtt數(shù)據(jù)收發(fā)線程,串口數(shù)據(jù)接收線程和數(shù)據(jù)處理線程。所述mqtt數(shù)據(jù)收發(fā)線程建立后,首先建立mqtt數(shù)據(jù)收發(fā)線程與mqtt代理服務(wù)器之間的連接,連接完成后,所述mqtt數(shù)據(jù)收發(fā)線程進行消息訂閱,并注冊自己的遺囑消息。在mqtt數(shù)據(jù)收發(fā)線程完成消息訂閱和注冊遺囑消息之后,所述mqtt數(shù)據(jù)收發(fā)線程建立mqtt發(fā)送消息隊列和mqtt接收消息隊列。所述串口數(shù)據(jù)接收線程建立后,首先串口數(shù)據(jù)接收線程對串口和串口接收完成信號量進行初始化,然后建立接收數(shù)據(jù)緩存和接收數(shù)據(jù)緩存互斥量。在初始化階段中,所述數(shù)據(jù)處理線程建立后,數(shù)據(jù)處理線程等待mqtt接收消息隊列和串口接收完成信號量。此時,初始化階段結(jié)束。

在處理外部設(shè)備控制命令階段中,首先,所述mqtt數(shù)據(jù)收發(fā)線程接收mqtt代理服務(wù)器發(fā)布的外部設(shè)備控制命令,其中,外部設(shè)備可以是下文提出的控水器。

然后,mqtt數(shù)據(jù)收發(fā)線程將外部設(shè)備控制命令推入mqtt接收消息隊列中。隨后,數(shù)據(jù)處理線程從所述mqtt接收消息隊列中提取外部設(shè)備控制命令,并解析當(dāng)前提取的外部設(shè)備控制命令,同時判斷確定所述外部設(shè)備控制命令需要發(fā)給的對應(yīng)外部設(shè)備對象(例如、判斷該命令是發(fā)給控水器的)。在判斷確定該外部設(shè)備之后,所述數(shù)據(jù)處理線程直接通過串口阻塞式向外部設(shè)備發(fā)送數(shù)據(jù)。外部設(shè)備接收到命令數(shù)據(jù)后執(zhí)行命令,并通過串口返回執(zhí)行結(jié)果。此時,所述串口數(shù)據(jù)接收線程接收該命令執(zhí)行結(jié)果,該執(zhí)行結(jié)果為一個完整的串口數(shù)據(jù)。隨后,所述串口數(shù)據(jù)接收線程將命令執(zhí)行結(jié)果保存到所述接收數(shù)據(jù)緩存,并向mqtt數(shù)據(jù)收發(fā)線程發(fā)送串口接收完成信號量。所述mqtt數(shù)據(jù)收發(fā)線程接收串口接收完成信號量,并讀取所述接收數(shù)據(jù)緩存中緩存數(shù)據(jù),然后向mqtt代理服務(wù)器發(fā)布消息。此時,外部設(shè)備控制的通信完成。

在處理無線通訊控制命令階段時,首先,所述mqtt數(shù)據(jù)收發(fā)線程接收mqtt代理服務(wù)器發(fā)布的無線通訊控制命令;然后,所述mqtt數(shù)據(jù)收發(fā)線程將控制命令推入所述mqtt接收消息隊列中。隨后,數(shù)據(jù)處理線程從所述mqtt接收消息隊列中提取控制命令;然后,數(shù)據(jù)處理線程解析控制命令并執(zhí)行該控制命令。最后,數(shù)據(jù)處理線程向mqtt代理服務(wù)器發(fā)布其執(zhí)行所述控制命令的執(zhí)行結(jié)果。此時,此階段的通信完成。

在固件升級階段時,首先,所述mqtt數(shù)據(jù)收發(fā)線程接收mqtt代理服務(wù)器發(fā)布的固件升級命令;然后,所述mqtt數(shù)據(jù)收發(fā)線程將固件升級命令推入所述mqtt接收消息隊列中;隨后,數(shù)據(jù)處理線程通從所述mqtt接收消息隊列中提取固件升級命令;并建立固件升級線程。完成固件升級線程建立后,所述固件升級線程建立固件升級線程與http文件服務(wù)器之間的連接;并進行升級固件文件的下載以及對該固件文件完成性進行校驗;最后,所述固件升級線程將本次升級寫入升級標(biāo)志。并重啟系統(tǒng)完成升級。

一種基于本發(fā)明所述無線通訊裝置的控水器,該控水器通過基于mqtt協(xié)議的無線通訊裝置實現(xiàn)控水器與控制軟件間的通信,通過該無線通訊裝置實現(xiàn)控水器上線通知、通過mqtt遺言機制實現(xiàn)控水器的下線通知,并通過http實現(xiàn)固件升級。具體的,所述控水器包括核心處理器、顯示模塊、讀寫卡模塊、時鐘模塊、無線通訊裝置、后備電源、電源、水表檢測模塊和門閥控制模塊;所述核心處理器的顯示控制信號輸出端與顯示模塊的控制信號輸入端相連;所述核心處理器的讀寫控制信號輸出端與讀寫卡模塊的控制信號輸入端相連;所述核心處理器的時鐘信號輸入端與時鐘模塊的時鐘信號輸出端相連;所述核心處理器的無線控制信號輸出端與無線通訊裝置的控制信號輸入端相連;所述核心處理器的電源信號輸入端和備用電源信號輸入端分別于電源的電信號輸出端和后背電源的電信號輸出端相連;所述核心處理器的水表檢測信號輸入端與水表檢測模塊的信號輸出端相連;所述核心處理器的閥門驅(qū)動控制信號輸出端與閥門驅(qū)動模塊的控制信號輸入端相連。

其中,所述核心處理器是整個控水器最核心部件,通過核心處理器協(xié)調(diào)控制控水器各部分的工作。

所述電源電路通過直流穩(wěn)壓轉(zhuǎn)換,為控水器提供+5v和+3.3v工作電壓,同時,核心處理器能夠監(jiān)測電源電路是否正常運行,當(dāng)電源電路出現(xiàn)異常時,核心處理器會及時保存現(xiàn)場數(shù)據(jù),并關(guān)閉閥門。

所述后備電源用于在電源異常時,為控水器提供掉電處理工作電源和時鐘電源。

在控水器消費的過程中,通過所述水表檢測模塊檢測使用者消費的水量;在閥門關(guān)閉的狀態(tài)下,通過所述水表檢測模塊檢測用水管路上是否漏水。

所述閥門驅(qū)動電路用于控制用水管路上的電動閥或電磁閥的啟動和關(guān)閉。

所述時鐘模塊用于在斷網(wǎng)情況下,為控水器工作提供時間。

所述顯示模塊用于顯示控水器的工作狀態(tài)、報警信息等信息。

所述讀寫卡模塊,用于對控水器所支持的卡片進行讀寫操作。

另一方面,控水器和控制軟件之間通過無線網(wǎng)絡(luò)進行數(shù)據(jù)交互,使控水器可以將各種數(shù)據(jù)通過基于mqtt協(xié)議的無線通訊裝置上傳到控制軟件上,控制軟件也可以通過基于mqtt協(xié)議的無線通訊裝置直接控制控水器完成各種操作,并可以將各種數(shù)據(jù)下載到控水器中。具體的:

所述控水器上電后,核心處理器開始運行,首先,核心處理器檢測各部分硬件模塊的工作情況,如果存在硬件異常,核心處理器給出相應(yīng)的報警提示,并通過無線通訊裝置利用mqtt協(xié)議的發(fā)布信息模式將報警提示信息發(fā)送給控制軟件。

如果不存在異常,控水器進入正常工作狀態(tài),并定期將控水器的工作狀態(tài)通過無線通訊裝置利用mqtt協(xié)議的發(fā)布信息模式將所述控水器工作狀態(tài)信息發(fā)送給控制軟件。其中,所述消息發(fā)布模式采用“至多一次”的發(fā)送形式進行控水器工作狀態(tài)信息的發(fā)送,這種發(fā)送形式有利于減少網(wǎng)絡(luò)流量,減少網(wǎng)絡(luò)占用空間。

所述控水器的工作模式主要包括計費類型如計時型、計量型、計次型等;閥門控制類型如電動閥、電磁閥、防剪斷閥等;消費單價、身份信息、計費單位等。所述控水器的工作模式可以通過控制軟件設(shè)定或更改,當(dāng)控制軟件需要對控水器的工作模式進行設(shè)定或更改時,控制軟件通過無線通訊裝置利用mqtt協(xié)議的發(fā)布消息模式向控水器下發(fā)工作模式設(shè)定或更改信息,其中,此時所述mqtt協(xié)議的發(fā)布消息模式采用至少一次”的發(fā)送形式向控水器發(fā)送工作模式設(shè)定或更改信息。另一方面,控制器需要設(shè)定或更改工作模式時,所述控水器通過無線通訊裝置利用mqtt協(xié)議的訂閱消息模式獲取工作模式設(shè)定或更改信息;所述訂閱消息模式采用“至少一次”的獲取形式進行工作模式設(shè)定或更改信息的獲取,確保信息的到達(dá)。

控水器正常工作的情況下,控水器檢測到有卡片刷卡時,控水器的讀寫卡模塊讀取卡片上的用戶信息,判斷是否本控水器的用戶卡,如果是本控水器的用戶卡,所述控水器通過無線通訊裝置利用mqtt協(xié)議的訂閱消息模式向控制軟件獲取用戶賬戶信息;所述訂閱消息模式采用“至少一次”的獲取形式進行用戶賬戶信息的獲取??刂栖浖袛嘤脩粜畔⒂行Ш螅ㄟ^無線通訊裝置給控水器下傳賬戶相關(guān)信息及預(yù)扣金額。隨后,控水器打開閥門,開始計費,并在計費過程中,通過顯示模塊顯示計費的金額或?qū)?yīng)消費量。

在結(jié)束消費時,控水器有兩種模式結(jié)束消費:第一種模式,檢測到用戶卡二次刷卡,找錢后結(jié)束消費;第二種模式,預(yù)扣金額消費完。結(jié)束消費后,控水器控制閥門關(guān)閉,同時生成消費流水信息,隨后控水器將消費流水信息利用無線通訊裝置通過mqtt協(xié)議的發(fā)布消息模式上傳給系統(tǒng)軟件,所述消息發(fā)布模式采用“只有一次”的發(fā)送形式進行消費流水信息的發(fā)送。

在控水器正常工作并聯(lián)網(wǎng)的狀態(tài)下,系統(tǒng)控制軟件可以對控水器進行開發(fā)、關(guān)閥操作;進行加鎖、解鎖操作,在加鎖狀態(tài)下,控水器停止接受刷卡消費。這些操作通過mqtt協(xié)議的發(fā)布消息模式下發(fā)給控水器。系統(tǒng)軟件可以主動采集控水器的狀態(tài),通過mqtt協(xié)議的訂閱消息模式向控水器獲取。

雖然本發(fā)明已以較佳的實施例公開如上,但其并非用以限定本發(fā)明,任何熟悉此技術(shù)的人,在不脫離本發(fā)明的精神和范圍內(nèi),都可以做各種改動和修飾,因此本發(fā)明的保護范圍應(yīng)該以權(quán)利要求書所界定的為準(zhǔn)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1