999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MQTT協(xié)議的智慧農(nóng)場(chǎng)智能化管理系統(tǒng)

2018-09-07 02:31:52
關(guān)鍵詞:單片機(jī)智慧

(四川大學(xué)錦城學(xué)院 計(jì)算機(jī)與軟件學(xué)院,成都 610041)

引 言

將智慧農(nóng)場(chǎng)作為一個(gè)實(shí)際項(xiàng)目用來開發(fā)研究,就需要在硬件、所用協(xié)議這些方面作出選擇,開發(fā)人員要根據(jù)實(shí)際情況,在考慮成本、功耗、可靠性和可操作性等方面提出較為優(yōu)化的方案。在本文中,筆者選用的開發(fā)環(huán)境以STM32開發(fā)板作為基礎(chǔ),運(yùn)用RS485總線及MODBUS協(xié)議將農(nóng)場(chǎng)中各傳感器串聯(lián)后接入單片機(jī),以外接的W5500模塊實(shí)現(xiàn)STM32開發(fā)板到服務(wù)器的連接通信,最后采用MQTT協(xié)議實(shí)現(xiàn)農(nóng)場(chǎng)數(shù)據(jù)的遠(yuǎn)程監(jiān)控和命令接收,并通過STM32開發(fā)板上另一外接模塊——繼電器執(zhí)行接收到的命令。開發(fā)環(huán)境連接結(jié)構(gòu)概念圖如圖1所示。

圖1 開發(fā)環(huán)境連接結(jié)構(gòu)概念圖

1 智慧農(nóng)場(chǎng)及MQTT協(xié)議說明

1.1 智慧農(nóng)場(chǎng)簡(jiǎn)介

智慧農(nóng)場(chǎng)就是運(yùn)用一系列嵌入式技術(shù),如傳感器技術(shù)、實(shí)時(shí)操作系統(tǒng)多任務(wù)技術(shù)、單片機(jī)技術(shù)、物聯(lián)網(wǎng)技術(shù)等實(shí)現(xiàn)農(nóng)場(chǎng)環(huán)境數(shù)據(jù)化并遠(yuǎn)程傳輸,保證了對(duì)農(nóng)場(chǎng)情況的實(shí)時(shí)有效監(jiān)控,更加利于農(nóng)場(chǎng)中作物的生長(zhǎng)。在智慧農(nóng)場(chǎng)中,一切的行為基于數(shù)據(jù),農(nóng)作物的生長(zhǎng)依靠數(shù)據(jù)監(jiān)控,不同于以往依據(jù)經(jīng)驗(yàn)對(duì)作物的環(huán)境進(jìn)行選擇或改變,如此標(biāo)準(zhǔn)化生產(chǎn)能夠提供給作物最適合的環(huán)境,培養(yǎng)出最優(yōu)質(zhì)的作物。

智慧農(nóng)場(chǎng)是現(xiàn)代農(nóng)業(yè)發(fā)展的必然趨勢(shì),它通過數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)傳輸、數(shù)據(jù)應(yīng)答這幾個(gè)步驟,對(duì)農(nóng)場(chǎng)環(huán)境有效監(jiān)控并根據(jù)不同環(huán)境變化進(jìn)行遠(yuǎn)程硬件控制來改變農(nóng)場(chǎng)環(huán)境,使得農(nóng)場(chǎng)決策更加智能有效,管理更加精準(zhǔn)高效。

1.2 MQTT協(xié)議簡(jiǎn)介

MQTT協(xié)議是一個(gè)支持所有平臺(tái),幾乎可以把所有聯(lián)網(wǎng)物品和外部連接起來,通過特定的主題進(jìn)行數(shù)據(jù)發(fā)布/訂閱的工具。在智慧農(nóng)場(chǎng)中通過該協(xié)議將傳感器采集并匯集在STM32開發(fā)板上的各項(xiàng)數(shù)據(jù)在云服務(wù)器中進(jìn)行發(fā)布,通過手機(jī)APP端進(jìn)行訂閱,實(shí)時(shí)遠(yuǎn)程監(jiān)控各項(xiàng)數(shù)據(jù)。同時(shí)也可以通過手機(jī)APP端進(jìn)行農(nóng)場(chǎng)操作命令的發(fā)布,由STM32開發(fā)板進(jìn)行訂閱后對(duì)命令進(jìn)行解析,控制農(nóng)場(chǎng)中的硬件執(zhí)行相應(yīng)動(dòng)作。

MQTT協(xié)議中獨(dú)特的發(fā)布/訂閱模式使發(fā)布者與訂閱者之間沒有直接關(guān)系,不需要建立直接的連接,只需要通過同一個(gè)消息代理即可進(jìn)行消息的通信,且在消息傳輸過程中發(fā)布者不會(huì)被鎖定,訂閱者也可以隨時(shí)選擇時(shí)間進(jìn)行消息的訂閱,使得消息的傳輸更加自由。在一定程度上來說,MQTT協(xié)議就如同電子郵箱,作為收件人與發(fā)件人交流的平臺(tái),提供了一個(gè)消息的容器,但卻并不會(huì)妨礙雙方的取出和繼續(xù)放入。MQTT系統(tǒng)模型圖如圖2所示。

圖2 MQTT系統(tǒng)模型圖

2 智慧農(nóng)場(chǎng)網(wǎng)絡(luò)通信實(shí)現(xiàn)

傳感器數(shù)據(jù)在采集完成后均需通過RS485總線的傳輸傳送到單片機(jī)上,由單片機(jī)進(jìn)行數(shù)據(jù)的匯總后再打包通過網(wǎng)絡(luò)發(fā)布,因此實(shí)現(xiàn)單片機(jī)的網(wǎng)絡(luò)通信是MQTT協(xié)議移植實(shí)現(xiàn)的前提條件。由于STM32開發(fā)板并無網(wǎng)絡(luò)模塊,所以為了使其能夠聯(lián)網(wǎng)與服務(wù)器進(jìn)行數(shù)據(jù)交互,在實(shí)際開發(fā)過程中需要外接一片W5500有線網(wǎng)絡(luò)連接模塊。W5500 芯片是一款集成全硬件 TCP/IP協(xié)議棧的嵌入式以太網(wǎng)控制器,為單片機(jī)提供了更加簡(jiǎn)單、快速、穩(wěn)定、安全的以太網(wǎng)接入方案。其與STM32開發(fā)板采用SPI接口進(jìn)行連接,然后借助TCP/IP協(xié)議,在已知服務(wù)器的IP地址及所用端口號(hào)的情況下,與服務(wù)器進(jìn)行點(diǎn)對(duì)點(diǎn)的即時(shí)信息傳輸。

農(nóng)場(chǎng)網(wǎng)絡(luò)通信這一部分的設(shè)計(jì)可以分為服務(wù)器通信和網(wǎng)絡(luò)連接兩個(gè)小模塊,分別實(shí)現(xiàn)W5500模塊通過TCP/IP協(xié)議與外接設(shè)備通信和W5500模塊聯(lián)網(wǎng)這兩個(gè)功能。在開發(fā)初期可先使用計(jì)算機(jī)作為服務(wù)器,將W5500模塊通過網(wǎng)線與計(jì)算機(jī)實(shí)現(xiàn)硬件連通,然后借用YAT軟件實(shí)現(xiàn)計(jì)算機(jī)到服務(wù)器的模擬,將連接和通信過程可視化,在YAT軟件端輸出一串字符并通過回傳機(jī)制再次在YAT中打印出來,測(cè)試W5500模塊的傳輸功能是否實(shí)現(xiàn),完成第一個(gè)小模塊的設(shè)計(jì)。W5500模塊傳輸功能測(cè)試圖如圖3所示。

圖3 W5500模塊傳輸功能測(cè)試圖

在確定W5500模塊傳輸功能無誤后,便可進(jìn)入第二個(gè)小模塊的設(shè)計(jì)。將W5500模塊通過網(wǎng)線與農(nóng)場(chǎng)中的路由器進(jìn)行有線連接,使其能夠通過網(wǎng)絡(luò)遠(yuǎn)程連接云服務(wù)器,這個(gè)過程中可以采用PUTTY軟件對(duì)遠(yuǎn)程云服務(wù)器是否接收到消息進(jìn)行監(jiān)聽。在PUTTY中登陸項(xiàng)目的云服務(wù)器,通過nc對(duì)該云服務(wù)器中在代碼段內(nèi)被設(shè)置的端口進(jìn)行監(jiān)聽,同時(shí)也可在PUTTY中直接通過該端口向STM32開發(fā)板端發(fā)送消息,由W5500模塊接收并在串口中打印回傳。可參考WIZNET官網(wǎng)中的STM32+W5500實(shí)現(xiàn)客戶端的代碼,這樣就完成了MQTT協(xié)議移植的前提工作。PUTTY軟件監(jiān)聽服務(wù)器連接圖如圖4所示。

圖4 PUTTY軟件監(jiān)聽服務(wù)器連接圖

3 MQTT移植實(shí)現(xiàn)

3.1 MQTT代碼包移植

圖6 串口打印信息

圖5 MQTT協(xié)議包移植圖

在確認(rèn)STM32開發(fā)板可經(jīng)由W5500模塊聯(lián)網(wǎng)與云服務(wù)器進(jìn)行通信后,即可開始做代碼段中MQTT協(xié)議的移植了。MQTT協(xié)議的移植首先需要從eclipse paho中的Embedded MQTT C/C++ Client Libraries中下載MQTT協(xié)議的代碼包,將代碼包中的MQTTClient及MQTTPacket文件夾以包的形式添加到W5500的工程中。MQTTClient包中只需包含原文件夾中名為MQTTClient.c和MQTTClient.h的文件即可,而在MQTTPacket包中則需包含原文件夾中src目錄下的所有.c和.h文件。除此之外,MQTTClient包中還需根據(jù)MQTTClient.c中程序的需要新編寫一個(gè).c程序及其對(duì)應(yīng)的.h文件,根據(jù)項(xiàng)目實(shí)際情況可命名為MQTTInterface.c和MQTTInterface.h,主要目的為對(duì)MQTTClient.c程序中出現(xiàn)的函數(shù)及類進(jìn)行定義,使其可以正常使用。至此,MQTT協(xié)議的植所需要新添加的包及文件已添加完畢,但需要注意的是在進(jìn)行MQTTInterface.c和MQTTInterface.h的編寫時(shí)需要耐心對(duì)照,認(rèn)真剖析MQTTClient.c文件中各個(gè)函數(shù)的功能和作用。MQTT協(xié)議包移植圖如圖5所示。

3.2 主函數(shù)編寫

包移植完成后開始編寫主函數(shù),主函數(shù)編寫可直接在W5500工程的main.c文件中完成。在原有基礎(chǔ)上,將移植了MQTT協(xié)議后添加的庫(kù)文件名加入頭部,再將main函數(shù)中的自while語句開始的執(zhí)行回環(huán)功能的代碼部分進(jìn)行刪除。然后調(diào)用MQTT協(xié)議相關(guān)的MQTTConnect、MQTTSubscribe和MQTTPublish等函數(shù),實(shí)現(xiàn)STM32開發(fā)板端對(duì)MQTT的連接和對(duì)MQTT協(xié)議發(fā)布/訂閱的運(yùn)用,并可在調(diào)用成功后加入打印的語句,將調(diào)用成功的信息通過串口打印進(jìn)行提示。最后在main函數(shù)之前編寫一個(gè)對(duì)接收到的消息進(jìn)行打印的messageArrived函數(shù),messageArrived函數(shù)和main函數(shù)的編寫都可借鑒之前下載的MQTT協(xié)議代碼包中的MQTTClient-C目錄下的sample目錄中的MQTTEcho.c文件,至此便基本完成了MQTT協(xié)議基于STM32開發(fā)板的移植。串口打印信息如圖6所示。

3.3 移植實(shí)現(xiàn)測(cè)試

在代碼編寫完成并且串口能將預(yù)設(shè)的信息進(jìn)行打印時(shí),便可使用MQTT.fx軟件登陸云服務(wù)器對(duì)其進(jìn)行MQTT協(xié)議的運(yùn)用。MQTT.fx是一款常用的MQTT協(xié)議調(diào)試軟件,包含了MQTT常見的發(fā)布/訂閱兩個(gè)選項(xiàng),可在設(shè)置中輸入自己的云服務(wù)器地址及發(fā)布/訂閱的topic后進(jìn)行連接。在這里可以通過MQTT.fx對(duì)STM32開發(fā)板端發(fā)布的各項(xiàng)傳感器數(shù)據(jù)進(jìn)行訂閱,也可在發(fā)布選項(xiàng)中向STM32開發(fā)板端發(fā)布一些命令,由單片機(jī)端進(jìn)行訂閱后解析執(zhí)行。MQTT.fx訂閱單片機(jī)端數(shù)據(jù)圖如圖7所示。MQTT.fx發(fā)布命令圖如圖8所示。

圖7 MQTT.fx訂閱單片機(jī)端數(shù)據(jù)圖

圖8 MQTT.fx發(fā)布命令圖

結(jié) 語

MQTT的設(shè)計(jì)思想是開源、可靠、輕巧、簡(jiǎn)單,這在一定程度上拓寬了其應(yīng)用范圍,而且由于開源,符合智慧農(nóng)場(chǎng)中低成本的要求,且它擁有QOS0、QOS1和QOS2三種不同的服務(wù)質(zhì)量,可以保證消息傳輸?shù)目煽啃裕脩艨稍诘谝粫r(shí)間了解農(nóng)場(chǎng)中的環(huán)境變化,以便盡快發(fā)布命令,由STM32開發(fā)板端控制農(nóng)場(chǎng)中的硬件做出相應(yīng)的操作。這就最大限度地保證了農(nóng)場(chǎng)環(huán)境可以保持在最適合作物生長(zhǎng)的各項(xiàng)數(shù)值范圍內(nèi),同時(shí)也保證了各項(xiàng)資源 的高效利用,從而實(shí)現(xiàn)智慧農(nóng)場(chǎng)的開發(fā)目標(biāo)。并且因?yàn)镸QTT協(xié)議無需訂閱者與發(fā)布者進(jìn)行直連,這在一定程度上降低了農(nóng)場(chǎng)設(shè)備隨時(shí)進(jìn)行消息傳輸?shù)墓模鰪?qiáng)了農(nóng)場(chǎng)通過移動(dòng)設(shè)備進(jìn)行遠(yuǎn)程操控的可行性。

猜你喜歡
單片機(jī)智慧
基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機(jī)的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機(jī)的便捷式LCF測(cè)量?jī)x
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機(jī)之間的串行通信及應(yīng)用
電子制作(2018年12期)2018-08-01 00:48:04
基于單片機(jī)的平衡控制系統(tǒng)設(shè)計(jì)
電子制作(2017年19期)2017-02-02 07:08:27
Microchip推出兩個(gè)全新PIC單片機(jī)系列
有智慧的羊
智慧派
智慧決定成敗
主站蜘蛛池模板: a天堂视频在线| 亚洲精品片911| 久久亚洲美女精品国产精品| 人妻一区二区三区无码精品一区| 亚洲自偷自拍另类小说| 专干老肥熟女视频网站| 国产91成人| 福利国产在线| 色综合天天综合中文网| 丝袜高跟美脚国产1区| 高h视频在线| 精品剧情v国产在线观看| 国产精品私拍在线爆乳| 找国产毛片看| 日本欧美中文字幕精品亚洲| 欧美激情网址| 亚洲成网站| 色天天综合久久久久综合片| 欧美视频免费一区二区三区| 毛片大全免费观看| 在线观看无码av五月花| 国产精品人成在线播放| 国产成人亚洲毛片| 亚洲AV一二三区无码AV蜜桃| 无码啪啪精品天堂浪潮av| 日韩精品专区免费无码aⅴ| 亚洲不卡网| 国产亚洲视频中文字幕视频 | 国产亚洲精品自在线| 九九免费观看全部免费视频| 四虎永久在线视频| 久久久国产精品无码专区| 免费毛片视频| 亚洲视频二| 亚洲欧美天堂网| 国产91九色在线播放| 亚洲中文字幕在线观看| 2048国产精品原创综合在线| 亚洲精品国产日韩无码AV永久免费网| 欧美成a人片在线观看| 2019国产在线| 国产亚洲视频免费播放| 色噜噜狠狠色综合网图区| 亚洲成人在线免费观看| 欧美亚洲一区二区三区在线| 亚洲精品综合一二三区在线| 中文无码日韩精品| 在线观看91精品国产剧情免费| 亚洲天堂首页| 国产va在线观看免费| 一级成人欧美一区在线观看| 亚洲精品麻豆| 制服丝袜在线视频香蕉| 亚洲国产日韩一区| 午夜视频www| 亚洲,国产,日韩,综合一区 | 亚洲人妖在线| 精品91视频| 熟妇人妻无乱码中文字幕真矢织江| 国产一区二区三区在线观看免费| 欧美笫一页| 无码aⅴ精品一区二区三区| 91免费精品国偷自产在线在线| 精品一区二区三区中文字幕| yjizz视频最新网站在线| 亚洲黄色视频在线观看一区| 国产成人精品日本亚洲| 国产剧情国内精品原创| 99热这里只有精品国产99| 91精品视频网站| 一级片一区| 日本影院一区| 97久久超碰极品视觉盛宴| 中文字幕无码中文字幕有码在线 | 精品国产网站| 内射人妻无码色AV天堂| 国产精品亚欧美一区二区| 欧美在线国产| 拍国产真实乱人偷精品| 日韩欧美国产成人| 成人一级黄色毛片| 一区二区三区四区精品视频|