彭小紅,邢旭峰,曾宏俊
(廣東海洋大學(xué)數(shù)學(xué)與計(jì)算機(jī)學(xué)院,湛江 524088)
基于OneNet物聯(lián)網(wǎng)云平臺(tái)的智能養(yǎng)殖系統(tǒng)
彭小紅,邢旭峰,曾宏俊
(廣東海洋大學(xué)數(shù)學(xué)與計(jì)算機(jī)學(xué)院,湛江 524088)
針對(duì)工廠化水產(chǎn)養(yǎng)殖智能化的需求,提出一個(gè)以Arduino單片機(jī)為輔,手機(jī)終端和網(wǎng)頁(yè)終端為主的智能養(yǎng)殖方案,并基于中國(guó)移動(dòng)推出的OneNet物聯(lián)網(wǎng)云平臺(tái)設(shè)計(jì)開(kāi)發(fā)智能養(yǎng)殖控制系統(tǒng)。系統(tǒng)利用太陽(yáng)能進(jìn)行供電,實(shí)時(shí)檢測(cè)養(yǎng)殖水環(huán)境參數(shù),通過(guò)網(wǎng)頁(yè)和手機(jī)App控制養(yǎng)殖終端設(shè)備,實(shí)現(xiàn)養(yǎng)殖智能化和節(jié)約能源的目標(biāo)。
水產(chǎn)養(yǎng)殖;智能控制;太陽(yáng)能;OneNet云平臺(tái);手機(jī)終端控制
隨著計(jì)算機(jī)物聯(lián)網(wǎng)技術(shù)、能源開(kāi)發(fā)技術(shù)的發(fā)展,水產(chǎn)養(yǎng)殖的智能化程度越來(lái)越高,新型能源逐步進(jìn)入人們的生活,云的概念也逐漸為人們所熟知,人們希望隨時(shí)隨地控制水產(chǎn)養(yǎng)殖,創(chuàng)造更加智能化,人性化,節(jié)約化的水產(chǎn)養(yǎng)殖方式。智能設(shè)備通過(guò)Wi-Fi、藍(lán)牙、GSM、有線網(wǎng)絡(luò)等多種方式控制各類電器以及檢測(cè)環(huán)境參數(shù)。再結(jié)合新型能源和物聯(lián)網(wǎng)云平臺(tái)的使用,有效地克服了傳統(tǒng)水產(chǎn)養(yǎng)殖控制方式麻煩、功能單一、用戶體驗(yàn)差、成本高、能耗大等缺陷。基于新型能源、物聯(lián)網(wǎng)云平臺(tái)及智能設(shè)備三者的智能水產(chǎn)養(yǎng)殖控制系統(tǒng)將成為未來(lái)發(fā)展的趨勢(shì)。
目前國(guó)內(nèi)基于物聯(lián)網(wǎng)的魚(yú)缸智能控制大多以51單片機(jī)/STM32/ARM為控制核心,利用傳感器感知技術(shù)采集生態(tài)環(huán)境信息,并將采集數(shù)據(jù)通過(guò)ZigBee傳輸技術(shù)發(fā)送至控制中心節(jié)點(diǎn),然后通過(guò)數(shù)據(jù)通信網(wǎng)關(guān)上傳到后臺(tái)服務(wù)器,最終由服務(wù)器將控制命令發(fā)往各個(gè)設(shè)備終端節(jié)點(diǎn),實(shí)現(xiàn)魚(yú)缸環(huán)境的自動(dòng)調(diào)節(jié)或通過(guò)物聯(lián)網(wǎng)控制網(wǎng)關(guān)實(shí)現(xiàn)與控制板之間的串口通信,由無(wú)線路由器或者Wi-Fi模塊發(fā)送無(wú)線信號(hào),并通過(guò)Web或者手機(jī)App終端實(shí)現(xiàn)對(duì)智能魚(yú)缸的遠(yuǎn)程無(wú)線控制[1-7]。
針對(duì)工廠化水產(chǎn)養(yǎng)殖智能化、節(jié)能的需求,本文提出一個(gè)以Arduino單片機(jī)為輔,OneNet物聯(lián)網(wǎng)云平臺(tái)和手機(jī)終端為主的智能工廠養(yǎng)殖控制方案,設(shè)計(jì)開(kāi)發(fā)了基于新型能源、物聯(lián)網(wǎng)云平臺(tái)及智能設(shè)備的智能工廠養(yǎng)殖控制系統(tǒng),不僅實(shí)現(xiàn)了遠(yuǎn)程開(kāi)關(guān),多模式控制,環(huán)境參數(shù)的檢測(cè)和警報(bào)的功能,還通過(guò)使用太陽(yáng)能板采集光、蓄電池供電的方式,實(shí)現(xiàn)控制的節(jié)能化,此外由于中國(guó)移動(dòng)推出的OneNet云平臺(tái)對(duì)于個(gè)人用戶是免費(fèi)的,即便是企業(yè)用戶也大大降低了服務(wù)器維護(hù)和服務(wù)器硬件的成本。太陽(yáng)能和云平臺(tái)的結(jié)合使用使控制系統(tǒng)的成本盡可能降到最低。
本設(shè)計(jì)以Arduino mega2560控制器為核心,加上電源轉(zhuǎn)換擴(kuò)展板模塊、光照強(qiáng)度檢測(cè)模塊、水位檢測(cè)模塊、水溫檢測(cè)模塊、溶解氧檢測(cè)模塊、PH值檢測(cè)模塊、Wi-Fi通信模塊、太陽(yáng)能控制器模塊、抽水泵、燈光、增氧機(jī)、投餌機(jī)、恒溫器等構(gòu)成了整個(gè)智能養(yǎng)殖控制系統(tǒng)。其中供電系統(tǒng)由太陽(yáng)能控制器、太陽(yáng)能板和蓄電池組成。由于采用的用電器有1.5V,5V及12V三種電壓,因此專門設(shè)計(jì)了電源電壓轉(zhuǎn)換擴(kuò)展板模塊。Arduino使用USB供電線接入太陽(yáng)能控制器的usb供電口,擴(kuò)展板正負(fù)極跟太陽(yáng)能用電器正負(fù)極對(duì)應(yīng)相接,太陽(yáng)能板也跟太陽(yáng)能控制器正負(fù)接口對(duì)應(yīng)相接,從而實(shí)現(xiàn)整個(gè)系統(tǒng)的供電。實(shí)現(xiàn)功能主要有:通過(guò)手機(jī)App或者網(wǎng)頁(yè)平臺(tái)對(duì)光照強(qiáng)度、水位、水溫、溶解氧、PH值等參數(shù)的檢測(cè)和警報(bào)以及對(duì)抽水泵、燈光、增氧機(jī)、投餌機(jī)、恒溫器等用電器的控制。智能控制系統(tǒng)整體框圖如圖1所示。
圖1 智能養(yǎng)殖控制系統(tǒng)整體框圖
本系統(tǒng)硬件部分主要包括以Arduino mega2560為主控制器單元的最小系統(tǒng)、電源轉(zhuǎn)換擴(kuò)展板模塊、光照強(qiáng)度檢測(cè)模塊、水位檢測(cè)模塊、水溫檢測(cè)模塊、溶解氧檢測(cè)模塊、PH值檢測(cè)模塊,四路繼電器模塊、一路光耦繼電器模塊、Wi-Fi通信模塊,終端設(shè)備有抽水泵模塊、燈光模塊、增氧機(jī)模塊、投餌機(jī)模塊、加熱棒模塊等。
系統(tǒng)采用Arduino Mega2560單片機(jī),它是基于AVR指令集的8位單片機(jī),具有54路數(shù)字輸入/輸出口(其中16路可作為PWM輸出),16路模擬輸入,4路UART接口,一個(gè)16MHz晶體振蕩器,一個(gè)USB口,一個(gè)電源插座,一個(gè)ICSP header和一個(gè)復(fù)位按鈕,特別適合需要大量I/O接口的設(shè)計(jì)[8-13]。本設(shè)計(jì)的Arduino mega2560單片機(jī)的最小系統(tǒng)有晶振模塊、復(fù)位模塊和電源模塊。如圖2所示。
圖2 單片機(jī)最小系統(tǒng)圖
該模塊使用了兩個(gè)子模塊。分別是AMS1117-1.5電源模塊和AMS1117-5.0降壓模塊。兩者的最大輸出電流均為800mA,AMS1117-1.5電源模塊的作用是DC 5V轉(zhuǎn)直流DC 1.5V;AMS1117-5.0降壓模塊的作用是DC 12V轉(zhuǎn)DC 5V。利用這兩個(gè)模塊將擴(kuò)展板分隔成三個(gè)區(qū)域,分別是①+1.5V GND②+5V GND③+12V GND。
擴(kuò)展板+12V接太陽(yáng)能控制器用電器的‘+’,與擴(kuò)展板+12V對(duì)應(yīng)的GND接太陽(yáng)控制器的‘-’。在+12V和+5V之間采用AMS1117-5.0降壓模塊連接,在+5V和+1.5V之間采用AMS1117-1.5連接。從而滿足本設(shè)計(jì)中三種電壓的供電需求。AMS1117-1.5和AMS117-5.0電源模塊電路圖如圖3所示。
圖3 AMS1117電源模塊電路圖
本設(shè)計(jì)的光照采集模塊采用的是GY-30數(shù)字光照模塊。工作電壓為3-5V,工作電流為200μA。它的特點(diǎn)是使用IIC總線接口,光譜范圍與人眼相近。主要應(yīng)用于手機(jī)、便攜式游戲機(jī)、數(shù)碼相機(jī)、車載導(dǎo)航、LCD顯示等。
本設(shè)計(jì)中該模塊VCC引腳接擴(kuò)展板的+5V,SCL時(shí)鐘引腳、SDA總線數(shù)據(jù)引腳分別與Arduino mega 2560的SCL和SDA引腳對(duì)應(yīng)連接,GND與Arduino mega2560共地接擴(kuò)展板的GND。
模塊工作電壓:DC 5V;工作電流:小于20mA;該傳感器的工作原理是通過(guò)電路板上一系列裸露的印刷平行導(dǎo)線測(cè)量水量的大小。水量越多,就會(huì)有更多的導(dǎo)線被聯(lián)通,隨著導(dǎo)電的接觸面積增大,輸出的電壓就會(huì)逐步上升,該傳感器的檢測(cè)面積為40mm×16mm,能輕松完成水量到模擬信號(hào)的轉(zhuǎn)換,輸出的模擬值可以直接被程序中函數(shù)所應(yīng)用,達(dá)到水位報(bào)警的功效,低功耗,靈敏度是其又一大特點(diǎn)。因本模塊檢測(cè)高度只有4cm,因此本設(shè)計(jì)中將此模塊貼于養(yǎng)殖合適水位的高度,假設(shè)該高度為k,從而來(lái)完成水位高度k+測(cè)量值=真實(shí)水位的計(jì)算。
本設(shè)計(jì)檢測(cè)水溫的模塊是防水DS18B20數(shù)字水溫傳感器,該傳感器與Arduino兼容,該模塊需要接一個(gè)上拉電阻才能使用,為此需要使用Plugable Terminal轉(zhuǎn)換器和FIT0011數(shù)字傳感器連接線。Plugable Terminal轉(zhuǎn)接器數(shù)字口增加了上拉電阻,使用跳線帽切換使用,這樣就可以直接將防水DS18B20溫度傳感器連接到Arduino上了。溫度傳感器工作電壓:3.0~5.5V;溫度顯示范圍為:-10℃~+85℃(誤差±0.5℃)。
模塊特性:加熱電壓:5±0.2V(AC·DC)、工作電流5-10mA、檢測(cè)濃度范圍:PH0-14、元件功耗:≤0.5W本設(shè)計(jì)中該模塊電源正接擴(kuò)展板+5V,電源和信號(hào)地均接擴(kuò)展板GND,PH輸出接Arduino mega2560單片機(jī)模擬接口A1。
溶解氧檢測(cè)模塊采用專用溶解氧(DO)傳感器,型號(hào)為DO-5100可用于測(cè)量量程范圍內(nèi)水溶液體系中溶解氧值的變化情況其帶有標(biāo)準(zhǔn)RS485 Modbus RTU協(xié)議接口功能,可以與上位機(jī)進(jìn)行遠(yuǎn)程通訊。特點(diǎn):寬電壓設(shè)計(jì)支持10-30VDC、低功耗15mA@24VDC、DO支持自動(dòng)溫度補(bǔ)償/手動(dòng)溫度補(bǔ)償。
本設(shè)計(jì)中使用RS485轉(zhuǎn)ttl模塊實(shí)現(xiàn)傳感器與Arduino之間的通信。型號(hào)為XY-017。轉(zhuǎn)換模塊的VCC接擴(kuò)展板的+5V,GND與Arduino共地,RXD接Arduino的 TX1,TXD接 Arduino的 RX1。另外使用 Tiny RTC IIC時(shí)鐘模塊控制采集參數(shù)的時(shí)間頻率。時(shí)鐘模塊的SCL、SDA分別接Arduino的SCL、SDA,VCC接擴(kuò)展板+5V,GND與Arduino共地。
投餌機(jī)工作電壓為1.5V。使用價(jià)格低廉的方形鬧鐘為原型,將帶有可伸縮卡槽的長(zhǎng)方體外殼扣在鬧鐘背部隨秒鐘旋轉(zhuǎn)的支柱上。使用低功率馬達(dá)作為外殼傳動(dòng)裝置,并用按鍵控制馬達(dá)的啟停。
本設(shè)計(jì)的投餌機(jī)可實(shí)現(xiàn)兩種投喂方式,第一種是通過(guò)在時(shí)間轉(zhuǎn)盤上預(yù)先放置插針,插針隨轉(zhuǎn)盤轉(zhuǎn)動(dòng),并預(yù)先設(shè)定卡槽的開(kāi)孔的大小,時(shí)間到達(dá)預(yù)先設(shè)置的時(shí)間點(diǎn)時(shí),插針觸碰投餌機(jī)按鍵開(kāi)關(guān)即開(kāi)始轉(zhuǎn)一圈,餌料從開(kāi)孔漏出。第二種是通過(guò)將傳動(dòng)馬達(dá)的正極接入擴(kuò)展板的+1.5V,負(fù)極接入四路繼電器的K4公共端,繼電器K4的常開(kāi)端接擴(kuò)展板的GND。繼電器IN4接Arduino mega2560數(shù)字接口D11。從而實(shí)現(xiàn)控制器直接控制投餌機(jī)的開(kāi)啟和關(guān)閉。
氧氣的供給采用沙頭式的簡(jiǎn)易氧氣泵。工作電壓為12V,功率為1.3W。氣量適合8斤內(nèi)魚(yú)或0.8m內(nèi)養(yǎng)殖使用。
本設(shè)計(jì)中將氧氣泵的正極接入擴(kuò)展板的+12V,負(fù)極接入繼電器K3的公共端,繼電器K3的常開(kāi)端接擴(kuò)展板的GND。繼電器IN3接Arduino mega2560的數(shù)字接口D10。
燈光采用12V防水鋁槽燈管7020家用照明節(jié)能LED燈帶,功率為9W。
本設(shè)計(jì)中將燈光正負(fù)極紅黑線引出,正極接入擴(kuò)展板+12V,負(fù)極接入繼電器K2的公共端,繼電器K2的常開(kāi)端接擴(kuò)展板GND。繼電器IN2接Arduino mega2560的數(shù)字接口D8。
抽水泵采用 WIN-120203,電壓 12V、功率為4.5W、流量220L/H、揚(yáng)程3米、出水口徑8mm,一款微型無(wú)刷直流磁力水泵,水陸兩用,純銅電機(jī),無(wú)碳刷,無(wú)電火花,功耗低,平穩(wěn)運(yùn)行,超長(zhǎng)使用壽命,適合小型景觀、假山、盆景、噴泉以及各種工業(yè)設(shè)備小型水循環(huán)系統(tǒng)。本設(shè)計(jì)中將抽水泵的正極接入擴(kuò)展板+12V,負(fù)極接入繼電器K1的公共端,繼電器K1的常開(kāi)端接擴(kuò)展板GND。繼電器IN1接Arduino mega2560的數(shù)字接口D7。
由于加熱棒一般是220V市電供應(yīng),且功率較高,使用率較低。而普通太陽(yáng)能蓄電池電壓一般使用的12V或者24V負(fù)載不了加熱棒的大電壓。因此本設(shè)計(jì)中的加熱棒模塊直接采用了市面上較為常用的加熱棒,并使用市電供電,采用5V的1路光耦繼電器控制220V的加熱棒的開(kāi)啟和關(guān)閉。光耦繼電器與加熱棒模塊連接圖如圖4所示。
圖4 光耦繼電器與加熱棒模塊連接圖
ESP-01 Wi-Fi模塊是由安信可科技開(kāi)發(fā)的,該模塊核心處理器ESP8266在較小尺寸封裝中集成了業(yè)界領(lǐng)先的Tensilica L106超低功耗32位微型MCU,帶有16位精簡(jiǎn)模式,主頻支持80 MHz和160 MHz,支持RTOS,集成 Wi-Fi MAC/BB/RF/PA/LNA,板載天線。該模塊支持標(biāo)準(zhǔn)的IEEE802.11 b/g/n協(xié)議,完整的TCP/IP協(xié)議棧。用戶可以使用該模塊為現(xiàn)有的設(shè)備添加聯(lián)網(wǎng)功能,也可以構(gòu)建獨(dú)立的網(wǎng)絡(luò)控制器。該模塊的原理圖、管腳圖如圖5所示。
本系統(tǒng)的軟件設(shè)計(jì)分為三部分:OneNet平臺(tái)的終端部署、App應(yīng)用軟件的設(shè)計(jì)、對(duì)Arduino mega2560進(jìn)行編程實(shí)現(xiàn)各項(xiàng)功能。
圖5 esp8266-01原理圖、管腳圖
(1)產(chǎn)品創(chuàng)建
步驟如下:登錄OneNet官網(wǎng)->進(jìn)入開(kāi)發(fā)者中心->注冊(cè)個(gè)人賬號(hào)->進(jìn)入相應(yīng)的產(chǎn)品列表頁(yè)面->創(chuàng)建名為智能養(yǎng)殖控制系統(tǒng)的產(chǎn)品。
本設(shè)計(jì)中聯(lián)網(wǎng)方式選擇Wi-Fi,設(shè)備接入方式選擇公開(kāi)協(xié)議,設(shè)備接入?yún)f(xié)議選擇EDP協(xié)議,其余任意填寫。
(2)協(xié)議介紹
EDP 協(xié)議(Enhanced Device Protocol)是 OneNet平臺(tái)根據(jù)物聯(lián)網(wǎng)特點(diǎn)專門定制的完全公開(kāi)的基于TCP的長(zhǎng)連接協(xié)議,提供設(shè)備接入、加密傳輸、數(shù)據(jù)存儲(chǔ)等功能。
協(xié)議的特點(diǎn)如下:1.長(zhǎng)連接協(xié)議;2.終端數(shù)據(jù)點(diǎn)上報(bào),支持的數(shù)據(jù)點(diǎn)類型包括:整型(int)、浮點(diǎn)數(shù)(float)、字符串(string)、JSON、二進(jìn)制數(shù)據(jù);3.平臺(tái)數(shù)據(jù)下發(fā) 4.端到端數(shù)據(jù)轉(zhuǎn)發(fā)。
(3)設(shè)備接入
接入流程分為平臺(tái)域和設(shè)備域,設(shè)計(jì)者需要手動(dòng)在平臺(tái)添加設(shè)備,之后再進(jìn)行設(shè)備域的接入流程,接入的流程圖如圖6所示。
接入步驟:
第一步:創(chuàng)建產(chǎn)品:在平臺(tái)創(chuàng)建一個(gè)接入?yún)f(xié)議為EDP的產(chǎn)品,記錄該產(chǎn)品的產(chǎn)品ID。
第二步:創(chuàng)建設(shè)備:頁(yè)面點(diǎn)擊添加設(shè)備,輸入設(shè)備名稱和鑒權(quán)信息(即設(shè)備編號(hào)),記錄該設(shè)備編號(hào)。
第三步:建立TCP連接,EDP服務(wù)器地址域名為:jjfaedp.hedevice.com端口號(hào)為:876。
第四步:建立EDP連接:使用第一步和第二步中的參數(shù)作為登錄參數(shù),使用SDK中的對(duì)應(yīng)接口組織EDP連接報(bào)文,發(fā)送到平臺(tái),與平臺(tái)建立EDP連接。若連接成功,在設(shè)備信息中會(huì)看到一個(gè)綠色的在線標(biāo)記。
第五步:數(shù)據(jù)點(diǎn)上傳:利用sdk中提供的接口函數(shù),編寫代碼將數(shù)據(jù)上傳到平臺(tái)。
第六步:查看數(shù)據(jù)流:在OneNet上的設(shè)備管理下點(diǎn)擊數(shù)據(jù)展示,進(jìn)入數(shù)據(jù)展示頁(yè)面,點(diǎn)擊下拉菜單,查看近期上傳的數(shù)據(jù)點(diǎn),也可以選擇時(shí)間區(qū)間來(lái)查看歷史時(shí)間。
第七步:應(yīng)用生成:在數(shù)據(jù)流的基礎(chǔ)上進(jìn)行應(yīng)用以及觸發(fā)器的創(chuàng)建。
本設(shè)計(jì)中的應(yīng)用生成了五個(gè)用電器的開(kāi)關(guān)、五項(xiàng)環(huán)境參數(shù)折線圖顯示以及五個(gè)環(huán)境參數(shù)對(duì)應(yīng)的觸發(fā)器。當(dāng)環(huán)境參數(shù)值超過(guò)設(shè)定的閾值時(shí),事先設(shè)定的郵箱地址將會(huì)收到來(lái)自平臺(tái)的警報(bào)郵件,告知用戶某項(xiàng)參數(shù)超出閾值。
圖6 設(shè)備接入流程圖
App應(yīng)用軟件分為分別為項(xiàng)目、發(fā)現(xiàn)、我的三個(gè)模塊。
項(xiàng)目模塊包括設(shè)備總數(shù)、應(yīng)用總數(shù)、API Key數(shù)、觸發(fā)器數(shù)。點(diǎn)擊設(shè)備總數(shù)即可顯示魚(yú)塘管理的設(shè)備ID、該設(shè)備的各個(gè)用電器的開(kāi)關(guān)情況、環(huán)境參數(shù)的值、對(duì)應(yīng)值的記錄時(shí)間以及折線圖表示參數(shù)的變化情況。點(diǎn)擊應(yīng)用即可顯示在平臺(tái)上自定義的的應(yīng)用界面,應(yīng)用界面提供五個(gè)用電器的開(kāi)關(guān)給用戶點(diǎn)擊來(lái)控制用電器以及觀察環(huán)境參數(shù)的變化情況。點(diǎn)擊APIKey數(shù)即可知道當(dāng)前設(shè)備所包含的APIKey的詳細(xì)信息。點(diǎn)擊觸發(fā)器數(shù),即可顯示超過(guò)閾值需要警報(bào)的數(shù)據(jù)流名稱、設(shè)定的閾值以及關(guān)聯(lián)設(shè)備信息。
發(fā)現(xiàn)模塊能夠觀察OneNet平臺(tái)上其他開(kāi)發(fā)者設(shè)計(jì)的用戶應(yīng)用界面和設(shè)備信息。
我的模塊包括我的基本資料、收藏的設(shè)備、收藏的應(yīng)用、以及設(shè)置?;举Y料包括頭像、昵稱、聯(lián)系電話、個(gè)人簡(jiǎn)介等。設(shè)置選項(xiàng)主要有版本更新,意見(jiàn)反饋。
(1)Arduino主程序
Arduino程序主要由setup()和loop()包含兩部分組成。setup()主要用于變量、引腳模式、各個(gè)模塊的初始化以及檢測(cè)esp8266與Arduino的連接。loop()主要用于實(shí)現(xiàn)EDP的連接、各個(gè)模塊的參數(shù)上傳,無(wú)數(shù)據(jù)傳送時(shí)通過(guò)心跳包來(lái)保持與平臺(tái)的連接。同時(shí)處理數(shù)據(jù),取得對(duì)應(yīng)的EDP命令來(lái)控制各個(gè)用電器。
Arduino程序設(shè)計(jì)如下:
(1)初始化;
(2)清空串口接收緩存,發(fā)送EDP連接包,等待EDP連接應(yīng)答,返回EDP連接結(jié)果;
(3)參數(shù)的采集;
(4)對(duì)EDP包進(jìn)行處理;
(5)命令獲取及實(shí)現(xiàn)。
本設(shè)計(jì)在平臺(tái)側(cè)采用特定的數(shù)字來(lái)表示EDP命令進(jìn)而控制用電器的啟停。設(shè)定的EDP命令有:10、1、2、14、4、6分別代表抽水泵啟動(dòng)、光照啟動(dòng)、PH閥門啟動(dòng)、氧氣泵啟動(dòng)、投餌機(jī)啟動(dòng)、加熱棒啟動(dòng)。12、3、5、7、9、8分別代表抽水泵關(guān)閉、光照關(guān)閉、PH閥門關(guān)閉、氧氣泵關(guān)閉、投餌機(jī)關(guān)閉、加熱棒關(guān)閉。
(2)初始化
定義設(shè)備APIKey和設(shè)備ID,初始化串口,D2、D3口作為軟串口接PC機(jī)作為調(diào)試端,D0、D1為串口連接Wi-Fi模塊。定義并初始化酸堿度、溶解氧、溫度、光照、水位等的數(shù)字/模擬接口分別為 A1、A2、D5、A4、A0、接口模式為輸入模式、參數(shù)的初始值為0、定義處理edp包的指針。發(fā)送AT命令至Wi-Fi模塊檢測(cè)模塊的存在。初始化Wi-Fi模塊的傳輸速率為115200、設(shè)置超時(shí)時(shí)間為3秒。
(3)處理EDP包
處理過(guò)程主要包括:
A.創(chuàng)建EDP包的緩存空間;
B.向EDP包中輸入或輸出剩余長(zhǎng)度字段;
C.向EDP包中輸入或者輸出一個(gè)、多個(gè)字節(jié);
D.向EDP包中輸入或輸出字符串字段;
E.組EDP連接包;組EDP數(shù)據(jù)存儲(chǔ)轉(zhuǎn)發(fā)包;
F.按照EDP數(shù)據(jù)格式,判斷是否為完整數(shù)據(jù)包;
G.按照EDP命令請(qǐng)求協(xié)議,解析數(shù)據(jù);按照EDP透?jìng)鞲袷?,解析?shù)據(jù)等。
本設(shè)計(jì)將上述過(guò)程通過(guò)代碼的形式寫入edp.c作為庫(kù)函數(shù)被主程序調(diào)用,以完成所需功能。
(4)采集參數(shù)
調(diào)用各傳感器函數(shù)采集參數(shù),使用packetSend()函數(shù)將待發(fā)數(shù)據(jù)發(fā)送至串口,并釋放動(dòng)態(tài)分配的內(nèi)存。如 packetSend(packetDataSaveTrans(PUSH_ID,"wen",wendu));PUSH_ID表示平臺(tái)設(shè)備ID,wen表示平臺(tái)數(shù)據(jù)流名稱,wendu表示傳感器采集到的參數(shù)。
(5)命令獲取及實(shí)現(xiàn)
使用sscanf()函數(shù)將EDP命令格式化輸出到char val[]中,類型轉(zhuǎn)換 atoi(val)與 EDP命令內(nèi)容對(duì)應(yīng)則改變相應(yīng)接口的高低電平即達(dá)到控制用電器的啟停。
智能水產(chǎn)養(yǎng)殖是可持續(xù)發(fā)展戰(zhàn)略的一個(gè)方向,如何對(duì)傳統(tǒng)水產(chǎn)養(yǎng)殖實(shí)現(xiàn)低成本、安全性、通用性、便利性、及其可靠性地改造,是對(duì)智能養(yǎng)殖是否更人性化設(shè)計(jì)的基本要求。本文提出的基于物聯(lián)網(wǎng)的智能養(yǎng)殖控制系統(tǒng)可以有效利用自然光達(dá)到節(jié)約能源的目的,對(duì)水產(chǎn)養(yǎng)殖行業(yè)的節(jié)能有著重要的意義。
[1]孫駿榮,蘇海永.用Arduino全面打造物聯(lián)網(wǎng).北京:清華大學(xué)出版社,2016.
[2]布魯姆,蘇海永.Arduino程序設(shè)計(jì)指南.北京:電子工業(yè)出版社,2015.
[3]蒙克.36個(gè)活用擴(kuò)展板的制作項(xiàng)目.北京:人民郵電出版社,2015.
[4]李永華,高英,陳青云.Arduino軟硬件協(xié)同設(shè)計(jì)實(shí)戰(zhàn)指南.北京:清華出版社,2015.
[5]柯博文.Arduino完全實(shí)戰(zhàn).北京:電子工業(yè)出版社,2016.
[6]李明亮.Arduino項(xiàng)目DIY.北京:清華大學(xué)出版社,2015.
[7]孫洪波.基于物聯(lián)網(wǎng)的智能生態(tài)養(yǎng)殖系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2016.23.020.
[8]劉偉,林開(kāi)司,劉安勇.基于物聯(lián)網(wǎng)的養(yǎng)殖智能控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].淮海工學(xué)院學(xué)報(bào),2016(4):1-4.
[9]陳杰,鄭純軍,丁開(kāi)迪,等.基于ARM的智能養(yǎng)殖控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].軟件工程師,2013(8):44-46.
[10]楊彥偉,蘇衛(wèi)紅,張灝璠.基于STC889C51的智能養(yǎng)殖控制系統(tǒng)[J].電子技術(shù)與軟件工程,2015(22):106-107.
[11]呂孟鄒,劉志剛.基于嵌入式網(wǎng)絡(luò)控制技術(shù)的智能養(yǎng)殖系統(tǒng)設(shè)計(jì)[J].新建設(shè):現(xiàn)代物業(yè)上旬刊,2012(3):34-35.
[12]支元,王登科.基于嵌入式系統(tǒng)智能養(yǎng)殖的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2015,11(29):155-156.
[13]李龍,唐思均,李瑋.基于單片機(jī)的智能養(yǎng)殖控制系統(tǒng)的設(shè)計(jì)[J].科技展望,2016,26(7).
Intelligent Aquaculture Control System Based on OneNet Interest of Things Cloud Platform
PENG Xiao-hong,XING Xu-feng,ZENG Hong-jun
(College of Information Technology,Guangdong Ocean University,Zhanjiang 524088)
In view of the need of aquaculture plant intelligence,proposes an intelligent control scheme,which is based on single chip microcomputer,web platform and mobile phone terminal,and designs and develops an intelligent control system based on China Mobile’s OneNet IoT platform.In order to satisfy the demands of the effective use of energy,the system can be used to control all kinds of electric equipment with solar energy power by mobile phone terminal and web platform,and collect the environment parameters.And besides,the alarm information sends to the mailbox when environmental parameters exceed the threshold,achieves the goal of intelligent breeding and energy saving.
Aquiculture;Intelligent Control;Solar Energy;OneNet Cloud Platform;Mobile Terminal Control
湛江市科技計(jì)劃項(xiàng)目(No.2015A03032)、廣東省科技計(jì)劃項(xiàng)目(No.粵科規(guī)劃字[2012]145號(hào))、廣東海洋大學(xué)2017年“創(chuàng)新強(qiáng)校工程”省財(cái)政資金支持項(xiàng)目(No.GDOU2017052605)、廣東省大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目(No.201610566089)
1007-1423(2017)31-0065-06
10.3969/j.issn.1007-1423.2017.31.017
2017-09-05
2017-10-25