□趙九洲 李玉玲 周小波 曾文明 李光輝 阮紅麗 盧珍 梁君
/四川省農(nóng)業(yè)機(jī)械研究設(shè)計(jì)院
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展成熟,遠(yuǎn)程管理使分布廣泛的農(nóng)村小型提灌站的管理變得簡單起來,同時(shí)也節(jié)省了大量的人力成本。本文基于中國移動(dòng)提供的物聯(lián)網(wǎng)云平臺OneNET和開源Arduino硬件等技術(shù)進(jìn)行了農(nóng)村小型提灌站遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)研究。
OneNET是中國移動(dòng)推出的物聯(lián)網(wǎng)開放云平臺,作為物聯(lián)網(wǎng)系統(tǒng)中的傳輸層,它向開發(fā)者提供智能硬件開發(fā)工具和云服務(wù),各類終端設(shè)備可以方便地接入到網(wǎng)絡(luò),實(shí)現(xiàn)數(shù)據(jù)的傳輸、存儲(chǔ)和管理等交互。平臺能夠幫助開發(fā)者輕松實(shí)現(xiàn)設(shè)備的接入與連接,快速方便地進(jìn)行產(chǎn)品開發(fā)部署,為智能硬件等產(chǎn)品提供完整的物聯(lián)網(wǎng)解決方案。支持多種物聯(lián)網(wǎng)行業(yè)及主流標(biāo)準(zhǔn)協(xié)議的設(shè)備接入;同時(shí)還提供了Java、C語言等多種語言的開發(fā)SDK,能夠幫助終端快速接入云平臺和快速開發(fā)應(yīng)用。OneNET作為平臺服務(wù)層,為軟件服務(wù)層和設(shè)施設(shè)備層搭建了連接橋梁,分別向上下游提供了中間層核心能力。
OneNET的接入?yún)f(xié)議包括EDP、MQTT、TCP透傳等。終端主要通過TCP與OneNET直連,OneNET將接收到的數(shù)據(jù)按照協(xié)議解包然后存儲(chǔ),并以API的方式提供給應(yīng)用層使用,OneNET應(yīng)用如圖1所示。
根據(jù)上述資源模型以及對接方式,筆者基于OneNET平臺按照以下流程進(jìn)行了產(chǎn)品開發(fā),如圖2所示。
圖 1OneNET應(yīng)用示意圖
圖 2 產(chǎn)品開發(fā)流程圖
接入OneNET云平臺的硬件可以是各種可聯(lián)網(wǎng)的設(shè)備,比如各種單片機(jī)、手機(jī)等。這里選擇Arduino單片機(jī)作為硬件單元。Arduino是一款便捷靈活、方便上手的開源電子原型平臺,可以用來開發(fā)交互式智能產(chǎn)品,包含兩個(gè)主要部分:硬件部分Arduino電路板和ArduinoIDE程序開發(fā)環(huán)境。Arduino電路板可以連接各種傳感器,板子上的微控制器可以通過Arduino的編程語言來編寫程序,編譯成二進(jìn)制文件,燒錄進(jìn)微控制器。
Arduino編程環(huán)境可以完美兼容MacintoshOSX,Windows和Linux等操作系統(tǒng),同時(shí)Arduino控制板價(jià)格低廉,既可親自組裝,也可以購買完整成品。它的軟件是開源的,程序員可以根據(jù)需要對其進(jìn)行擴(kuò)展。Arduino編程環(huán)境也很簡易,可以很容易學(xué)會(huì)并熟練使用。
圖 3 系統(tǒng)結(jié)構(gòu)
SIM868通信模塊是SIMCOM公司推出的通信模塊,其性能優(yōu)越,體積小巧。該模塊實(shí)現(xiàn)了完整的四頻段GSM/GPRS,同時(shí)集成了GPS和藍(lán)牙技術(shù)??梢缘凸膶?shí)現(xiàn)語音、短信、GPRS數(shù)據(jù)、藍(lán)牙數(shù)據(jù)傳輸和高性能全球定位,支持GPS、北斗和GLONASS三大定位系統(tǒng)。目前免費(fèi)提供基站定位。
農(nóng)村小型提灌站逐年增多,大量的小型提灌站需要進(jìn)行管理,傳統(tǒng)的各村社安排人員看護(hù)費(fèi)時(shí)費(fèi)力。隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展成熟,通過物聯(lián)網(wǎng)遠(yuǎn)程管理分布廣泛的農(nóng)村小型提灌站成為可能。本系統(tǒng)基于中國移動(dòng)提供的物聯(lián)網(wǎng)云平臺OneNET和Arduino環(huán)境進(jìn)行相關(guān)應(yīng)用的探索與設(shè)計(jì)。
本系統(tǒng)監(jiān)控終端選用Arduinomega2560作為主控板,該主板處理器核心是ATmega2560,具有54路數(shù)字輸入輸出口和16路模擬輸入,非常適合需要大量I/O接口應(yīng)用的設(shè)計(jì)。該系統(tǒng)中主板需要接入電流、電壓、管道流量、壓力、進(jìn)水池液位和門禁開關(guān)傳感器以及兩路繼電器;電流電壓傳感器用于監(jiān)測電機(jī)的運(yùn)行狀態(tài),流量壓力傳感器用于監(jiān)測出水管道的狀態(tài),進(jìn)水池液位傳感器用于監(jiān)測進(jìn)水池水位水量情況,門禁開關(guān)檢測用于檢測泵站的門是否被打開,兩路繼電器分別用于水泵管道閥門和水泵機(jī)組的開關(guān)控制。
主控板讀取分析傳感器數(shù)據(jù)來控制繼電器的開關(guān),繼而控制水泵機(jī)組和電磁閥門的開關(guān),同時(shí)通過SIM868通信模塊將數(shù)據(jù)傳輸至OneNET云平臺。OneNET云平臺作為服務(wù)器,通過GPRS與SIM868通信模塊交換信息;同時(shí),基于OneNET平臺提供的API開發(fā)出跨平臺的應(yīng)用系統(tǒng),手機(jī)等客戶端設(shè)備可通過應(yīng)用系統(tǒng)實(shí)現(xiàn)與Arduino通信,從而達(dá)到監(jiān)控的目的。系統(tǒng)結(jié)構(gòu)如圖3所示。
1)OneNET云服務(wù)器設(shè)計(jì)如圖4所示。首先在OneNET云端通過用戶注冊,使用其提供的數(shù)據(jù)模板添加電流、電壓、流量、壓力、繼電器開關(guān)、位置的數(shù)據(jù)參數(shù),用以存儲(chǔ)終端設(shè)備Arduino物理層發(fā)送的數(shù)據(jù)。
圖 4 OneNET云服務(wù)器設(shè)計(jì)
圖 5 客戶端應(yīng)用系統(tǒng)
然后利用OneNET平臺提供的API開發(fā)簡單的客戶端應(yīng)用系統(tǒng)并發(fā)布到平臺上,客戶可以通過手機(jī)、PC等訪問平臺,通過平臺可以實(shí)現(xiàn)遠(yuǎn)程控制Arduino單片機(jī)和查看相關(guān)的數(shù)據(jù),客戶端應(yīng)用系統(tǒng)如圖5所示。
2)Arduino設(shè)備端主要程序設(shè)計(jì)。Arduino通過I/O口與管道流量、壓力傳感器、進(jìn)水池液位傳感器、水泵機(jī)組的電流電壓傳感器、繼電器連接,讀取傳感器的數(shù)據(jù)并發(fā)送至OneNET云平臺供客戶端應(yīng)用查看使用,同時(shí)接收OneNET轉(zhuǎn)發(fā)的客戶端應(yīng)用發(fā)出的控制命令,從而控制繼電器工作。主程序使用C語言在ArduinoIDE開發(fā)環(huán)境中完成編寫,然后將程序編譯燒錄到Arduinomega2560主板上。
程序的主要功能函數(shù)如圖6所示。
本文通過對Arduino單片機(jī)和OneNET云平臺的學(xué)習(xí)研究,搭建了小型泵站的遠(yuǎn)程監(jiān)控系統(tǒng),實(shí)現(xiàn)了對小型泵站的遠(yuǎn)程監(jiān)控與管理。與傳統(tǒng)的自建服務(wù)器、開發(fā)上位機(jī)接收數(shù)據(jù)相比,云平臺的應(yīng)用能節(jié)省大量的人力物力等資源,同時(shí),其運(yùn)行更加穩(wěn)定、功能更加豐富,跨平臺開發(fā)更加方便。將物聯(lián)網(wǎng)技術(shù)運(yùn)用到傳統(tǒng)農(nóng)業(yè)中去,運(yùn)用傳感器和軟件通過移動(dòng)平臺或者電腦平臺對農(nóng)業(yè)生產(chǎn)進(jìn)行控制,能使傳統(tǒng)農(nóng)業(yè)生產(chǎn)更加高效便捷。
圖 6 程序的主要功能函數(shù)