焦雄科,劉霞霞,劉美琪,王文情,張水英
(浙江理工大學 信息學院,浙江 杭州 310018)

系統由主控模塊(MCU)、電源模塊、pH傳感器、WiFi模塊、手機端微信小程序組成。傳感器模塊返回的AD采樣值通過CC3200模/數轉換器(ADC)轉換后送至MCU,經過數據處理、轉換,WiFi模塊可將其顯示在PC端和手機微信小程序上。數據正常時,發光二極管(LED)(綠)常亮,顯示檢測數值;數據異常時,LED(紅)閃爍,顯示端顯示error,并產生1 s振動報警。
本系統旨在監控水質指標,涉及生物的存活環境,可靠性必須保證。同時,由于是水下檢測裝置,該控制模塊必須具有較強的續航能力和比較方便的通信功能。TI公司的CC3200單片機具有4通道12位模數轉換器,在高級低功耗模式下工作電流最低可達4 μA,并且具有休眠喚醒功能,可以極大地降低MCU的功耗,同時具備WiFi通信功能,可滿足本系統設計需求。
本系統旨在監測魚塘水質,不宜使用外部線路供電,所以采用電池供電。考慮到電池消耗后單片機掉電的情況,采用電池組并聯,通過LM2596穩壓模塊向系統供電的方式,以最大限度地保證系統的可靠性。
該模塊要求具有較低的功耗和較小的體積,設計采用“E-201-C”pH復合電極傳感器,通過如圖1所示的TLC4 502雙運算放大電路對采集的微弱電信號進行放大,以便于單片機的檢測[1]。經過放大的信號為模擬量,經過CC3200自帶的ADC模塊進行數據轉換后得到檢測的pH值。通過標準溶液測試得到如表1所示的數據。
AD轉換公式為U=1.46n/4 096,其中n為數字信號值。使用MATLAB軟件,基于表1數據,編寫代碼,求得pH值(D)與U的關系式為
D=154.4U3-383.0U2+291.2U-59.91。

圖1 TLC4502放大模塊電路

表1 標準溶液的pH值與測得的電壓值
其關系圖像如圖2所示。

圖2 pH與U的關系曲線
首先使用WiFi.init()函數初始化WiFi功能模塊,讀取當前的固件信息和MAC地址,掃描當前環境下可用網絡的服務集標識符(SSID)、無線接收信號強度(RSSI)和加密方式;然后使用WiFi.begin()連接指定網絡,判斷網絡是否連接成功,若連接成功,則獲取IP(網際互連協議)地址,以開啟webServer服務并監聽客戶端連接,如果客戶端有效,則讀取數據并分析;最后將數據封裝成HTTP(超文本傳輸協議)報文并回發至客戶端。至此,完成單片機數據的無線傳輸過程。圖3顯示了對CC3200 LaunchPad的IP地址發送請求后得到的實時數據。

圖3 WiFi連接客戶端的結果
微信小程序是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶不用關心是否安裝太多應用的問題,因此,本系統選擇微信小程序來實現數據顯示。微信小程序開發主要借助微信開發者工具完成,實現對檢測數據的實時顯示和報警。本研究對微信小程序的頁面設計和基本設置不予說明。本系統主要使用wx.request(Object object)函數來發起網絡請求,在工程中通過設置url屬性和data屬性,分別配置開發者的服務器接口地址,獲取服務器請求的參數。同時,用戶也可以手動修改IP地址以實現靈活控制。最后使用wx.vibrateLong(Object)命令實現手機震動報警的功能[2]。
根據如圖4所示的系統框圖進行軟件設計。系統要實現對變量的檢測,而且要進行無線數據傳輸和自動檢測;因此,軟件設計需要具有高效性、準確性和穩定性,不能出現程序跑飛和bug(漏洞)。使用順序結構和中斷方式來完成程序的設計[3],順序檢測變量值,向WiFi模塊發送中斷請求,互不影響,以保證系統的穩定性和高效性。
調試過程,準備3種標準pH溶液,分別是鄰苯二甲酸氫鉀、混合磷酸鹽、四硼酸鈉[4],對應的pH值分別為4.01、7.00、10.01。用所設計的檢測系統和衡欣AZ8 685 A pH測試筆分別對這3種標準溶液進行測量。為了使測量結果更具可靠性,對每一種標準溶液分別進行3次重復測量。從表2的數據可以看出,用所設計的檢測系統測得的結果比pH測試筆測得的結果更加精準。同時,該系統的反應速度靈敏,無需長時間等待,將傳感器探頭放入需要測量的水中2~3 s便可看到測量結果,提升了測量效率。

圖4 軟件的系統框

表2 系統的測試結果
設計了一套可以實時監測魚塘水質pH值的系統,當pH超標時就會報警,方便養殖戶隨時掌握魚塘水質,為養殖提供了很大便利。本系統設計選用的器件都是低功耗的,電池的續航能力更加持久。同時,采用微信小程序的方式來顯示魚塘水的pH值,用手機震動的方式來報警,具有隨用隨走、不用下載等優點,用戶使用更加方便。