楊 磊,熊衛(wèi)華,姜 明
1(浙江理工大學 機械與自動控制學院,杭州 310018)
2(杭州電子科技大學 計算機學院,杭州 310018)
在人類的生產生活之中,水資源是必不可少的物質[1].但是,現代工業(yè)的快速發(fā)展都在以一定的環(huán)境污染作為代價,給生態(tài)環(huán)境帶來了不好的影響,特別是水污染方面,尤其嚴重[2].這也使得人們對于水質安全問題特別在意,生活用水的安全質量問題也受到了社會各界的廣泛關注[3,4].
在現如今科技發(fā)達的信息時代,物聯網的發(fā)展速度也是極快的,已經逐步進入萬物互聯的物聯網時代了[5].而其中,NB-IoT更是物聯網通信技術中的佼佼者,與傳統(tǒng)的WiFi、GPRS和藍牙等無線通信技術相比,NB-IoT具有廣覆蓋、低功耗、低成本和大連接等特點,更加符合萬物互聯這個物聯網概念,能更好地實現全球部署[6-8].當前,NB-IoT技術已被應用于多個領域,如智慧停車系統(tǒng)、農田遠程監(jiān)測系統(tǒng)和遠程抄表系統(tǒng)等等,技術發(fā)展已經逐漸成熟,相信在不久的將來會被人們應用在各個領域[9].
為保障人們生活用水的安全性,本文提供了一種基于NB-IoT技術的家庭水質檢測系統(tǒng),該系統(tǒng)能實時檢測水中溫度、TDS值和pH值,且將采集到的數據實時上傳至云平臺和服務器,實現遠程監(jiān)控.該系統(tǒng)極大降低了家庭水質檢測的難度,滿足了生活用水檢測設備的要求,給人們的生活提供了非常大的便利而且還帶來了很大的安全感.
家庭水質檢測系統(tǒng)主要由3個部分組成,水質檢測終端、無線通信模塊和遠程監(jiān)控平臺.
水質檢測終端可以即時采集生活用水的水質狀態(tài)數據信息,并且實時處理采集到的傳感器數據,將處理好的數據發(fā)送給無線通信模塊.無線通信模塊作用相當于是遠程監(jiān)控平臺和水質檢測終端進行信息交互的驛站,所有信息都要通過無線通信模塊進行傳遞.終端系統(tǒng)將打包好的數據信息先發(fā)給無線通信模塊,經由無線通信模塊發(fā)送給服務器,服務器再發(fā)送給遠程監(jiān)控平臺[10].遠程監(jiān)控平臺的功能是對終端系統(tǒng)發(fā)送上來的數據包進行解析和整理統(tǒng)計,一方面將解析完成之后的實時水質數據以非常直觀的方式呈現給用戶,另一方面將過往的水質數據進行整理統(tǒng)計,方便用戶查看之前的數據,方便用戶對家里的水質安全有個更加全面的了解[11].整個檢測系統(tǒng)的架構見圖1.
終端系統(tǒng)的硬件部分由5個部分組成,包含有MCU控制模塊、通信模塊、數據存儲模塊、傳感器模塊以及電源模塊.模塊化的設計有利于降低整個系統(tǒng)的設計難度,提高系統(tǒng)設計的效率和有效性.水質檢測終端系統(tǒng)的硬件框圖見圖2.

圖1 檢測系統(tǒng)架構圖

圖2 水質檢測終端系統(tǒng)的硬件框圖
本系統(tǒng)的主控芯片采用的是ST公司的超低功耗的STM32L433CBT6芯片.它的運行功耗84 μA/MHz,睡眠功耗只有2 μA.它的主時鐘頻率最高達48 MHz,可以滿足整個系統(tǒng)的運行和運算,一般被應用在物聯網和可穿戴等設備上.
傳感器模塊一共由3種傳感器組成,分別是pH傳感器、溫度傳感器和TDS傳感器.
2.2.1 pH傳感器模塊
pH傳感器是用來檢測被測溶液中氫離子濃度并轉換成相應的電信號的傳感器.本系統(tǒng)的pH傳感器模塊的工作原理是用氫離子玻璃電極與參比電極組成原電池,在玻璃膜與被測溶液中氫離子進行例子交換過程中,通過測量采集電極之間的電位差,來檢測溶液中的氫離子濃度,從而檢測出被測液體的pH值[12].
該傳感器電路使用反向跟隨放大電路,主要電路組成有穩(wěn)壓電路、電壓跟隨電路和反向放大電路.穩(wěn)壓電路由電壓基準芯片TL432組成,它的主要功能是輸出精準穩(wěn)定的1.25 V基準電壓,用作MCU的ADC采樣時的參考電壓.電壓跟隨電路和反向放大電路由精密運放MS8628組成.它們的作用是將采集到的電位信號進行精密準確放大,讓MCU采集到的信號數據更加的準確,增加可信度.
2.2.2 溫度傳感器模塊
溫度傳感器模塊使用NTC熱敏電阻來采集溫度變化信號.熱敏電阻的靈敏度較高,體積小,使用方便.本系統(tǒng)使用的是負溫度系數熱敏電阻器,即在溫度越高時,其電阻值越低.且本系統(tǒng)使用兩個NTC熱敏電阻進行對比測試,防止本系統(tǒng)在長時間工作之后,其中一個熱敏電阻出現損耗而導致采集的數據錯誤.
2.2.3 TDS傳感器模塊
本系統(tǒng)的TDS傳感器采用電導電極法測量水的電導率,而水的電導率和TDS值成正比例關系,從而實現間接測量值的TDS值[13].該傳感器電路采用分壓法來實現電導率的采集.將測量電極與精密電阻串聯,通過采集精密電阻上的分壓值來計算出電極間的等效電阻,從而推斷出水質的電導率.為避免使用的鉑金探針電極因為長時間單向通電造成氧化,本系統(tǒng)采用了雙向交替通電的方法,延長TDS探針的使用壽命,提高測量精度.
本系統(tǒng)的電源模塊由DC-DC電源模塊和低壓差線性穩(wěn)壓(LDO)電路組成.輸入電壓為外部電源適配器輸入的24 V,經由DC-DC芯片SY8201組成的BUCK電路降壓至5 V,提供給NB-IoT模塊.之后,5 V電源經由ME6119C33芯片組成的LDO電路降壓至3.3 V,為MCU和其他各模塊提供穩(wěn)定的輸入電壓.本模塊選取的兩種電源芯片都保證了輸出電壓的穩(wěn)定,輸出電流滿足系統(tǒng)所需要的驅動電流.
本系統(tǒng)選取CAT24C256芯片作為EEPROM存儲芯片,容量為256 KB,使用I2C接口與MCU進行數據傳輸.本設計運用存儲模塊是為了將過去一周采集到的數據保存下來,防止設備的突然斷電斷網造成的數據缺失.在設備重新上電聯網之后,會將存儲器里的數據同步到云平臺和服務器,保證數據的一致性和準確性.
本系統(tǒng)使用的NB-IoT模塊是上海移遠的BC-35G模組,它使用的是華為的Hi2115芯片,支持B1/B3/B8/B5/B20/B28共6個工作頻段,支持UDP/TCP/MQTT/CoAP/LWM2M共5種工作協議.本系統(tǒng)使用的是移動的NB卡,所以它的工作中心頻段應當設置在900 MHz.BC-35G模塊通過串口與MCU系統(tǒng)進行數據交互,MCU通過串口向BC-35G模塊發(fā)送AT指令集,來控制BC-35G模塊,實現與平臺、服務器的通信和數據傳輸.
水質檢測終端的系統(tǒng)軟件設計可分為MCU控制驅動程序和IoT云平臺產品開發(fā)設計兩部分.MCU控制驅動程序用KEIL軟件編寫和調試.IoT云平臺產品開發(fā)設計是在華為的OceanConnect云平臺上進行開發(fā)設計.
OceanConnect云平臺,是華為公司打造的IoT物聯網開發(fā)者平臺,能夠幫助開發(fā)者輕松實現設備對接,還提供了完善的配套的開發(fā)指導,API參考等資源,能極大的幫助開發(fā)者縮短開發(fā)周期,提升開發(fā)者的開發(fā)效率.在本設計中,NB-IoT模塊與OceanConnect云平臺之間的信息交互是通過CoAP協議來實現的.云平臺與其他開發(fā)應用之間是基于HTTPS通信的[14].
OceanConnect云平臺的工作原理:通過圖形化的方式實現設備的二進制碼流到IoT平臺的JSON格式消息的轉換,同時將平臺下發(fā)的控制命令編碼成設備的二進制碼流格式[15].OceanConnect云平臺工作流程圖見圖3.

圖3 OceanConnect云平臺工作流程圖
OceanConnect云平臺產品開發(fā)工作主要包括Profile產品模型定義和編解碼插件開發(fā).在本設計中Profile產品模型需要定義pH值、溫度值和TDS值3種服務信息模型,編解碼插件開發(fā)需要設置這3個服務信息的映射服務,使其數據格式可以轉換成JSON格式,以便于平臺處理和保存數據.
本系統(tǒng)的工作流程:系統(tǒng)上電后,MCU先完成系統(tǒng)設備初始化,各工作模塊初始化,作運行準備;pH、溫度、TDS傳感器開始工作,采集水質狀態(tài)數據,并按照相應的協議完成數據打包;NB-IoT設備進入聯網狀態(tài),確認入網成功之后,MCU將打包好的數據報文通過串口發(fā)送給NB-IoT模塊,NB模塊按照CoAP協議將打包好的數據報文發(fā)送給云平臺;判斷是否發(fā)送成功,確認發(fā)送成功后,將結束一次數據傳輸;反之,若發(fā)送失敗,則再次發(fā)送數據,超過3次發(fā)送失敗,則將此次發(fā)送失敗數據保存在存儲模塊中,等待下次發(fā)送數據時一起發(fā)送.系統(tǒng)主程序流程圖見圖4.

圖4 系統(tǒng)主程序流程圖
為了檢測系統(tǒng)設計的可靠性和準確性,選用溫度計作為標準溫度計,選用梅特勒托利多電導率儀作為標準TDS檢測儀,選用已經標定好pH值的標準溶液作為被測水質,對本設計的溫度、TDS和pH傳感器分別進行對比實驗.
在對溫度傳感器進行對比試驗時,使用恒溫水箱當作測試環(huán)境,利用恒溫水箱的加熱功能,將水溫調節(jié)到不同溫度,分別使用標準溫度計和溫度傳感器的去采集水箱里水的溫度數據,然后對比恒溫水箱所設定的溫度,查看并記錄這三者之間的差值.對比溫度數據見表1.

表1 標準溫度計與溫度傳感器的測試數據對比表(℃)
由表中數據可以得出,恒溫水箱溫度與標準溫度計和溫度傳感器測試所得出的數據誤差在±0.5 ℃以內,本系統(tǒng)的溫度傳感器的準確度在±0.5 ℃以內,誤差在可接受范圍之內,已經可以滿足日常生活所需.
梅特勒托利多電導率儀是高品質的TDS檢測儀,應用在覆蓋衛(wèi)生要求嚴格的半導體和制藥生產、生產條件惡劣的化工廠及電廠高純水電導率測量等.在對水質的TDS進行測試時,將配置不同濃度的水溶液來模擬不同水質,用梅特勒托利多電導率儀和TDS傳感器分別測試不同的TDS值的水質,來驗證TDS傳感器的準確性,記錄下兩者間數據的差別.對比TDS數據見表2.

表2 梅特勒電導率儀與TDS傳感器的測試數據對比表
由表中數據可以得出,本設計的TDS傳感器測得的TDS值與標準TDS檢測儀檢測出的TDS值誤差并不大,在1%以內.一般情況下,自來水的TDS值在400左右,在該閾值范圍之內,本系統(tǒng)的TDS傳感器的測試準確性和精度已經可以滿足日常水質檢測的基本需求,達到設計時的目標.
在對水質的pH進行測試時,使用的pH標準溶液的PH值分別為4、7和10,分別觀察在3種酸堿度差異如此明顯的水溶液中,pH傳感器的測試效果.pH測試數據見表3.

表3 pH傳感器測試數據表
由表3所提供的數據,可以得出該pH傳感器在酸性和中性溶液中的測試結果很好,誤差在±0.1之內,滿足日常生活所需的基本要求.但是在強堿性pH=10的溶液中誤差卻達到了0.5左右,經過分析,本系統(tǒng)設計所用的球泡玻璃電極并不適用于強堿環(huán)境,所以在檢測強堿性水溶液時的測試結果并不好.如需在強堿性環(huán)境下使用,需要更改相應的球泡玻璃電極和電路.
硬件系統(tǒng)設備連接完好并且主程序運行正常,OceanConnect云平臺會接收到被測水質的溫度、pH值和TDS值,如圖5所示.
基于NB-IoT技術的家庭水質檢測系統(tǒng)實現了對家庭用水的水體質量檢測且達到實時監(jiān)控與反饋的目標,為人們提供了準確即時的水質信息,讓人們能更加安全、更加放心的用水.通過實際應用和測試,本系統(tǒng)的測試結果達到了理想的期望值,可以滿足人們的日常生活需要,這對于家庭水質檢測這一方面具有非常重要的現實意義和參考價值.

圖5 OceanConnect云平臺接收數據界面