葉碧慧,王宇鑫,武永華
(福建江夏學院 電子信息科學學院,福建福州,350108)
隨著生活水平的逐漸提升,人們越來越關注下一代的成長,尤其是新生兒的成長。對于新生兒來說,其免疫系統(tǒng)不夠強大,對細菌的抵抗能力有限,因此要保證所用的奶瓶潔凈無菌[1]。對于傳統(tǒng)的奶瓶消毒裝置來說,其主要工作原理是利用水的高溫對奶瓶殺菌消毒[2]。隨著科技的發(fā)展以及嬰兒產業(yè)的逐漸成熟,對于奶瓶的消毒的方式也不再局限于傳統(tǒng)的高溫消毒,還出現(xiàn)了蒸汽鍋消毒法、微波爐消毒法、化學消毒劑浸泡法、紫外線消毒法等消毒方式[3]。并基于這些方式,誕生了各式各樣的奶瓶消毒裝置。除了奶瓶的消毒問題,用奶是否均衡也是嬰兒成長過程中面臨的一大難題。不同時期的嬰兒來說,其用奶的標準是不同的。定期判斷嬰兒最近的用奶時間和用奶量是否均衡,以便及時做出調整。目前,市面上出現(xiàn)的奶瓶消毒裝置大多只具有消毒功能,并不具備統(tǒng)計奶水的攝入時間和攝入量的功能。
由于傳統(tǒng)的奶瓶消毒裝置來說,其裝置功能單一,只具有傳統(tǒng)的消毒功能,不能滿足用戶更多的要求。本文設計的這種多功能奶瓶稱重消毒裝置,利用的是紫外線消毒的方法,通過一定波長的紫外線對奶瓶照射,以此破壞奶瓶上殘留細菌的分子結構,從而起到殺菌消毒的作用[4]。這種奶瓶消毒方式不僅克服了傳統(tǒng)奶瓶消毒方式的不足,而且滅殺細菌的效率更高。同時,該裝置在傳統(tǒng)的奶瓶消毒裝置的基礎上,加入了稱重功能與物聯(lián)網功能。不僅克服了傳統(tǒng)奶瓶消毒裝置功能單一的特點,而且能夠統(tǒng)計每次嬰兒用奶量和用奶時間,并且能夠將每次用奶量的數(shù)據(jù)上傳至服務器,方便用戶在微信小程序上實時查看,有利于用戶判斷近期嬰兒的用奶是否均衡,方便及時做出調整。此外,該裝置還加入了語音提示功能和HMI電容串口觸摸屏顯示觸控功能[5],極大提高用戶的人機交互體驗。
該多功能奶瓶稱重消毒裝置的設計主要由單片機STM32F103控制電路[6]、UVC3535深紫外線LED燈珠殺菌消毒電路[7]、JQ8900-16P語音模塊、ATK-ESP8266無線Wi-Fi模塊[8]、HX711稱重模塊[9]、壓力傳感器、HMI電容串口觸摸屏、云服務器、微信小程序等部分組成。
本裝置系統(tǒng)是以HMI電容串口觸摸屏作為顯示控制器,用戶可通過對HMI電容串口觸摸屏顯示界面觸控以實現(xiàn)對整個系統(tǒng)的控制;該裝置以單片機STM32F103C8T6芯片作為中央處理器,使其控制與其相連的消毒子系統(tǒng)、稱重子系統(tǒng)、語音提示子系統(tǒng)以及無線通信子系統(tǒng)。顯示控制器與中央處理器之間的通信靠USART串口完成,單片機通過接收由HMI電容串口觸摸屏傳來的指令控制各個子系統(tǒng),并將各個子系統(tǒng)返回的數(shù)據(jù)通過單片機發(fā)送至HMI電容串口觸摸屏顯示。消毒子系統(tǒng)由一個繼電器模塊和8個UVC3535深紫外線LED燈珠構成;稱重子系統(tǒng)由HX711模塊與5kg壓力傳感器組成;語音提示子系統(tǒng)由JQ8900-16P語音模塊與揚聲器組成;無線通信子系統(tǒng)由ATK-ESP8266模塊構成,完成與云服務器的通信。本裝置硬件設計框圖如下圖1所示,主要實現(xiàn)以下功能:
圖1 裝置硬件設計方案
(1)利用HX711模塊與壓力傳感器實現(xiàn)對每次用奶量的測量;
(2)利用單片機內部定時器控制紫外線消毒電路對奶瓶進行定時殺菌消毒;
(3)利用HMI串口屏顯示測量數(shù)據(jù)以及通過觸控完成對整個系統(tǒng)的控制;
(4)利用JQ8900-16P語音模塊與揚聲器實現(xiàn)語音提示播報;
(5)利用ATK-ESP8266無線Wi-Fi模塊將數(shù)據(jù)上傳至服務器;
(6)利用客戶端的微信小程序獲取云服務器端的數(shù)據(jù)并向用戶實時展示。
本裝置的軟件主要由三部分構成,第一部分為裝置設備端軟件設計,主要完成對裝置硬件各子系統(tǒng)的控制作用,按其設備端硬件系統(tǒng)的各個子系統(tǒng)可以分為初始化配置子程序、顯示控制器子程序、消毒子程序、稱重子程序、無線通信子程序五個部分;第二部分為云服務器端軟件設計,云服務器上搭建了Nginx服務器作為Web服務器[10],主要完成對設備端上傳的數(shù)據(jù)進行存儲、讀取等操作,該部分軟件設計又可以分為TCP服務程序、數(shù)據(jù)庫操作程序以及HTTP服務程序三個部分;第三部分為客戶端軟件設計,主要完成對云服務器的數(shù)據(jù)庫中存儲的數(shù)據(jù)進行讀取、清空操作,客戶端采用的是微信小程序平臺,故該部分的軟件設計可以分為微信小程序的頁面設計以及微信小程序后臺程序設計兩大部分。裝置軟件設計框圖如下圖2所示。
圖2 裝置軟件設計框圖
本設計采用的是單片機STM32F103C8T6芯片作為系統(tǒng)的中央處理器。該芯片含有三個USART接口,三個接口分別與HMI電容串口觸摸屏、ATK-ESP8266無線Wi-Fi模塊以及JQ8900-16P語音模塊相連。通過HX711模塊的PD_SCK與DOUT管腳與單片機PB.0與PB.1相連,實現(xiàn)HX711模塊與中央處理器的通訊。此外,單片機STM32F103C8T6芯片的PB.5口與繼電器模組的信號觸發(fā)端相連,控制繼電器模組的觸發(fā)狀態(tài),從而實現(xiàn)對UVC3535深紫外線LED燈珠電路的控制。裝置硬件電路原理圖如圖3所示。
圖3 裝置硬件電路原理圖
該子系統(tǒng)由HX711模塊與5kg壓力傳感器組成,實現(xiàn)用奶量稱重功能。HX711電路圖如圖4所示。
圖4 HX711電路圖
本系統(tǒng)的5kg壓力傳感器供電電壓由HX711部分電路提供,由該電路可得供電電壓的計算公式如(1):
HX711模塊中的基準電壓VBG的值為1.25V,R1為20KΩ,R2為8.2KΩ,帶入可計算出供電電壓為4.3V,從而可得滿量程的輸出電壓為4.3mV。該子系統(tǒng)使用的AD轉換器HX711芯片A通道可進行128倍的信號增益,當放上5kg物體就會產生4.3mV的電壓,4.3mV的電壓經由HX711模塊A通道放大128倍,然后處理為24位的轉換數(shù)據(jù),最后由單片機STM32F103C8T6芯片按一定時鐘序列讀取轉換。
裝置接通電源后,首先會對各個子系統(tǒng)與單片機連接的模塊、USART串口、輸出的外設端口、通用定時器等進行初始化配置。初始化配置完成后,程序將進入主循環(huán),等待接收顯示控制器向USART串口一發(fā)送的操作指令。根據(jù)接收到的顯示控制器指令,單片機會調用相應子系統(tǒng)的程序控制子系統(tǒng)執(zhí)行相應操作。裝置設備端主程序流程圖如圖5所示。
圖5 裝置設備端主程序流程圖
本裝置所用的ATK-ESP8266模塊是用AT指令進行操作,單片機通過USART串口二向ATK-ESP8266模塊發(fā)送AT指令實現(xiàn)上傳數(shù)據(jù)功能。由于本設計只向云服務器上傳每次稱重數(shù)據(jù),故每次上傳數(shù)據(jù)的過程只通過USART串口二向ATKESP8266模塊發(fā)送3條AT指令,發(fā)送的AT指令及功能如表1所示。
表1 上傳數(shù)據(jù)發(fā)送的AT指令及功能
該裝置在云服務器上搭建了Nginx服務器作為Web服務器。在Web服務器上搭建了TCP軟件服務器、HTTP軟件服務器以及Redis數(shù)據(jù)庫[11]。云服務器端通信軟件設計如圖6所示。
圖6 云服務器端通信軟件設計
本設計使用Redis數(shù)據(jù)庫作為存放稱重數(shù)據(jù)和上傳時間數(shù)據(jù)的存儲空間。設備端通過ATK-ESP8266模塊與云服務器端的TCP軟件服務器建立TCP通信,TCP軟件服務器用于接收設備端上傳的稱重數(shù)據(jù),并將上傳的數(shù)據(jù)存儲于Redis數(shù)據(jù)庫中。云服務器端的HTTP軟件服務器與客戶端之間由HTTP通信,客戶端通過HTTP軟件服務器讀取Redis數(shù)據(jù)庫中存儲的稱重數(shù)據(jù)和時間數(shù)據(jù),并通過發(fā)送操作指令實現(xiàn)清空已存儲數(shù)據(jù)的操作。
該裝置的客戶端展示是基于微信公眾平臺,利用微信小程序作為前端展示界面。該系統(tǒng)通過微信開發(fā)者工具軟件完成小程序的開發(fā),能夠簡單實現(xiàn)獲取云服務端數(shù)據(jù)庫的數(shù)據(jù)和清除所有云服務端數(shù)據(jù)庫數(shù)據(jù)的功能。微信小程序軟件架構圖如圖7所示。
微信小程序的軟件架構主要由view模塊與service模塊構成,view模塊負責前臺展示,service模塊負責后臺邏輯,兩個模塊之間通過JSBridage通信[18]。view模塊相當于前臺頁面,當用戶在頁面上進行操作時,view模塊會通知service模塊,通過service模塊進行分析處理,service模塊可向云服務端HTTP軟件服務器接口發(fā)送數(shù)據(jù)請求,并把接收的數(shù)據(jù)發(fā)送至view模塊更新顯示。
裝置的測試主要是測試5kg壓力傳感器和HX711模塊組成的稱重子系統(tǒng)測量的精度,該部分測試利用砝碼輔助完成。采用一組砝碼作為重量基準,分別測量放入不同砝碼時,稱重子系統(tǒng)所得到的重量,然后計算測量的重量與實際重量的相對誤差,就能判斷該稱重子系統(tǒng)的精度。測量砝碼重量與實際砝碼重量以及兩者相對誤差如表2所示。
表2 測量砝碼重量與實際砝碼重量以及兩者相對誤差
在該部分的測試過程中,放置砝碼重量與測量的相對誤差最大為0.2%,經過調試可以發(fā)現(xiàn)主要有兩個原因,一是當電源接線發(fā)生抖動時,輸入的電源電壓會產生波動,且原本的輸入電源電壓本身不穩(wěn)定;二是HX711模塊的PD_SCK和DOUT引線移動或者稱重裝置處于非水平狀態(tài)。
該部分的測試主要是測試消毒子系統(tǒng)是否能夠正常運行。正常工作狀態(tài)下的UVC3535深紫外線LED燈珠的工作電壓為6.0V-6.5V,工作電流為40mA。在該部分的測試過程中,可以觀察到當開啟消毒功能時,繼電器模組觸發(fā)指示燈(綠燈)與UVC3535深紫外線LED燈珠皆正常亮起。通過萬用表對正常消毒狀態(tài)下的UVC3535深紫外線LED燈珠兩端電壓和電流進行測量,測量得出燈珠的電壓為6.01V、電流41mA,由此得出UVC3535深紫外線LED燈珠能夠正常工作。而且,通過手機秒表對消毒時間進行測量后,對比可以發(fā)現(xiàn)實際消毒時長與定時時長基本一致,滿足設計要求。
該部分的測試主要是測試設備端獲得的稱重數(shù)據(jù)是否能夠發(fā)送至云服務器、客戶端微信小程序能否獲取云服務器端Redis數(shù)據(jù)庫中的存儲數(shù)據(jù)并正常在主頁面顯示以及微信小程序能否實現(xiàn)清空云服務器端Redis數(shù)據(jù)庫中存儲數(shù)據(jù)的操作。在該部分的測試過程中,設備端通過對奶瓶測量稱重數(shù)據(jù),獲取用奶量的稱重數(shù)據(jù)為930g。然后在顯示控制器HMI電容串口觸摸屏上點擊上傳按鈕,將本次測量的用奶量稱重數(shù)據(jù)通過ATK-ESP8266無線Wi-Fi模塊上傳至云服務器端。最后,通過智能手機上的微信小程序可以觀察到,設備端獲取的用奶量稱重數(shù)據(jù)和稱重的時間能夠在微信小程序的主頁面上正常展示。點擊清除后臺數(shù)據(jù)按鈕之后,可以觀察到之前顯示的數(shù)據(jù)被全部清除,這表明云服務端的Redis數(shù)據(jù)庫中存儲數(shù)據(jù)已被清結論。
傳統(tǒng)的奶瓶消毒裝置功能單一,只具有傳統(tǒng)的消毒功能,不能滿足用戶更多的要求。為了克服傳統(tǒng)奶瓶消毒裝置的不足,本文設計了一種多功能奶瓶稱重消毒裝置。該裝置實現(xiàn)如下功能:對每次用奶量的測量功能、奶瓶使用后的消毒功能、實現(xiàn)將測量數(shù)據(jù)在設備端顯示功能、實現(xiàn)用戶操作完成后的語音提示播報功能、實現(xiàn)將測量數(shù)據(jù)上傳至云服務器端功能、實現(xiàn)客戶端的微信小程序對上傳的測量數(shù)據(jù)實時讀取功能。經過測試,該裝置基本實現(xiàn)以上功能,且具有良好的系統(tǒng)穩(wěn)定性與正確性。