李秋怡,孔梓鑫,黃東升,陳桂隆
(廈門理工學(xué)院 電氣工程與自動(dòng)化學(xué)院,福建 廈門 361024)
醫(yī)院是一個(gè)為大眾提供醫(yī)療服務(wù)的行業(yè),不僅要滿足社會(huì)大眾的就診醫(yī)療要求,更要注重醫(yī)院的就診環(huán)境,提升醫(yī)院的影響力[1]。長(zhǎng)期以來,醫(yī)院的就診患者不斷增加[2],就診量增大,導(dǎo)致各種業(yè)務(wù)出現(xiàn)長(zhǎng)時(shí)間排隊(duì)的問題,這困擾著醫(yī)患雙方[3]。若不加以管理會(huì)使就診秩序混亂,容易導(dǎo)致“走關(guān)系”看病、隨意插隊(duì)等惡劣現(xiàn)象發(fā)生;另外,若排隊(duì)無序,醫(yī)患之間極易出現(xiàn)“圍醫(yī)”現(xiàn)象,造成醫(yī)患關(guān)系緊張,不但使患者容易產(chǎn)生急躁心情,也嚴(yán)重影響了醫(yī)生接診的環(huán)境,降低了醫(yī)生的工作效率。為解決這些問題,本文設(shè)計(jì)了一個(gè)醫(yī)院分檢與叫號(hào)系統(tǒng)。
本系統(tǒng)采用STM32單片機(jī)為控制核心,通過心率脈搏傳感器和溫度傳感器進(jìn)行患者心率和溫度的采集,并顯示在LCD液晶屏上,再通過設(shè)置溫度和心率范圍進(jìn)行不同窗口的區(qū)分,從而達(dá)到分檢的效果,然后利用按鍵取號(hào),患者可清楚知道自己的就診號(hào)數(shù)以及前方等待人數(shù)。此外,該系統(tǒng)實(shí)現(xiàn)清除LCD屏顯示的等待信息、窗口切換、查看剩余人數(shù),通過語音模塊和揚(yáng)聲器進(jìn)行語音播報(bào)等功能。這樣一個(gè)系統(tǒng),使患者可通過叫號(hào)系統(tǒng)排隊(duì)就診,完成患者排隊(duì)、導(dǎo)醫(yī)、分診工作[4],避免了診室內(nèi)病人聚集的現(xiàn)象,且患者分檢排隊(duì)后可在等候區(qū)自由活動(dòng),減少了患者候診時(shí)的焦慮情緒[5],極為有效地解決醫(yī)院排隊(duì)冗長(zhǎng)、插隊(duì)、“圍醫(yī)”等問題,創(chuàng)造了良好的就醫(yī)環(huán)境。
本系統(tǒng)以STM32F103C8T6單片機(jī)為核心控制模塊,采用MAX30102心率脈搏模塊檢測(cè)患者實(shí)時(shí)心率,DS18B20溫度傳感器檢測(cè)患者實(shí)時(shí)溫度,根據(jù)設(shè)置的心率和溫度范圍安排就診患者到不同隊(duì)列進(jìn)行排隊(duì)。
顯示模塊使用LCD12864液晶顯示器,按鍵模塊由5個(gè)獨(dú)立按鍵組成,其對(duì)應(yīng)的功能分別是:按鍵1,第一塊LCD液晶屏顯示患者的就診號(hào)數(shù)以及前方等待人數(shù);按鍵2,LCD液晶屏清除按鍵1顯示的信息;按鍵3,語音模塊通過揚(yáng)聲器進(jìn)行播報(bào)患者的就診信息,通知患者去幾號(hào)窗口就診;按鍵4,第二塊LCD液晶屏可以顯示當(dāng)前窗口剩余的就診人數(shù);按鍵5,第二塊LCD液晶屏可以切換查看不同窗口剩余的就診人數(shù)。
該系統(tǒng)總體結(jié)構(gòu)圖如圖1所示。
STM32F103C8T6單片機(jī):具有高性能的CPU,數(shù)據(jù)處理和運(yùn)算能力強(qiáng),工作頻率高,內(nèi)存較大,可以擴(kuò)展,并且具有3種低功耗模式,2種調(diào)試模式,3個(gè)12位的AD轉(zhuǎn)換器,I/O端口高達(dá)112個(gè),且定時(shí)器和通信接口較多,內(nèi)嵌有復(fù)位電路,性能較強(qiáng)。
MAX30102心率脈搏傳感器:采用一個(gè)1.8V電源和一個(gè)獨(dú)立的5V用于內(nèi)部LED電源可測(cè)量心率,工作溫度在-40 ~ +85 ℃。
DS18B20數(shù)字溫度傳感器:可采集-55 ~ +125 ℃的溫度,精度在-10~ +85℃范圍內(nèi)精度為±0.5 ℃。該傳感器的工作電壓在3.0~5.5 V之間,電壓范圍比較容易達(dá)到,較為方便。
LCD12864液晶顯示模塊:自帶有中國漢字字庫,點(diǎn)陣漢字很多,分辨率為128×64,可在3.0~5.5 V的低電壓范圍工作,低功耗,并且內(nèi)置有DC-DC轉(zhuǎn)換電路,工作溫度在0 ℃至55 ℃。
JQ8900-16P語音模塊:支持多種控制模式、一線串口模式、按鍵模式,最佳輸入電壓為4.2 V,工作電流為100 mA,工作溫度為-40 ~ +85 ℃。
2.2.1 MAX30102心率脈搏傳感器
MAX30102心率脈搏傳感器的結(jié)構(gòu)圖和引腳圖如圖2、圖3所示,其VIN接LED電源輸入端,一般接3.3 V或者5 V;SCL接時(shí)鐘線,SDA接數(shù)據(jù)線;INT是中斷引腳;RD和IRD分別指紅光LED接地端和紅外光LED接地端,一般不用接;GND接地。在該系統(tǒng)中,SCL接單片機(jī)的PB7引腳;SDA接PB8引腳;INT接到單片機(jī)的PB9引腳。
2.2.2 DS18B20溫度傳感器
該溫度傳感器的電路圖如圖4所示,其有3個(gè)引腳,VCC即電源輸入端;DQ指的是數(shù)據(jù)的輸入和輸出引腳;GND接地即可。在該醫(yī)院分檢與叫號(hào)系統(tǒng)中,DQ接到STM32單片機(jī)的PA8引腳。
2.2.3 按鍵模塊
按鍵模塊由5個(gè)獨(dú)立按鍵組成,其原理圖見圖5,該溫度傳感器的電路圖如圖4所示,其按鍵1接單片機(jī)的PA3引腳;按鍵2接單片機(jī)的PA4引腳;按鍵3接單片機(jī)的PA5引腳;按鍵4接單片機(jī)的PA6引腳;按鍵5接單片機(jī)的PA7引腳。
2.2.4 LCD12864液晶顯示器
液晶顯示模塊共有20個(gè)引腳,詳見圖6。第1個(gè)引腳VSS接地電源;第2個(gè)引腳VDD接電源端;第3個(gè)引腳VO,即LCD驅(qū)動(dòng)電壓的輸入端;第4個(gè)引腳為RS,為片選信號(hào),可選擇執(zhí)行指令或者執(zhí)行數(shù)據(jù);第6個(gè)引腳為E,為使能信號(hào),控制信號(hào)的輸入和輸出;第7到第14引腳為數(shù)據(jù)引腳;第15引腳為PSB,即并/串口接線的選擇;第16和18引腳為NC,即空腳;第17引腳為RST,表示復(fù)位引腳;第19引腳為L(zhǎng)EDA,即光源的正極,接電源正極;第20引腳為L(zhǎng)EDK,即光源的負(fù)極,接地即可。
2.2.5 JQ8900-16P語音模塊
語音模塊有16個(gè)引腳,詳見圖7。第1個(gè)引腳為VPP,即一線串口;第2個(gè)引腳為BUSY,指播放指示燈;第3個(gè)引腳為RX,為串行數(shù)據(jù)的輸入口,接STM32單片機(jī)的PB11引腳;第4個(gè)引腳為TX,為串行數(shù)據(jù)的輸出口,接STM32單片機(jī)的PB10引腳;第5個(gè)引腳為GND,接地即可;第6個(gè)引腳為DC-5V,為模塊電源輸入,一般用5V;第7個(gè)引腳為SPK-,指喇叭的聲音調(diào)低;第8個(gè)引腳為SPK+,指喇叭的聲音升高;第9到第15引腳,指觸發(fā)輸入口,一般對(duì)地觸發(fā);最后一個(gè)引腳為DAC,即音頻輸出。
2.2.6 整體硬件實(shí)現(xiàn)
在本設(shè)計(jì)中,采用了STM32F103C8T6單片機(jī),2個(gè)LCD12864液晶顯示器,DS18B20溫度模塊,MAX30102心率模塊,JQ8900-16P語音模塊和按鍵模塊。STM32單片機(jī)的第1、第24、第36、第48以及第9引腳為電源引腳,接VCC;第23、第35、第47以及第8引腳接地;其他引腳根據(jù)需要用于與其他模塊連接,整體硬件連接圖具體如圖8所示。
該系統(tǒng)的軟件設(shè)計(jì)包含主程序、I2C子程序、溫度傳感器子程序、心率脈搏傳感器子程序和LCD液晶顯示模塊子程序5個(gè)部分。
主程序設(shè)計(jì)流程圖如圖9所示。當(dāng)讀出心率和溫度數(shù)值后,根據(jù)心率和溫度范圍,將排隊(duì)取號(hào)分成了5個(gè)隊(duì)列。
當(dāng)溫度處于20.0~37.5 ℃,且心率在60~100范圍內(nèi),LCD將顯示“正常”,患者去到窗口1排隊(duì)取號(hào);
當(dāng)溫度處于37.5~38.0 ℃,且心率在50~60范圍內(nèi),LCD將顯示“第四等級(jí)”,患者去到窗口2排隊(duì)取號(hào);
當(dāng)溫度處于38.0~39.0 ℃,且心率在40~50范圍內(nèi),LCD將顯示“第三等級(jí)”,患者去到窗口3排隊(duì)取號(hào);
當(dāng)溫度處于39.0~41.0 ℃,且心率小于等于40時(shí),LCD將顯示“第二等級(jí)”,患者去到窗口4排隊(duì)取號(hào);
當(dāng)溫度大于41 ℃,且心率大于160時(shí),LCD將顯示“第一等級(jí)”,患者去到窗口5排隊(duì)取號(hào)。
I2C子程序流程圖如圖10所示。在通信的過程中,對(duì)I2C進(jìn)行初始化后,再編寫三個(gè)信號(hào),先編寫開始信號(hào),再寫結(jié)束信號(hào),最后判斷應(yīng)答信號(hào)。執(zhí)行語句后,進(jìn)而發(fā)送字節(jié)和讀取數(shù)據(jù)。
溫度傳感器子程序流程圖如圖11所示。在溫度讀取程序編寫中,先將傳感器初始化,而后延時(shí)750 μs,產(chǎn)生復(fù)位脈沖,再延時(shí)15μs,使傳感器進(jìn)入到接收狀態(tài)。接著按照溫度傳感器的讀時(shí)序和寫時(shí)序規(guī)則進(jìn)行編寫程序,實(shí)現(xiàn)對(duì)溫度的讀數(shù),還需要跳過ROM指令、發(fā)送進(jìn)行溫度轉(zhuǎn)換指令、發(fā)送讀取溫度數(shù)值指令三條指令,根據(jù)傳感器的編寫順序即可順利完成溫度讀數(shù)的功能。
心率脈搏傳感器子程序流程圖如圖12所示。先將傳感器初始化,再編寫I2C通信的啟動(dòng)指令,對(duì)MAX30102寫入數(shù)據(jù),即控制指令,發(fā)送有效應(yīng)答位;然后對(duì)傳感器進(jìn)行讀操作的編寫。由于MAX30102傳感器還具有FIFO緩沖器,因此需要再按同樣的步驟去控制FIFO,從而讀出數(shù)據(jù)。
液晶顯示器子程序設(shè)計(jì)流程圖如圖13所示。在該系統(tǒng)中,首先對(duì)LCD寫指令,設(shè)置RS=0,RW=0,發(fā)送0xf8指令,啟動(dòng)一個(gè)周期,數(shù)據(jù)要分兩次傳送;再是寫數(shù)據(jù),設(shè)置RS=1,RW=0,發(fā)送0xfa指令,啟動(dòng)一個(gè)周期;接著對(duì)顯示器進(jìn)行初始化設(shè)置。由于液晶模塊是通過X,Y進(jìn)行對(duì)行和列的定位,因此需要設(shè)置固定的位置來顯示內(nèi)容,當(dāng)設(shè)置完成后,LCD液晶屏?xí)@示所需要的輸出內(nèi)容。
根據(jù)原理圖進(jìn)行焊接,經(jīng)測(cè)試無誤后得到實(shí)物圖如圖14所示。
把系統(tǒng)初始化后界面如圖15所示,開始對(duì)患者進(jìn)行溫度和心率的采集,測(cè)得溫度為28℃,心率為98。系統(tǒng)根據(jù)測(cè)得結(jié)果進(jìn)行分檢,符合“正?!钡燃?jí),因此LCD顯示窗口1,最后兩行表示目前的就診號(hào)數(shù)和前方等待人數(shù),如圖16所示。
分檢后,若要查看窗口剩余人數(shù),則按下按鍵4,左邊LCD屏幕可顯示當(dāng)前窗口1的排隊(duì)人數(shù)為3名,如圖17所示。
若要進(jìn)行窗口切換,查詢每個(gè)窗口剩余人數(shù),則按下按鍵5,轉(zhuǎn)至窗口1可查詢到目前的剩余人數(shù),或者根據(jù)情況切換到其他窗口,如圖18所示。
若要播報(bào)就診情況,則按下按鍵3,通過語音模塊與揚(yáng)聲器相配合,揚(yáng)聲器將之前語音模塊中錄入的信息進(jìn)行播報(bào),其實(shí)物圖如圖19所示。
若無需再查看就診信息,可按下按鍵2,清除LCD屏幕最后兩行,就只顯示就診窗口、溫度和心率數(shù)值,如圖20所示。
以上是醫(yī)院分檢與叫號(hào)系統(tǒng)的功能展示,可有效解決醫(yī)院環(huán)境嘈雜、秩序混亂等問題,充分表明了該系統(tǒng)的實(shí)用性和可行性。
本文設(shè)計(jì)的醫(yī)院分檢與叫號(hào)系統(tǒng)通過溫度傳感器和心率脈搏傳感器測(cè)量人們體溫以及心率,實(shí)現(xiàn)分檢與叫號(hào)的功能,有效解決了就診環(huán)境嘈雜、就診患者排隊(duì)秩序混亂等問題,營造了一個(gè)公平、公開、公正的就診環(huán)境。該系統(tǒng)不僅提高了醫(yī)生的工作效率,降低了工作強(qiáng)度,而且也保障了患者的隱私,縮短了患者就診的時(shí)間,具有實(shí)際意義和應(yīng)用前景。