劉明碩,何丹丹,李帥
(平頂山學(xué)院信息工程學(xué)院,河南平頂山 467000)
隨著社會(huì)主義現(xiàn)代化建設(shè),中國(guó)已然成為世界第二大經(jīng)濟(jì)體,伴隨人民生活質(zhì)量的全面提升,對(duì)老年人日常生活進(jìn)行智能化護(hù)理已成為各個(gè)開(kāi)發(fā)者研究的熱點(diǎn)。
該文以STM32F030C8T6(6T6)為主控芯片,利用單片機(jī)控制技術(shù)和無(wú)線(xiàn)通信技術(shù),通過(guò)藍(lán)牙通信模塊、GSM 傳輸模塊、OLED 模塊、聲光報(bào)警模塊,實(shí)現(xiàn)提醒老人精準(zhǔn)用藥等基本功能。
系統(tǒng)的硬件電路設(shè)計(jì)選擇STM32F030C8T6(6T6)作為主控制器,由OLED 模塊、LED 模塊、蜂鳴器等共同組成外圍電路。為了實(shí)現(xiàn)遠(yuǎn)程通信功能,該設(shè)計(jì)采用了GSM 傳輸模塊和藍(lán)牙模塊作為無(wú)線(xiàn)通信模塊,手機(jī)APP 使用藍(lán)牙與STM32 智能藥盒相連接。系統(tǒng)的軟件設(shè)計(jì)中,單片機(jī)使用的C 語(yǔ)言由Keil 開(kāi)發(fā)和調(diào)試,手機(jī)APP 由E4A 開(kāi)發(fā),構(gòu)建完整的系統(tǒng)功能結(jié)構(gòu)。系統(tǒng)總體設(shè)計(jì)如圖1 所示。
圖1 系統(tǒng)總體設(shè)計(jì)
硬件設(shè)計(jì)使用了STM32 單片機(jī)控制模塊、無(wú)線(xiàn)藍(lán)牙模塊、GSM 傳輸模塊、OLED 顯示模塊、按鍵模塊和提醒模塊。
系統(tǒng)選用STM32F030C8T6(6T6)作為主控芯片。外圍電路有復(fù)位電路、晶振電路、電源電路等。復(fù)位電路的功能為通過(guò)按鍵完成整個(gè)系統(tǒng)的復(fù)位[1]。六個(gè)通用16 位定時(shí)器和一個(gè)高級(jí)控制PWM 定時(shí)器,確保了較高的時(shí)鐘精度。該芯片的工作電壓最大為3.6 V、最小為2.4 V,工作頻率高達(dá)48 MHz,內(nèi)置高速嵌入式存儲(chǔ)器,以及廣泛增強(qiáng)的外圍設(shè)備和I/O 端口[2]。該系統(tǒng)板具有性能強(qiáng)、功耗低、價(jià)格低等一系列有利于設(shè)計(jì)的特點(diǎn)。具體電路如圖2所示。
圖2 STM32最小系統(tǒng)電路
系統(tǒng)采用的GSM 傳輸模塊是GA6-B,GSM 模塊的URX、UTX 引腳分別與STM32 主控芯片的PA9、PA10 相連接,其與單片機(jī)之間通過(guò)AT+CIPMODE 進(jìn)行數(shù)據(jù)傳輸。當(dāng)?shù)竭_(dá)吃藥時(shí)間用戶(hù)未進(jìn)行任何操作時(shí),MCU 會(huì)立刻控制GSM 模塊向用戶(hù)監(jiān)護(hù)人發(fā)送報(bào)警短信,從而實(shí)現(xiàn)提醒功能。GSM 模塊接口電路如圖3 所示。
圖3 GSM模塊接口電路
系統(tǒng)采用的藍(lán)牙模塊是JDY-31,其是基于藍(lán)牙3.0SPP 設(shè)計(jì)的,藍(lán)牙模塊的TXD、RXD 引腳分別與STM32 主控芯片的PA3、PA2 相連接,與單片機(jī)通過(guò)AT 指令進(jìn)行數(shù)據(jù)傳輸,藍(lán)牙模塊搭建了一條硬件設(shè)備和APP 之間的連接通道實(shí)現(xiàn)了設(shè)備與APP 之間的交互。藍(lán)牙通信模塊電路原理圖如圖4所示。
圖4 JDY-31模塊原理圖
為了增強(qiáng)用戶(hù)的視覺(jué)體驗(yàn),使藥品名稱(chēng)和數(shù)量更加清晰。系統(tǒng)采用了12864OLED 顯示屏,該顯示屏是128×64 點(diǎn)陣的OLED 單色、字符、圖形顯示模塊[3]。屏幕大小為0.96 寸,采用SPI 作為與單片機(jī)進(jìn)行數(shù)據(jù)傳輸?shù)耐ㄐ欧绞?。硬件電路中SCLK2、MOSI2、OLED_RST 和OLED_DC 引腳分別連接到單片機(jī)的PB13、PB15、PB6 和PB5。在寫(xiě)入數(shù)據(jù)時(shí)需要先將SCLK2 設(shè)置為低電平,在產(chǎn)生上升沿之前準(zhǔn)備數(shù)據(jù)。當(dāng)MOSI2 完成給單片機(jī)傳輸數(shù)據(jù)的任務(wù)后,SCLK2 變?yōu)楦唠娖剑瑫r(shí)OLED 讀取數(shù)據(jù)[4]。該模塊的功能是顯示藥盒的藥品名稱(chēng)以及需要服用的數(shù)量。
提醒模塊作為該設(shè)計(jì)的輸出部分,主要作用是提供具體可靠的提醒功能。由于老年人身體機(jī)能較差,如果僅使用單一的提醒方式,存在容易忘記或忽視的特點(diǎn)。因此,采用蜂鳴器和LED 的聲光雙重提醒方式,提高提醒的有效性。
作為一種有源的電子蜂鳴器,蜂鳴器采用5 V 直流電壓,電路由8050 三極管引導(dǎo)驅(qū)動(dòng)。其電流的峰值為500 mA,硬件電路中只需要將蜂鳴器的I/O 口引腳連接到單片機(jī)的PA8,通過(guò)單片機(jī)發(fā)出高電平來(lái)實(shí)現(xiàn)報(bào)警。
LED 是一種高亮度、低功耗的燈管。該燈管在節(jié)能領(lǐng)域發(fā)揮著舉足輕重的作用。該設(shè)計(jì)中,LED和帶電的電阻串聯(lián)以減小電路電流,并使用單片機(jī)引腳作為輸入端。硬件電路中將LED 的R、G、B 引腳分別連接到單片機(jī)的PC13、PC14、PC15。為了防止電流對(duì)單片機(jī)引腳的影響,使LED 處于合適的亮度,采用1 kΩ電阻作為限流電阻[5-6]。其模塊接口電路如圖5 所示。
圖5 提醒模塊接口電路
為了檢測(cè)用戶(hù)是否完成吃藥操作,當(dāng)?shù)竭_(dá)設(shè)定吃藥時(shí)間之前用戶(hù)完成吃藥,按下按鍵手機(jī)APP 顯示藥盒狀態(tài)為已經(jīng)服用,證明用戶(hù)完成用藥。S1、S2、S3 分別控制三個(gè)藥盒。硬件電路中將按鍵S1、S2、S3 引腳分別連接到單片機(jī)的PB12、PB11、PB10。
單片機(jī)使用的C 語(yǔ)言由Keil進(jìn)行開(kāi)發(fā)和調(diào)試,使用ST-LINK 燒錄軟件對(duì)程序進(jìn)行下載與調(diào)試。手機(jī)APP使用E4A進(jìn)行開(kāi)發(fā),以構(gòu)建完整的系統(tǒng)功能結(jié)構(gòu)。
該設(shè)計(jì)從連接藍(lán)牙后開(kāi)始工作,當(dāng)設(shè)備和手機(jī)APP 通過(guò)藍(lán)牙成功配對(duì)后,設(shè)備在10 s 內(nèi)進(jìn)行初始化,將手機(jī)時(shí)間透?jìng)鹘o單片機(jī),同時(shí)單片機(jī)將會(huì)對(duì)比時(shí)間是否與設(shè)定吃藥時(shí)間一致,如果與設(shè)定時(shí)間一致且用戶(hù)在10 s 內(nèi)未觸發(fā)吃藥按鍵,蜂鳴器將會(huì)發(fā)出聲光警告,直至用戶(hù)完成吃藥操作后警報(bào)解除。同時(shí),GSM 傳輸模塊將發(fā)送(Forget to take medicine)給用戶(hù)監(jiān)護(hù)人,達(dá)到雙重提醒的目的。系統(tǒng)總體程序流程如圖6 所示。
圖6 系統(tǒng)總體程序流程
在該設(shè)計(jì)中,當(dāng)GSM 通信模塊通電后,發(fā)送AT指令進(jìn)行同步串口波特率之后等待下一步指令,若到達(dá)規(guī)定時(shí)間用戶(hù)沒(méi)有任何操作,GSM 將發(fā)送短信(Forget to take medicine)給用戶(hù)監(jiān)護(hù)人,從而達(dá)到提醒效果[7-9]。提醒短信發(fā)送流程如圖7 所示。
圖7 提醒短信發(fā)送流程
當(dāng)手機(jī)藍(lán)牙沒(méi)有打開(kāi)時(shí),就不會(huì)有相關(guān)數(shù)據(jù)的傳輸,即數(shù)據(jù)不顯示;當(dāng)手機(jī)藍(lán)牙打開(kāi)時(shí),與智能藥盒系統(tǒng)無(wú)線(xiàn)連接,并進(jìn)入初始化階段,并且智能藥盒系統(tǒng)會(huì)實(shí)時(shí)采集數(shù)據(jù)并向手機(jī)進(jìn)行發(fā)送。目的是為了實(shí)時(shí)更新STM32 內(nèi)時(shí)鐘,并且通過(guò)APP 把數(shù)據(jù)透?jìng)鹘o單片機(jī)[10-12]。藍(lán)牙模塊發(fā)送接收流程如圖8 所示。
圖8 藍(lán)牙模塊發(fā)送接收流程圖
智能藥盒系統(tǒng)APP 需要使用E4A 搭建軟件環(huán)境。E4A 面向企業(yè)、網(wǎng)站管理員、開(kāi)發(fā)者、網(wǎng)絡(luò)公司及各種便攜式設(shè)備等。中文Android 編程語(yǔ)言基于Android 系統(tǒng)下的應(yīng)用程序進(jìn)行開(kāi)發(fā)。APP 頁(yè)面簡(jiǎn)潔明了,依次為連接欄、定時(shí)設(shè)置、藥盒狀態(tài)和名稱(chēng)、提醒號(hào)碼設(shè)置,操作簡(jiǎn)單,符合老人使用習(xí)慣。智能藥盒手機(jī)APP 頁(yè)面如圖9 所示。
圖9 智能藥盒手機(jī)APP頁(yè)面
圖10 軟件測(cè)試效果圖
硬件測(cè)試對(duì)于一個(gè)系統(tǒng)的實(shí)現(xiàn)有著舉足輕重的作用,因?yàn)槿绻布娐愤B接出現(xiàn)錯(cuò)誤輕則導(dǎo)致系統(tǒng)功能無(wú)法實(shí)現(xiàn),重則會(huì)使系統(tǒng)電路元器件燒壞。
首先利用仿真軟件測(cè)試硬件電路是否能正常運(yùn)轉(zhuǎn),系統(tǒng)基本功是否能夠?qū)崿F(xiàn)。然后測(cè)試設(shè)備是否能和手機(jī)APP 相連接、APP 中的時(shí)間是否能通過(guò)藍(lán)牙透?jìng)鹘o單片機(jī),并且在OLED 顯示屏能否正常顯示。當(dāng)?shù)竭_(dá)設(shè)置時(shí)間單片機(jī)能否發(fā)出聲光警報(bào),如果按下按鍵警報(bào)能否停止OLED 顯示,是否更新為已經(jīng)服藥。最后測(cè)試GSM 短信提醒,當(dāng)?shù)竭_(dá)設(shè)定時(shí)間持續(xù)未作任何操作,GSM 短信模塊會(huì)不會(huì)發(fā)送短信來(lái)提醒用戶(hù):監(jiān)護(hù)人用戶(hù)未完成吃藥[12-14]。
軟件測(cè)試是設(shè)計(jì)實(shí)現(xiàn)過(guò)程中必不可少的重要組成部分,進(jìn)行軟件測(cè)試可以以肉眼可見(jiàn)的方式檢測(cè)系統(tǒng)功能是否完善,同時(shí)也是對(duì)硬件測(cè)試的二次檢驗(yàn)。
4.2.1 OLED屏幕軟件測(cè)試
OLED 屏幕軟件測(cè)試的主要目的是檢測(cè)OLED屏幕顯示藥物信息及時(shí)間是否準(zhǔn)確,藥盒名稱(chēng)和吃藥數(shù)量是否能正常顯示。測(cè)試方法如下:在測(cè)試程序中分別寫(xiě)入藥盒名稱(chēng)和吃藥數(shù)量,下載程序并觀察OLED 顯示效果,第一行為時(shí)間欄顯示當(dāng)前的時(shí)間精確到秒,二、三、四行分別顯示了藥盒的名稱(chēng)、藥盒所處狀態(tài)以及要服用藥物數(shù)量[14-16]。
4.2.2 GSM通信模塊軟件測(cè)試
GSM 模塊程序的主要功能是在超過(guò)設(shè)定時(shí)間后,GSM 會(huì)給設(shè)定號(hào)碼發(fā)送短信,提醒用戶(hù):監(jiān)護(hù)人用戶(hù)還未完成吃藥操作。
該文設(shè)計(jì)了以STM32F030C8T6(6T6)為主控芯片的智能藥盒系統(tǒng)。系統(tǒng)具有較高的時(shí)鐘精度,能夠準(zhǔn)確提醒老人按時(shí)吃藥,并且具有成本低、便攜等一系列符合老年人生活習(xí)慣的優(yōu)點(diǎn),具有較高的實(shí)用性。在后續(xù)的工作中,仍然需要對(duì)其穩(wěn)定性進(jìn)行改善,并且還需要考慮增加更多的創(chuàng)新功能。如實(shí)現(xiàn)GPS 的精確定位,也可以增加APP 視頻功能,讓老人與子女通過(guò)智能藥盒系統(tǒng)進(jìn)行全息的視頻電話(huà);還可以增加智能AI 功能,可以語(yǔ)音識(shí)別老人的需要,做到更加方便簡(jiǎn)潔地為用戶(hù)服務(wù),使老年人的使用舒適感提升。