彭小紅,邢旭峰,曾宏俊
(廣東海洋大學數學與計算機學院,湛江 524088)
基于OneNet物聯網云平臺的智能養殖系統
彭小紅,邢旭峰,曾宏俊
(廣東海洋大學數學與計算機學院,湛江 524088)
針對工廠化水產養殖智能化的需求,提出一個以Arduino單片機為輔,手機終端和網頁終端為主的智能養殖方案,并基于中國移動推出的OneNet物聯網云平臺設計開發智能養殖控制系統。系統利用太陽能進行供電,實時檢測養殖水環境參數,通過網頁和手機App控制養殖終端設備,實現養殖智能化和節約能源的目標。
水產養殖;智能控制;太陽能;OneNet云平臺;手機終端控制
隨著計算機物聯網技術、能源開發技術的發展,水產養殖的智能化程度越來越高,新型能源逐步進入人們的生活,云的概念也逐漸為人們所熟知,人們希望隨時隨地控制水產養殖,創造更加智能化,人性化,節約化的水產養殖方式。智能設備通過Wi-Fi、藍牙、GSM、有線網絡等多種方式控制各類電器以及檢測環境參數。再結合新型能源和物聯網云平臺的使用,有效地克服了傳統水產養殖控制方式麻煩、功能單一、用戶體驗差、成本高、能耗大等缺陷。基于新型能源、物聯網云平臺及智能設備三者的智能水產養殖控制系統將成為未來發展的趨勢。
目前國內基于物聯網的魚缸智能控制大多以51單片機/STM32/ARM為控制核心,利用傳感器感知技術采集生態環境信息,并將采集數據通過ZigBee傳輸技術發送至控制中心節點,然后通過數據通信網關上傳到后臺服務器,最終由服務器將控制命令發往各個設備終端節點,實現魚缸環境的自動調節或通過物聯網控制網關實現與控制板之間的串口通信,由無線路由器或者Wi-Fi模塊發送無線信號,并通過Web或者手機App終端實現對智能魚缸的遠程無線控制[1-7]。
針對工廠化水產養殖智能化、節能的需求,本文提出一個以Arduino單片機為輔,OneNet物聯網云平臺和手機終端為主的智能工廠養殖控制方案,設計開發了基于新型能源、物聯網云平臺及智能設備的智能工廠養殖控制系統,不僅實現了遠程開關,多模式控制,環境參數的檢測和警報的功能,還通過使用太陽能板采集光、蓄電池供電的方式,實現控制的節能化,此外由于中國移動推出的OneNet云平臺對于個人用戶是免費的,即便是企業用戶也大大降低了服務器維護和服務器硬件的成本。太陽能和云平臺的結合使用使控制系統的成本盡可能降到最低。
本設計以Arduino mega2560控制器為核心,加上電源轉換擴展板模塊、光照強度檢測模塊、水位檢測模塊、水溫檢測模塊、溶解氧檢測模塊、PH值檢測模塊、Wi-Fi通信模塊、太陽能控制器模塊、抽水泵、燈光、增氧機、投餌機、恒溫器等構成了整個智能養殖控制系統。其中供電系統由太陽能控制器、太陽能板和蓄電池組成。由于采用的用電器有1.5V,5V及12V三種電壓,因此專門設計了電源電壓轉換擴展板模塊。Arduino使用USB供電線接入太陽能控制器的usb供電口,擴展板正負極跟太陽能用電器正負極對應相接,太陽能板也跟太陽能控制器正負接口對應相接,從而實現整個系統的供電。實現功能主要有:通過手機App或者網頁平臺對光照強度、水位、水溫、溶解氧、PH值等參數的檢測和警報以及對抽水泵、燈光、增氧機、投餌機、恒溫器等用電器的控制。智能控制系統整體框圖如圖1所示。

圖1 智能養殖控制系統整體框圖
本系統硬件部分主要包括以Arduino mega2560為主控制器單元的最小系統、電源轉換擴展板模塊、光照強度檢測模塊、水位檢測模塊、水溫檢測模塊、溶解氧檢測模塊、PH值檢測模塊,四路繼電器模塊、一路光耦繼電器模塊、Wi-Fi通信模塊,終端設備有抽水泵模塊、燈光模塊、增氧機模塊、投餌機模塊、加熱棒模塊等。
系統采用Arduino Mega2560單片機,它是基于AVR指令集的8位單片機,具有54路數字輸入/輸出口(其中16路可作為PWM輸出),16路模擬輸入,4路UART接口,一個16MHz晶體振蕩器,一個USB口,一個電源插座,一個ICSP header和一個復位按鈕,特別適合需要大量I/O接口的設計[8-13]。本設計的Arduino mega2560單片機的最小系統有晶振模塊、復位模塊和電源模塊。如圖2所示。

圖2 單片機最小系統圖
該模塊使用了兩個子模塊。分別是AMS1117-1.5電源模塊和AMS1117-5.0降壓模塊。兩者的最大輸出電流均為800mA,AMS1117-1.5電源模塊的作用是DC 5V轉直流DC 1.5V;AMS1117-5.0降壓模塊的作用是DC 12V轉DC 5V。利用這兩個模塊將擴展板分隔成三個區域,分別是①+1.5V GND②+5V GND③+12V GND。
擴展板+12V接太陽能控制器用電器的‘+’,與擴展板+12V對應的GND接太陽控制器的‘-’。在+12V和+5V之間采用AMS1117-5.0降壓模塊連接,在+5V和+1.5V之間采用AMS1117-1.5連接。從而滿足本設計中三種電壓的供電需求。AMS1117-1.5和AMS117-5.0電源模塊電路圖如圖3所示。

圖3 AMS1117電源模塊電路圖
本設計的光照采集模塊采用的是GY-30數字光照模塊。工作電壓為3-5V,工作電流為200μA。它的特點是使用IIC總線接口,光譜范圍與人眼相近。主要應用于手機、便攜式游戲機、數碼相機、車載導航、LCD顯示等。
本設計中該模塊VCC引腳接擴展板的+5V,SCL時鐘引腳、SDA總線數據引腳分別與Arduino mega 2560的SCL和SDA引腳對應連接,GND與Arduino mega2560共地接擴展板的GND。
模塊工作電壓:DC 5V;工作電流:小于20mA;該傳感器的工作原理是通過電路板上一系列裸露的印刷平行導線測量水量的大小。水量越多,就會有更多的導線被聯通,隨著導電的接觸面積增大,輸出的電壓就會逐步上升,該傳感器的檢測面積為40mm×16mm,能輕松完成水量到模擬信號的轉換,輸出的模擬值可以直接被程序中函數所應用,達到水位報警的功效,低功耗,靈敏度是其又一大特點。因本模塊檢測高度只有4cm,因此本設計中將此模塊貼于養殖合適水位的高度,假設該高度為k,從而來完成水位高度k+測量值=真實水位的計算。
本設計檢測水溫的模塊是防水DS18B20數字水溫傳感器,該傳感器與Arduino兼容,該模塊需要接一個上拉電阻才能使用,為此需要使用Plugable Terminal轉換器和FIT0011數字傳感器連接線。Plugable Terminal轉接器數字口增加了上拉電阻,使用跳線帽切換使用,這樣就可以直接將防水DS18B20溫度傳感器連接到Arduino上了。溫度傳感器工作電壓:3.0~5.5V;溫度顯示范圍為:-10℃~+85℃(誤差±0.5℃)。
模塊特性:加熱電壓:5±0.2V(AC·DC)、工作電流5-10mA、檢測濃度范圍:PH0-14、元件功耗:≤0.5W本設計中該模塊電源正接擴展板+5V,電源和信號地均接擴展板GND,PH輸出接Arduino mega2560單片機模擬接口A1。
溶解氧檢測模塊采用專用溶解氧(DO)傳感器,型號為DO-5100可用于測量量程范圍內水溶液體系中溶解氧值的變化情況其帶有標準RS485 Modbus RTU協議接口功能,可以與上位機進行遠程通訊。特點:寬電壓設計支持10-30VDC、低功耗15mA@24VDC、DO支持自動溫度補償/手動溫度補償。
本設計中使用RS485轉ttl模塊實現傳感器與Arduino之間的通信。型號為XY-017。轉換模塊的VCC接擴展板的+5V,GND與Arduino共地,RXD接Arduino的 TX1,TXD接 Arduino的 RX1。另外使用 Tiny RTC IIC時鐘模塊控制采集參數的時間頻率。時鐘模塊的SCL、SDA分別接Arduino的SCL、SDA,VCC接擴展板+5V,GND與Arduino共地。
投餌機工作電壓為1.5V。使用價格低廉的方形鬧鐘為原型,將帶有可伸縮卡槽的長方體外殼扣在鬧鐘背部隨秒鐘旋轉的支柱上。使用低功率馬達作為外殼傳動裝置,并用按鍵控制馬達的啟停。
本設計的投餌機可實現兩種投喂方式,第一種是通過在時間轉盤上預先放置插針,插針隨轉盤轉動,并預先設定卡槽的開孔的大小,時間到達預先設置的時間點時,插針觸碰投餌機按鍵開關即開始轉一圈,餌料從開孔漏出。第二種是通過將傳動馬達的正極接入擴展板的+1.5V,負極接入四路繼電器的K4公共端,繼電器K4的常開端接擴展板的GND。繼電器IN4接Arduino mega2560數字接口D11。從而實現控制器直接控制投餌機的開啟和關閉。
氧氣的供給采用沙頭式的簡易氧氣泵。工作電壓為12V,功率為1.3W。氣量適合8斤內魚或0.8m內養殖使用。
本設計中將氧氣泵的正極接入擴展板的+12V,負極接入繼電器K3的公共端,繼電器K3的常開端接擴展板的GND。繼電器IN3接Arduino mega2560的數字接口D10。
燈光采用12V防水鋁槽燈管7020家用照明節能LED燈帶,功率為9W。
本設計中將燈光正負極紅黑線引出,正極接入擴展板+12V,負極接入繼電器K2的公共端,繼電器K2的常開端接擴展板GND。繼電器IN2接Arduino mega2560的數字接口D8。
抽水泵采用 WIN-120203,電壓 12V、功率為4.5W、流量220L/H、揚程3米、出水口徑8mm,一款微型無刷直流磁力水泵,水陸兩用,純銅電機,無碳刷,無電火花,功耗低,平穩運行,超長使用壽命,適合小型景觀、假山、盆景、噴泉以及各種工業設備小型水循環系統。本設計中將抽水泵的正極接入擴展板+12V,負極接入繼電器K1的公共端,繼電器K1的常開端接擴展板GND。繼電器IN1接Arduino mega2560的數字接口D7。
由于加熱棒一般是220V市電供應,且功率較高,使用率較低。而普通太陽能蓄電池電壓一般使用的12V或者24V負載不了加熱棒的大電壓。因此本設計中的加熱棒模塊直接采用了市面上較為常用的加熱棒,并使用市電供電,采用5V的1路光耦繼電器控制220V的加熱棒的開啟和關閉。光耦繼電器與加熱棒模塊連接圖如圖4所示。

圖4 光耦繼電器與加熱棒模塊連接圖
ESP-01 Wi-Fi模塊是由安信可科技開發的,該模塊核心處理器ESP8266在較小尺寸封裝中集成了業界領先的Tensilica L106超低功耗32位微型MCU,帶有16位精簡模式,主頻支持80 MHz和160 MHz,支持RTOS,集成 Wi-Fi MAC/BB/RF/PA/LNA,板載天線。該模塊支持標準的IEEE802.11 b/g/n協議,完整的TCP/IP協議棧。用戶可以使用該模塊為現有的設備添加聯網功能,也可以構建獨立的網絡控制器。該模塊的原理圖、管腳圖如圖5所示。
本系統的軟件設計分為三部分:OneNet平臺的終端部署、App應用軟件的設計、對Arduino mega2560進行編程實現各項功能。

圖5 esp8266-01原理圖、管腳圖
(1)產品創建
步驟如下:登錄OneNet官網->進入開發者中心->注冊個人賬號->進入相應的產品列表頁面->創建名為智能養殖控制系統的產品。
本設計中聯網方式選擇Wi-Fi,設備接入方式選擇公開協議,設備接入協議選擇EDP協議,其余任意填寫。
(2)協議介紹
EDP 協議(Enhanced Device Protocol)是 OneNet平臺根據物聯網特點專門定制的完全公開的基于TCP的長連接協議,提供設備接入、加密傳輸、數據存儲等功能。
協議的特點如下:1.長連接協議;2.終端數據點上報,支持的數據點類型包括:整型(int)、浮點數(float)、字符串(string)、JSON、二進制數據;3.平臺數據下發 4.端到端數據轉發。
(3)設備接入
接入流程分為平臺域和設備域,設計者需要手動在平臺添加設備,之后再進行設備域的接入流程,接入的流程圖如圖6所示。
接入步驟:
第一步:創建產品:在平臺創建一個接入協議為EDP的產品,記錄該產品的產品ID。
第二步:創建設備:頁面點擊添加設備,輸入設備名稱和鑒權信息(即設備編號),記錄該設備編號。
第三步:建立TCP連接,EDP服務器地址域名為:jjfaedp.hedevice.com端口號為:876。
第四步:建立EDP連接:使用第一步和第二步中的參數作為登錄參數,使用SDK中的對應接口組織EDP連接報文,發送到平臺,與平臺建立EDP連接。若連接成功,在設備信息中會看到一個綠色的在線標記。
第五步:數據點上傳:利用sdk中提供的接口函數,編寫代碼將數據上傳到平臺。
第六步:查看數據流:在OneNet上的設備管理下點擊數據展示,進入數據展示頁面,點擊下拉菜單,查看近期上傳的數據點,也可以選擇時間區間來查看歷史時間。
第七步:應用生成:在數據流的基礎上進行應用以及觸發器的創建。
本設計中的應用生成了五個用電器的開關、五項環境參數折線圖顯示以及五個環境參數對應的觸發器。當環境參數值超過設定的閾值時,事先設定的郵箱地址將會收到來自平臺的警報郵件,告知用戶某項參數超出閾值。

圖6 設備接入流程圖
App應用軟件分為分別為項目、發現、我的三個模塊。
項目模塊包括設備總數、應用總數、API Key數、觸發器數。點擊設備總數即可顯示魚塘管理的設備ID、該設備的各個用電器的開關情況、環境參數的值、對應值的記錄時間以及折線圖表示參數的變化情況。點擊應用即可顯示在平臺上自定義的的應用界面,應用界面提供五個用電器的開關給用戶點擊來控制用電器以及觀察環境參數的變化情況。點擊APIKey數即可知道當前設備所包含的APIKey的詳細信息。點擊觸發器數,即可顯示超過閾值需要警報的數據流名稱、設定的閾值以及關聯設備信息。
發現模塊能夠觀察OneNet平臺上其他開發者設計的用戶應用界面和設備信息。
我的模塊包括我的基本資料、收藏的設備、收藏的應用、以及設置。基本資料包括頭像、昵稱、聯系電話、個人簡介等。設置選項主要有版本更新,意見反饋。
(1)Arduino主程序
Arduino程序主要由setup()和loop()包含兩部分組成。setup()主要用于變量、引腳模式、各個模塊的初始化以及檢測esp8266與Arduino的連接。loop()主要用于實現EDP的連接、各個模塊的參數上傳,無數據傳送時通過心跳包來保持與平臺的連接。同時處理數據,取得對應的EDP命令來控制各個用電器。
Arduino程序設計如下:
(1)初始化;
(2)清空串口接收緩存,發送EDP連接包,等待EDP連接應答,返回EDP連接結果;
(3)參數的采集;
(4)對EDP包進行處理;
(5)命令獲取及實現。
本設計在平臺側采用特定的數字來表示EDP命令進而控制用電器的啟停。設定的EDP命令有:10、1、2、14、4、6分別代表抽水泵啟動、光照啟動、PH閥門啟動、氧氣泵啟動、投餌機啟動、加熱棒啟動。12、3、5、7、9、8分別代表抽水泵關閉、光照關閉、PH閥門關閉、氧氣泵關閉、投餌機關閉、加熱棒關閉。
(2)初始化
定義設備APIKey和設備ID,初始化串口,D2、D3口作為軟串口接PC機作為調試端,D0、D1為串口連接Wi-Fi模塊。定義并初始化酸堿度、溶解氧、溫度、光照、水位等的數字/模擬接口分別為 A1、A2、D5、A4、A0、接口模式為輸入模式、參數的初始值為0、定義處理edp包的指針。發送AT命令至Wi-Fi模塊檢測模塊的存在。初始化Wi-Fi模塊的傳輸速率為115200、設置超時時間為3秒。
(3)處理EDP包
處理過程主要包括:
A.創建EDP包的緩存空間;
B.向EDP包中輸入或輸出剩余長度字段;
C.向EDP包中輸入或者輸出一個、多個字節;
D.向EDP包中輸入或輸出字符串字段;
E.組EDP連接包;組EDP數據存儲轉發包;
F.按照EDP數據格式,判斷是否為完整數據包;
G.按照EDP命令請求協議,解析數據;按照EDP透傳格式,解析數據等。
本設計將上述過程通過代碼的形式寫入edp.c作為庫函數被主程序調用,以完成所需功能。
(4)采集參數
調用各傳感器函數采集參數,使用packetSend()函數將待發數據發送至串口,并釋放動態分配的內存。如 packetSend(packetDataSaveTrans(PUSH_ID,"wen",wendu));PUSH_ID表示平臺設備ID,wen表示平臺數據流名稱,wendu表示傳感器采集到的參數。
(5)命令獲取及實現
使用sscanf()函數將EDP命令格式化輸出到char val[]中,類型轉換 atoi(val)與 EDP命令內容對應則改變相應接口的高低電平即達到控制用電器的啟停。
智能水產養殖是可持續發展戰略的一個方向,如何對傳統水產養殖實現低成本、安全性、通用性、便利性、及其可靠性地改造,是對智能養殖是否更人性化設計的基本要求。本文提出的基于物聯網的智能養殖控制系統可以有效利用自然光達到節約能源的目的,對水產養殖行業的節能有著重要的意義。
[1]孫駿榮,蘇海永.用Arduino全面打造物聯網.北京:清華大學出版社,2016.
[2]布魯姆,蘇海永.Arduino程序設計指南.北京:電子工業出版社,2015.
[3]蒙克.36個活用擴展板的制作項目.北京:人民郵電出版社,2015.
[4]李永華,高英,陳青云.Arduino軟硬件協同設計實戰指南.北京:清華出版社,2015.
[5]柯博文.Arduino完全實戰.北京:電子工業出版社,2016.
[6]李明亮.Arduino項目DIY.北京:清華大學出版社,2015.
[7]孫洪波.基于物聯網的智能生態養殖系統設計與實現[J].微型機與應用,2016.23.020.
[8]劉偉,林開司,劉安勇.基于物聯網的養殖智能控制系統設計與實現[J].淮海工學院學報,2016(4):1-4.
[9]陳杰,鄭純軍,丁開迪,等.基于ARM的智能養殖控制系統的設計與實現[J].軟件工程師,2013(8):44-46.
[10]楊彥偉,蘇衛紅,張灝璠.基于STC889C51的智能養殖控制系統[J].電子技術與軟件工程,2015(22):106-107.
[11]呂孟鄒,劉志剛.基于嵌入式網絡控制技術的智能養殖系統設計[J].新建設:現代物業上旬刊,2012(3):34-35.
[12]支元,王登科.基于嵌入式系統智能養殖的設計與實現[J].電腦知識與技術,2015,11(29):155-156.
[13]李龍,唐思均,李瑋.基于單片機的智能養殖控制系統的設計[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
湛江市科技計劃項目(No.2015A03032)、廣東省科技計劃項目(No.粵科規劃字[2012]145號)、廣東海洋大學2017年“創新強校工程”省財政資金支持項目(No.GDOU2017052605)、廣東省大學生創新創業訓練計劃項目(No.201610566089)
1007-1423(2017)31-0065-06
10.3969/j.issn.1007-1423.2017.31.017
2017-09-05
2017-10-25