代亞坤,錢玥琳,劉正天,宋子涵,樓超宇,黃銳云,李吉功
(天津職業(yè)技術(shù)師范大學(xué) 自動化與電氣工程學(xué)院,天津, 300222)
物聯(lián)網(wǎng)大數(shù)據(jù)與5G 的發(fā)展,為家居領(lǐng)域的發(fā)展帶來了新機遇和新發(fā)展,使各類智能居民消費產(chǎn)品日臻成熟和完善[1-3]。隨著健康已經(jīng)成為近些年來的熱點話題,人們對健康的重視程度越來越高,養(yǎng)成健康的飲水習(xí)慣就是其中重要的一環(huán)。但簡單的飲水動作常常被人們忽視。因此,一個能夠?qū)W習(xí)用戶飲水習(xí)慣并提醒用戶健康飲水的設(shè)備有著良好的應(yīng)用前景[4-5]。目前的市面上,專注于輔助健康飲水習(xí)慣養(yǎng)成方面的產(chǎn)品類型相對較少,實現(xiàn)形式多是以水杯呈現(xiàn),不僅樣式單一,而且功能不夠完善,只能保溫而無法加熱,同時不具備智慧特征等。
鑒于此,本文設(shè)計了一款硬件與軟件相結(jié)合的便攜式智慧水杯墊,可以通過硬件采集數(shù)據(jù)、手機APP 的數(shù)據(jù)分析,通過聲音、燈光提醒和APP 顯示來達到幫助使用者健康飲水的目的。除此之外,設(shè)計的智慧水杯墊還具有保溫加熱功能。
系統(tǒng)的硬件框圖如圖1 所示。開啟設(shè)備后,單片機通過稱重模塊檢測是否放置了水杯并且記錄重量,然后通過溫度傳感器檢測溫度,如果水溫未達到溫度的設(shè)定值將會開始加熱并進行保溫。當(dāng)用戶再一次放下水杯時,單片機將再次檢測重量,得出差值,進而告知用戶本次的喝水量,并且上報云端,以便于使用數(shù)據(jù)生成圖表供用戶隨時查閱,并根據(jù)用戶的喝水情況提醒用戶養(yǎng)成良好的喝水習(xí)慣。除此之外,用戶還可以通過APP 自定義喝水計劃、水溫、彩燈顏色等。
圖1 硬件框圖
本設(shè)計的硬件部分按功能可以分為單片機主控模塊、數(shù)據(jù)云端上報、時鐘模塊、顯示模塊、報警模塊、溫度采集、溫度控制、稱重模塊,硬件框圖如圖1 所示。智能杯墊以STM32F103C8T6 單片機為控制核心,然后由溫度傳感器LM35 測量水溫,由兩個全橋稱重傳感器測量飲水前后的重量。稱重傳感器將重量轉(zhuǎn)成微弱的電壓信號,再通過24 位的A/D 轉(zhuǎn)換器HX711 轉(zhuǎn)換成數(shù)字信號[6],控制器會對該數(shù)字信號進行濾波,并計算出水的體積;水溫則通過LM35 檢測杯底溫度。水溫和飲水量都將顯示在屏幕上,并通過ESP 8266 無線通訊模塊上傳云平臺,再由云平臺下發(fā)到APP 中。語音模塊SU-03T 將會負(fù)責(zé)提醒使用者飲水。
根據(jù)圖1 所示的硬件框圖,所設(shè)計的智能水杯墊的硬件電路圖如圖2 所示,其中各主要模塊電路的設(shè)計詳細(xì)說明如下。
稱重模塊使用了10 千克的小量程稱重壓力傳感器YZC131,附帶有HX711AD 轉(zhuǎn)換模塊。稱重壓力傳感器的工作原理是金屬柱體受壓之后會產(chǎn)生輕微形變,通過與之相連的測量電路的電流變化反映金屬柱體承受的外力。將得到的微小電壓信號通過INNA、INPA、AVDD、BASE 等引腳傳輸給HX711 模塊,通過該芯片來進行模擬信號的數(shù)字化處理。
HX711 是一款高精度ADC 模數(shù)轉(zhuǎn)換芯片,由美國Avia Semiconductor 公司推出,廣泛應(yīng)用于稱重傳感器、壓力傳感器、溫度傳感器等模擬信號的數(shù)字化處理。HX711 工作電壓范圍廣泛,可在2.7V ~5V 之間工作,具有低功耗、高精度、高穩(wěn)定性等特點。該芯片具有24 位ADC,可以實現(xiàn)高精度的模擬信號轉(zhuǎn)換,并且內(nèi)置了程序可調(diào)增益放大器,可以通過程序設(shè)置不同的增益值來適應(yīng)不同的傳感器輸出信號范圍。此外,該芯片還具有內(nèi)置的溫度傳感器和電源電壓檢測功能,能夠?qū)鞲衅鬏敵鲂盘栠M行自動校準(zhǔn),提高了測量的精度和穩(wěn)定性。HX711 芯片的使用也非常方便,只需要將傳感器的信號引腳連接到芯片的輸入端口,然后通過輸出DOUT 引腳以及SCK 引腳連接單片機,通過單片機讀取芯片的輸出數(shù)據(jù)即可。同時,該芯片還支持SPI 數(shù)字接口,可以與各種微控制器和單片機進行通信,提高了系統(tǒng)的靈活性和可擴展性。將該芯片用于水杯墊的稱重計算,能準(zhǔn)確有效地檢測到水量的變化。
語音模塊采用了集成度較高的開發(fā)板SU-03 系列,高集成度有利于后續(xù)的開發(fā)與應(yīng)用。對于本設(shè)計來說,可以使用戶更加方便地制作只屬于自己的提醒語音。SU-03 系列語音模塊是一款基于AI 技術(shù)的多功能語音模塊,由智能公元公司生產(chǎn)。它采用高性能的語音處理芯片,具有較高的語音識別精度和語音合成質(zhì)量,能夠?qū)崿F(xiàn)語音識別、語音合成、語音播放等多種功能。SU-03T 語音模塊還支持離線語音識別和在線語音識別兩種模式,可以在不同的應(yīng)用場景下滿足不同的需求。
在使用SU-03T 語音模塊時,將該模塊的B0、B1 口與單片機的PA9、PA10 連接,然后通過控制指令,即可實現(xiàn)對語音模塊的控制和操作,在計時結(jié)束后進行語音播報,用戶可以使用內(nèi)置的語音指令庫,或者自定義語音指令,實現(xiàn)對其他設(shè)備的控制和操作。針對本設(shè)計,SU-03T 語音模塊可以滿足不同地區(qū)和不同語種的語音識別需求,以便于更多形式的語音提醒,在設(shè)定的時間倒計時結(jié)束時單片機會通過串口向SU-03T 發(fā)送設(shè)定好的字符串,模塊識別到之后會根據(jù)收到的信息進行判斷,選擇播報內(nèi)容,然后調(diào)用預(yù)先下載好的語音包進行語音播報,提醒使用者及時飲水。
本設(shè)計采用了較小的0.91 寸OLED 屏,該屏幕具有高對比度、高亮度、低功耗等特點,雖然尺寸較小,但仍然能夠顯示生動、清晰的圖像和文字,與此同時,使用小尺寸OLED 屏能夠?qū)⒂行У目臻g進行最大化的利用,將本就較為緊張的空間留給其他器件的同時增大與加熱片的距離以避免高溫。該屏幕的驅(qū)動芯片使用了SSD1306,支持I2C 通信協(xié)議進行控制和操作。I2C(Inter-Integrated Circuit,I2C)是一種串行通信協(xié)議,可以實現(xiàn)多個設(shè)備之間的通信和數(shù)據(jù)傳輸。通過I2C 通信協(xié)議,用戶可以將OLED 屏幕與其他設(shè)備(如單片機、微控制器、傳感器等)進行連接,進行數(shù)據(jù)傳輸和控制操作。I2C通信協(xié)議具有傳輸速度快、占用引腳少、連接器材簡單等特點,在本設(shè)計中使用了SCL、SDA 兩個引腳與單片機的PB6、PB7 引腳相連,相對于SPI 通訊方式占用了更少的引腳資源。
本設(shè)計采用了陶瓷加熱片CT-JRP505020,其具有體積小、熱效率高等優(yōu)點。通過部署在水杯墊上表面的兩塊陶瓷加熱片實現(xiàn)加熱功能,能夠在短短30s 內(nèi)迅速升溫到達50℃以上,并且最高溫度可達80℃,這使得所設(shè)計的水杯墊在快速加熱的應(yīng)用場景中具備了較高的適用性。為了控制加熱片的接通與關(guān)斷,本設(shè)計采用了固態(tài)繼電器PMA2D6132,其具有響應(yīng)速度快、噪音小、壽命長等優(yōu)點,能夠有效地控制加熱片的工作狀態(tài)。水溫檢測方式為通過LM35 溫度傳感器在杯底進行接觸式檢測。因為該檢測方式檢測到的并不是直接的水溫,所以需要根據(jù)獲得的溫度再進行一次計算,估計杯內(nèi)的水溫。為了使得水杯內(nèi)的水溫快速恒定在一個合適的范圍內(nèi),本設(shè)計使用了PD 算法進行溫度控制。
本設(shè)計使用的無線通訊模塊為ESP 8266 WiFi 模塊。ESP 8266 是一款低成本、高性能、低功耗的Wi-Fi 芯片,由樂鑫科技(Espressif Systems)開發(fā)。通過在ESP 8266上運行的固件,可通過串口命令或與Arduino IDE 集成的編程語言(如C++)進行編程。ESP8266 可以作為微控制器來控制傳感器和執(zhí)行其他任務(wù),同時還可以通過Wi-Fi 連接到互聯(lián)網(wǎng)并與其他設(shè)備進行通信。在本設(shè)計中,只使用了該芯片的聯(lián)網(wǎng)功能用于連接云平臺,將引腳TXDO 以及RXDO連接單片機的PA4 以及PA5 引腳,進行數(shù)據(jù)通信。
所設(shè)計的智能水杯墊通過ESP 8266 模塊連接OneNET云平臺。OneNET 云平臺支持海量設(shè)備的接入和管理,同時也支持多租戶和多場景的應(yīng)用部署,滿足不同規(guī)模的用戶需求。OneNET 支持多種連接方式,包括NB-IoT、2G/3G/4G、Wi-Fi、藍(lán)牙、以太網(wǎng)等,以此來實現(xiàn)與云平臺的通訊功能。在云平臺上創(chuàng)建產(chǎn)品之后,選擇通訊協(xié)議并將ID 與密鑰等連接信息保存,將連接信息寫入ESP8266 模塊的初始化過程。這樣當(dāng)模塊上電之后,將根據(jù)預(yù)置的信息連接云平臺,并且驗證產(chǎn)品ID 與密鑰,驗證正確之后將連接云平臺并實現(xiàn)數(shù)據(jù)上傳。
系統(tǒng)的軟件流程圖如圖3 所示。水杯墊上電開啟后,首先進行系統(tǒng)初始化,然后循環(huán)運行彩屏顯示、按鍵掃描、時鐘讀取、重量采集、計算用戶飲水量、飲水提醒、數(shù)據(jù)通信等功能。
圖3 程序流程圖
(1)PD 溫度控制
由于陶瓷加熱的穩(wěn)定性較差,溫度曲線不夠平滑,并且在整個加熱過程中,受到外界各種不確定干擾的因素較多,因此必須對水溫的變化趨勢做出預(yù)測,根據(jù)需要及時反方向抑制,以防止出現(xiàn)較大超調(diào)量的波動。在廣泛使用的PID算法中,積分環(huán)節(jié)(I)具有很強的滯后效應(yīng),而微分環(huán)節(jié)(D)具有預(yù)見性,所以本設(shè)計采用了PD 算法,這樣易控制超調(diào),且穩(wěn)態(tài)誤差小。本系統(tǒng)將LM35 溫度傳感器采集的鋁板溫度作為輸入,進而與設(shè)定的水溫值比較得到水溫偏差值,然后運用PD 算法,進而控制陶瓷加熱片工作。
(2)水量監(jiān)測與記錄
用戶飲水的監(jiān)測是通過計算水杯里的水量變化得到的。通過比較測量的重量與校準(zhǔn)的水杯重量,就能計算出水杯里的水量。另外,由于稱重傳感器的敏感元件形變恢復(fù)較為緩慢,因此,本設(shè)計采用多次滯回比較算法得出用戶飲水量。滯回比較算法既能解決壓力傳感器形變恢復(fù)時間的影響,又能過濾部分采集誤差,減少不確定因素對飲水量數(shù)據(jù)的干擾。
本設(shè)計采用OneNET 物聯(lián)網(wǎng)實現(xiàn)手機APP 與水杯墊之間的數(shù)據(jù)通信。APP 通過水杯墊上報的數(shù)據(jù)分析用戶的喝水情況,制定相應(yīng)的喝水建議。用戶也可以在手機APP 上設(shè)置喝水時間以及合適的水溫,設(shè)定的時間到之后水杯墊會進行語音提示并伴隨燈光閃爍,燈光會隨著水溫的升高而變色,呈現(xiàn)出動態(tài)的提示效果。
APP 的功能結(jié)構(gòu)圖如圖4 所示。APP 的設(shè)計工具選用了簡單易用的純中文編程軟件E4A。由于主要的目標(biāo)用戶是需要保持飲水量充足的人群,因此APP 設(shè)計了時間與飲水量的設(shè)置提醒功能。設(shè)計的用戶界面如圖5 所示。用戶可以通過APP 設(shè)置提醒時間和飲水量。當(dāng)設(shè)定的時間到達時,APP 會通過OneNET 物聯(lián)網(wǎng)下發(fā)指令給水杯墊,提醒用戶飲水,同時還會顯示當(dāng)前飲水量的情況。在保溫方面,通過OneNET 物聯(lián)網(wǎng)將APP 頁面設(shè)定的水溫下發(fā)給水杯墊,水杯墊再通過控制加熱片確保水溫。
圖4 APP 功能結(jié)構(gòu)圖
圖5 基于云平臺的水杯墊手機APP 界面
在手機APP 上,用戶除了可以較為輕松的設(shè)置自己的飲水時間以及飲水量外,還可以查看到自己的飲水記錄。通過記錄的每天的飲水量以及飲水時間,在水杯墊的飲水提醒功能的幫助下,調(diào)整自己的飲水習(xí)慣,達到監(jiān)督自己改變飲水壞習(xí)慣的目的。
所實現(xiàn)的智能水杯墊如圖6 所示。經(jīng)過實際測試,水杯墊能夠按照預(yù)設(shè)的功能正常運行,實現(xiàn)飲水提醒和保溫的功能。
圖6 基于云平臺的智能水杯墊實物照片
本文給出了一款基于云平臺的智能水杯墊的實現(xiàn)方案。通過硬件電路設(shè)計、單片機程序設(shè)計和移動端APP 設(shè)計相結(jié)合,實現(xiàn)了飲水提醒、飲水規(guī)劃及水溫保持等功能,以達到培養(yǎng)使用者健康喝水習(xí)慣的目的。