鄧瀟陽,徐志宇,2
(1.同濟大學(xué)電子與信息工程學(xué)院,上海 201804;2.同濟大學(xué)計算機與信息技術(shù)國家級試驗教學(xué)示范中心,上海 201804)
我國對于海產(chǎn)品種類與數(shù)目的需求不斷增長。但由于沿海地區(qū)的過度捕撈,海水污染的影響,以及新時代可持續(xù)發(fā)展的要求,海水魚的捕撈量日益下降。與此同時,而海水魚的養(yǎng)殖規(guī)模進一步擴大。人工養(yǎng)殖需要保證水質(zhì)適于海水魚生存,而鹽度值對于海水魚較為重要。用數(shù)字化的方式進行鹽度監(jiān)測對于海水魚的養(yǎng)殖與管理具有重要意義。
目前,溶液濃度測量主要有滴定法、分光光度計法、比重計法、旋光度法、電導(dǎo)法等。數(shù)字化的鹽度測量儀器體積較大,使用較為復(fù)雜,因此希望采用更為簡單的設(shè)計方案。文獻[1]設(shè)計了一種使用電容式傳感器的稻谷含水率檢測裝置。該文獻利用稻谷介電常數(shù)受其含水率影響的原理,在樣品不同含水率時用傳感器測量出電容,確定稻谷含水率與電容的關(guān)系曲線,并綜合溫度特性試驗完成傳感器標定,取得了良好的含水率測量結(jié)果。
本設(shè)計參考利用介電常數(shù)變化進行測量的思路[2-4],以固定間距的電極板作為測量探頭;使用FDC2214芯片測量不同鹽濃度值下的電容值并標定電容-鹽濃度曲線,利用標定的曲線測量實際水體鹽濃度[5];使用樹莓派將測量值作為數(shù)據(jù)流上傳至云平臺,實現(xiàn)水體鹽度監(jiān)測。
本設(shè)計測量水體鹽度,并通過云平臺配置,使得用戶能夠在移動終端查看水體鹽度的實時數(shù)據(jù)。系統(tǒng)構(gòu)架如圖1所示。
圖1 系統(tǒng)構(gòu)架圖
系統(tǒng)的現(xiàn)場測量部分包括FDC2214電容測量模塊和一對固定間距電極板組成的探頭。測量時,探頭進入溶液中,液體填充兩塊極板的中間部分,作為電容的介質(zhì)。電極板與液體構(gòu)成的電容接入FDC2214模塊的測量電路中。該模塊將測量該電容值,并將讀取值存入FDC2214芯片的寄存器,以便下位機讀取數(shù)據(jù)并進一步處理。
系統(tǒng)的下位機應(yīng)兼有控制FDC2214模塊與網(wǎng)絡(luò)通信的功能。因此,下位機選擇了樹莓派3B+,并選用Nokia5110作為輸出顯示。樹莓派通過I2C與FDC2214模塊通信,讀取存儲在FDC2214寄存器中的測量值,并利用技術(shù)手冊中提供的轉(zhuǎn)化公式將該測量值轉(zhuǎn)化為實際電容值。通過標定試驗得到電容-鹽度擬合曲線后,樹莓派使用該曲線的函數(shù)將電容值轉(zhuǎn)化為水體的鹽濃度值,將該值輸出在顯示屏上,并將濃度值作為數(shù)據(jù)流上傳云平臺。
云平臺使用了中國移動OneNET平臺。云平臺與下位機之間的數(shù)據(jù)傳輸是通過HTTP協(xié)議實現(xiàn)的。利用該平臺的應(yīng)用程序接口(application programming interface,API),實現(xiàn)了水體鹽度的實時網(wǎng)絡(luò)監(jiān)測與自動告警功能。觸發(fā)器將在水體鹽度超過閾值時以電子郵件形式向個人用戶告警;此外,個人用戶還能夠通過移動終端查看實時的水體鹽度值。云平臺能夠存儲一部分近期濃度記錄值,對水體鹽濃度分析有一定的作用。
本設(shè)計中,測量探頭選擇接觸式的測量方式。為避免測量過程對溶液本身造成影響,選用石墨電極制作為測量探頭電極板。石墨電極具有優(yōu)良的導(dǎo)電性能,也能夠避免極板銹蝕引起的誤差、延長設(shè)備的使用壽命與維護成本。本設(shè)計中,測量探頭由一對正對的電極板構(gòu)成,兩片極板間用木棒支撐,從而在極板間留出一片空腔。測量時溶液將進入兩極板間的空腔內(nèi),作為極板間介質(zhì)。溶液介電常數(shù)的變化量將引起探頭電容的變化[6],電極板的面積越大,極板間距越小,測量靈敏度越高。綜合試驗條件、實際使用情況等因素,本設(shè)計將電極板大小設(shè)計為30 mm×30 mm,極板間距3 mm。
在本設(shè)計中,樹莓派使用Raspbian系統(tǒng)進行開發(fā)[7]。樹莓派作為下位機,在python環(huán)境下設(shè)計完成了數(shù)據(jù)采集與數(shù)據(jù)處理、上傳數(shù)據(jù)流至云平臺等功能。此外,希望系統(tǒng)現(xiàn)場測量端具有實時輸出測量值的能力[8-9]。由于輸出內(nèi)容較為簡單,選用了一款功能單一、成本較低的LCD顯示屏Nokia5110。
在樹莓派的設(shè)置方面,使用樹莓派自帶的I2C接口,通過樹莓派直接配置了FDC2214的寄存器,控制該模塊進行測量并讀取測量結(jié)果;在樹莓派的程序中,輸入了電容-鹽濃度轉(zhuǎn)換函數(shù),樹莓派讀取測量值后直接用該函數(shù)進行轉(zhuǎn)換并計算鹽濃度值[10];樹莓派還將濃度值作為數(shù)據(jù)流向云平臺上傳。這一過程通過樹莓派中的Requests庫來實現(xiàn)。Requests庫是一種采用Apache2 Licensed開源協(xié)議的HTTP庫。通過調(diào)用Requests庫,能夠方便、快捷地將數(shù)據(jù)流通過HTTP協(xié)議上傳特定參數(shù)至云平臺,實現(xiàn)數(shù)據(jù)的云監(jiān)測[11-13]。樹莓派中寫入了Nokia5110的驅(qū)動程序,完成電容-鹽濃度轉(zhuǎn)換后即調(diào)用顯示屏驅(qū)動程序?qū)⒃撝递敵鲈贜okia5110顯示屏上,顯示內(nèi)容包括測量值以及當前時間。
FDC2214芯片是一個具有28位精度的12腳芯片,共有四個測量通道。每個測量通道使用前都需要設(shè)計諧振腔。諧振腔的電容電感參數(shù)可以自由選擇,本設(shè)計選用的測量模塊將18 μH的電感與33 pF的電容構(gòu)成一個通道的諧振電路,并接入40 MHz外接晶振。
配置FDC2214芯片寄存器,使其每10 ms讀取一次測量值,通道穩(wěn)定時間設(shè)為4 μs;選用外接晶振,使用通道0在單端模式下進行電容測量。測量完成后,F(xiàn)DC2214芯片將測得的、與頻率有關(guān)的返回值存儲在寄存器,通過轉(zhuǎn)換公式計算出實際電容值。
OneNET是一種多個領(lǐng)域開放的物聯(lián)網(wǎng)開放平臺。本設(shè)計使用該平臺接收數(shù)據(jù)流并完成簡單的數(shù)據(jù)處理工作[14]。在OneNET平臺取得分配的 APIkey,用于接入云平臺時的安全鑒權(quán),選擇HTTP協(xié)議簡單地傳輸濃度數(shù)據(jù)流。完成基本配置后,可對數(shù)據(jù)上傳功能進行可視化配置,準備將樹莓派所測得的數(shù)據(jù)上傳。
OneNET云平臺提供了幾種現(xiàn)成的圖表樣式以供選擇。用戶能夠自定義幾種給定的圖表外觀。
本設(shè)計為反映水體鹽度的變化情況,選擇折線圖反映濃度測量情況,刷新頻率設(shè)定為5 s。水體鹽濃度折線如圖2所示。
圖2 水體鹽濃度折線圖
圖2能夠反映一段時間內(nèi)的鹽度變化情況,在每一點處標明測量值,滿足實時監(jiān)測的需要,但不適用于對較長時間的測量結(jié)果進行分析。
在OneNET云平臺中,設(shè)置了兩個觸發(fā)器對數(shù)據(jù)流進行監(jiān)控。觸發(fā)器將在數(shù)據(jù)流達到預(yù)設(shè)條件時發(fā)送告警信息。本設(shè)計共設(shè)置了兩個觸發(fā)器,觸發(fā)器綁定數(shù)據(jù)流均為濃度?!癊xcessive”觸發(fā)器在濃度值大于0.038 g/mL時觸發(fā),“Insufficient”觸發(fā)器在濃度值低于0.021 9 g/mL時觸發(fā)。本設(shè)計采用電子郵件接收該觸發(fā)器的告警信息。電子郵件中將說明觸發(fā)器觸發(fā)類型、觸發(fā)時間以及觸發(fā)值。用戶可在任意能夠接收電子郵件的移動端獲取觸發(fā)器上報的信息,在水體鹽濃度異常時及時作出反應(yīng),實現(xiàn)了濃度監(jiān)測自動告警。
本試驗采用市面上一種固定成分配比的人工海鹽配置不同濃度的鹽溶液。人工海水按照鹽度26配比時,適用于海水魚養(yǎng)殖的環(huán)境。為方便試驗,將該值換算為濃度值0.032 g/mL。實際使用中水體鹽濃度大部分時間在該值附近。為保證傳感器在該濃度值附近測量的準確性,在該濃度值附近選擇了15個濃度值點進行電容-鹽濃度曲線標定。電容-鹽濃度散點如圖3所示。
圖3 電容-鹽濃度散點圖
根據(jù)圖3,將電容值作為自變量,水體鹽濃度值作為因變量進行函數(shù)擬合。在擬合方法上選擇多種方法進行了嘗試,最終選擇了一階多項式擬合結(jié)果作為電容-鹽濃度曲線。
水體鹽濃度測量結(jié)果如圖4所示。
圖4 水體鹽濃度測量結(jié)果
本試驗?zāi)康氖球炞C傳感器鹽濃度測量的準確性,同時初步計算傳感器的靜態(tài)特性。試驗選取了與電容-鹽濃度曲線標定試驗中相同的15個濃度點進行測量。試驗證明了擬合曲線結(jié)果的準確性,總體上測量值與實際值的符合程度達到了本系統(tǒng)的要求。
本文使用樹莓派作為下位機、Nokia5110作為顯示屏,完成通信功能、數(shù)據(jù)轉(zhuǎn)換與顯示功能;將FDC2214模塊作為電容測量設(shè)備,用電容的變化量反映水體鹽濃度的變化量;使用OneNET云平臺進行了數(shù)據(jù)處理,實現(xiàn)了自動告警;進行了電容-鹽濃度曲線標定試驗與水體鹽濃度測量試驗。計算得到傳感器的最大相對誤差為7.91%,標稱相對誤差4.74%,實現(xiàn)了電容式傳感器測量水體鹽度、移動端實時監(jiān)測水體鹽度與自動告警的功能[15]。傳感器精度與設(shè)備的復(fù)雜程度均能夠滿足海水魚養(yǎng)殖對于水體鹽度監(jiān)測的需要。