基于Zigbee的病房護(hù)理機(jī)遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:文章以PIC單片機(jī)為下位機(jī)控制器,利用Zigbee無(wú)線自組網(wǎng)絡(luò)技術(shù),采用C++build6編程,設(shè)計(jì)并實(shí)現(xiàn)了一種通用性高、管理功能強(qiáng)的醫(yī)院病房護(hù)理機(jī)遠(yuǎn)程監(jiān)控系統(tǒng),實(shí)現(xiàn)了護(hù)理機(jī)的“無(wú)人護(hù)理”功能,在很大程度上解決了我國(guó)目前陪護(hù)人員緊缺和護(hù)理費(fèi)用高昂的難題,具有很大的經(jīng)濟(jì)效益和社會(huì)效益。
關(guān)鍵詞:ZigBee;PIC單片機(jī);遠(yuǎn)程監(jiān)控;C++builder;Access數(shù)據(jù)庫(kù)
0 引言
當(dāng)今社會(huì)中存在著一種因失去生活自理能力而長(zhǎng)期臥床的弱勢(shì)群體,他們因高齡、傷、病、殘等原因需要被人照顧。然而由于該弱勢(shì)群體數(shù)量大,護(hù)理人員緊缺,護(hù)理費(fèi)用高等問(wèn)題導(dǎo)致目前的社會(huì)護(hù)理矛盾日益凸顯。目前市場(chǎng)上的護(hù)理機(jī)在“智能護(hù)理”方面已比較完善,已經(jīng)具有大小便自動(dòng)識(shí)別與臟物回收、溫水清洗與自動(dòng)烘干等功能。但在使用過(guò)程中仍然需要專門(mén)的“陪護(hù)人員”,這將占用家庭和醫(yī)院大量的人力和財(cái)力,同時(shí)也限制了護(hù)理機(jī)在醫(yī)院的推廣使用,因此社會(huì)迫切需要一種在現(xiàn)有護(hù)理功能的基礎(chǔ)上能夠?qū)崿F(xiàn)“無(wú)人護(hù)理”功能的新型智能護(hù)理機(jī)。本文以PIC18F87K22單片機(jī)為護(hù)理機(jī)控制器,利用ZigBee自組網(wǎng)絡(luò)技術(shù),采用C++Build6編程,設(shè)計(jì)并實(shí)現(xiàn)了一種通用性高、管理功能強(qiáng)的醫(yī)院病房護(hù)理機(jī)遠(yuǎn)程監(jiān)控系統(tǒng),實(shí)現(xiàn)了護(hù)理機(jī)的“無(wú)人護(hù)理”功能,解決了我國(guó)目前陪護(hù)人員的緊缺和高昂護(hù)理費(fèi)用的問(wèn)題,具有很大的經(jīng)濟(jì)效益和社會(huì)效益。
1 護(hù)理機(jī)的Zigbee無(wú)線組網(wǎng)設(shè)計(jì)
ZigBee是近幾年新興的一種無(wú)線傳輸技術(shù),它具有低功耗、低成本、網(wǎng)絡(luò)容納節(jié)點(diǎn)數(shù)多等特點(diǎn),近年來(lái)在工業(yè)、醫(yī)療、家居自動(dòng)化、遙測(cè)遙控等領(lǐng)域得到了廣泛的應(yīng)用。本系統(tǒng)選用深圳市華奧通通信技術(shù)有限公司研發(fā)生產(chǎn)的HAC-Lbee ZigBee無(wú)線數(shù)傳模塊作為ZigBee組網(wǎng)的核心器件,其主要特點(diǎn)有:1)提供TTL電平/UART接口,符合一般器件直接使用要求;2)工作在2.4GHz的免執(zhí)照頻段,無(wú)線傳輸速率可達(dá)250kb ps;3)具有16個(gè)通信信道可供選擇;4)具有自動(dòng)組網(wǎng)功能。其主要功能引腳如表1所示。
1.1 ZigBee模塊與PIC單片機(jī)接口設(shè)計(jì)
ZigBee模塊與PIC單片機(jī)的通信采用TTL電平下的串行通信方式(圖1),即ZigBee模塊的TXD、RXD分別與PIC18F87K22的RX2、TX2對(duì)應(yīng)相連。ZigBee模塊在系統(tǒng)中的工作模式為透明模式+AT命令模式,當(dāng)按透明模式工作時(shí),所有從ZigBee串口RXD管腳收到的數(shù)據(jù)將通過(guò)RF射頻發(fā)送出去,而所有從空中接收的數(shù)據(jù)將直接發(fā)送到ZigBee串口的TXD管腳。當(dāng)ZigBee模塊按AT命令模式工作時(shí),可通過(guò)AT命令讀取和設(shè)置ZigBee模塊的工作模式、串口波特率、64位目的地址以及PAN ID值等相關(guān)參數(shù)。
1.2 護(hù)理機(jī)網(wǎng)絡(luò)通信協(xié)議
護(hù)理機(jī)主控板主控芯片采用的是PIC18F87K22,單片機(jī)編程采用MPLAB IDE V8.63完成。作為數(shù)據(jù)檢測(cè)終端的下位機(jī)(各病房的護(hù)理機(jī))正常工作時(shí)主動(dòng)向網(wǎng)絡(luò)協(xié)調(diào)器發(fā)送信息,各ZigBee通訊模式采用“透明模式”;上位機(jī)向下位機(jī)發(fā)送信息時(shí),ZigBee通訊模式采用“AT命令模式”。數(shù)據(jù)發(fā)送方式采用“MSB方式”,即先發(fā)送高字節(jié),再發(fā)送低字節(jié)。網(wǎng)絡(luò)通信協(xié)議的幀格式如表2、表3所示,其中機(jī)器身份碼選用ZigBee模塊出廠時(shí)的ID號(hào),這樣不會(huì)造成地址沖突。
1.3 ZigBee網(wǎng)絡(luò)的建立過(guò)程
在一個(gè)ZigBee網(wǎng)絡(luò)中的所有ZigBee模塊必須具有相同的PAN ID和信道,而且網(wǎng)絡(luò)中有且只能存在一個(gè)協(xié)調(diào)器(Coordinator),協(xié)調(diào)器用于網(wǎng)絡(luò)的搭建。當(dāng)協(xié)調(diào)器上電數(shù)秒后網(wǎng)絡(luò)才開(kāi)始啟動(dòng),協(xié)調(diào)器將是網(wǎng)絡(luò)的第一個(gè)節(jié)點(diǎn),此后,各路由器(Router)可以與協(xié)調(diào)器進(jìn)行連接并加入到網(wǎng)絡(luò)中來(lái),且加入到網(wǎng)絡(luò)中的路由器將允許其它路由器通過(guò)連接自己而加入到網(wǎng)絡(luò)中,整個(gè)網(wǎng)絡(luò)中的任意兩個(gè)節(jié)點(diǎn)都可以進(jìn)行點(diǎn)對(duì)點(diǎn)通訊,并且網(wǎng)絡(luò)中的任何一個(gè)節(jié)點(diǎn)都可以向網(wǎng)絡(luò)中的所有節(jié)點(diǎn)進(jìn)行廣播;一個(gè)模塊能否加入網(wǎng)絡(luò)在于其通訊距離內(nèi)是否己存在加入網(wǎng)絡(luò)中的節(jié)點(diǎn)??紤]到星形網(wǎng)的控制和同步相對(duì)比較簡(jiǎn)單,因此系統(tǒng)設(shè)計(jì)時(shí)選用了星型網(wǎng)絡(luò)方式組網(wǎng)(圖2)。該網(wǎng)以一個(gè)功能強(qiáng)大的FFD協(xié)調(diào)器作為網(wǎng)絡(luò)中心,負(fù)責(zé)協(xié)調(diào)全網(wǎng)工作,其它的數(shù)據(jù)采集節(jié)點(diǎn)(護(hù)理機(jī))分布在其覆蓋范圍內(nèi)。具體實(shí)現(xiàn)組網(wǎng)時(shí),首先通過(guò)廠家提供的HAC-Studio上位機(jī)軟件,利用AT命令設(shè)置所有入網(wǎng)的ZigBee設(shè)備,使它們具有相同的信道和PAN ID值,然后將協(xié)調(diào)器設(shè)備與上位監(jiān)控PC機(jī)相連,并使兩者設(shè)置有相同的通信口、波特率、校驗(yàn)位等通信參數(shù),最后通過(guò)基于API的Windows多線程串口編程,實(shí)現(xiàn)ZigBee網(wǎng)絡(luò)協(xié)調(diào)器與上位PC機(jī)監(jiān)控管理程序的通信。上電后整個(gè)組網(wǎng)過(guò)程是自動(dòng)進(jìn)行的,無(wú)需人工干預(yù)。
本文設(shè)計(jì)的基于ZigBee的護(hù)理機(jī)智能遠(yuǎn)程監(jiān)控系統(tǒng)中,整個(gè)網(wǎng)絡(luò)的通信工作流程規(guī)定如下:
(1)下位機(jī)待機(jī)時(shí),每隔5s,發(fā)送身份號(hào)(ID)和狀態(tài)數(shù)據(jù)到上位機(jī)。
(2)下位機(jī)工作時(shí),每隔500ms通過(guò)ZigBee模塊發(fā)送身份號(hào)和當(dāng)前工作數(shù)據(jù)到上位機(jī)。
(3)上位機(jī)在添加一個(gè)新的下位機(jī)ID(入網(wǎng)身份證號(hào))時(shí),主動(dòng)發(fā)送命令字給下位機(jī),然后需等待下位機(jī)的應(yīng)答,若10s內(nèi)下位機(jī)無(wú)對(duì)此命令的應(yīng)答,應(yīng)重復(fù)給下位機(jī)發(fā)送此命令。超過(guò)15s上位機(jī)未接收到下位機(jī)的應(yīng)答信息,將提示與該下位機(jī)連接不成功(即認(rèn)為下位機(jī)不在網(wǎng)絡(luò)內(nèi))。
1.4 協(xié)調(diào)器與上位機(jī)軟件的通信
ZigBee網(wǎng)絡(luò)協(xié)調(diào)器與上位機(jī)監(jiān)控軟件的通信是通過(guò)深圳市華奧通通信技術(shù)有限公司的HAC-DEV開(kāi)發(fā)測(cè)試板連接完成的。HAC-DEV開(kāi)發(fā)測(cè)試板是HAC-LBee ZigBee的測(cè)試開(kāi)發(fā)裝置,它能夠直接和HAC-LBee系列的ZigBee模塊進(jìn)行數(shù)據(jù)傳輸,ZigBee網(wǎng)絡(luò)協(xié)調(diào)器就是安裝在HAC-DEV開(kāi)發(fā)測(cè)試板上的(圖3),因此PC機(jī)串口的波特率、校驗(yàn)位等需要與ZigBee網(wǎng)絡(luò)協(xié)調(diào)器的一致,這樣才能保證硬件連接的成功。在協(xié)調(diào)器與上位監(jiān)控PC機(jī)連接成功后,要實(shí)現(xiàn)真正的通信,必須通過(guò)上位機(jī)軟件對(duì)PC機(jī)串口編程來(lái)完成。
2 上位機(jī)監(jiān)控軟件設(shè)計(jì)
2.1 基于API的Windows多線程串口通信
多線程是指同一個(gè)程序中可以同時(shí)執(zhí)行多個(gè)任務(wù),通過(guò)多線程可以將整個(gè)任務(wù)分成幾個(gè)線程,同時(shí)執(zhí)行,從而提高系統(tǒng)的效率。在多線程環(huán)境下,許多線程需要訪問(wèn)同一資源,而且事件發(fā)生往往有先后順序,因此,線程間需要通信控制。本系統(tǒng)數(shù)據(jù)庫(kù)的存取以及公共變量的訪問(wèn),都涉及到線程間的通信,必須使用同步化機(jī)制,防止線程訪問(wèn)沖突。在實(shí)際實(shí)現(xiàn)過(guò)程中,系統(tǒng)利用了臨界區(qū),它是保證在同一時(shí)間只有一個(gè)線程可以訪問(wèn)某一資源的有效方法。在使用臨界區(qū)時(shí),需要給各線程提供一個(gè)共享的臨界區(qū)對(duì)象。臨界區(qū)具體使用步驟如下:1)聲明對(duì)象;2)初始化對(duì)象;3)進(jìn)入臨界區(qū);4)離開(kāi)臨界區(qū)。同樣在本系統(tǒng)中,為了保證線程訪問(wèn)安全,設(shè)置了多個(gè)臨界區(qū)對(duì)象,包括:串口通信臨界區(qū)m_csCommunicationSync、數(shù)據(jù)庫(kù)ADO組件訪問(wèn)臨界區(qū)critical for ado、護(hù)理機(jī)結(jié)構(gòu)鏈表臨界區(qū)對(duì)象critical for list等。為保證串口收發(fā)數(shù)據(jù)的高效性,在充分分析多線程技術(shù)和API異步操作串口方式的特點(diǎn)之后,本系統(tǒng)將串口的數(shù)據(jù)收發(fā)采用單獨(dú)的線程處理。
系統(tǒng)串口通信采用事件通知方式,該方式是Windows下效率較高的一種方式。主線程在打開(kāi)串口后首先設(shè)置要監(jiān)視的串口通信事件,然后將監(jiān)視線程打開(kāi),用來(lái)監(jiān)視主線程設(shè)置的這些串口通信事件是否發(fā)生,當(dāng)其中的某個(gè)事件發(fā)生后,監(jiān)視線程要能根據(jù)不同的事件類型進(jìn)行處理。
2.2 護(hù)理機(jī)監(jiān)控功能的實(shí)現(xiàn)
按照護(hù)理機(jī)的無(wú)線遠(yuǎn)程監(jiān)控要求,在上位監(jiān)控PC機(jī)中需要完成以下功能:
(1)重要監(jiān)測(cè)參數(shù)的顯示。在監(jiān)控界面的顯示區(qū)能實(shí)時(shí)顯示護(hù)理機(jī)的重要監(jiān)測(cè)信息(護(hù)理機(jī)所在科室及床位號(hào)、檢測(cè)數(shù)據(jù)、工作狀態(tài)、報(bào)警狀態(tài)等)。
(2)系統(tǒng)配置。管理員(如護(hù)士長(zhǎng))能“動(dòng)態(tài)”地完成系統(tǒng)通信端口的配置和使用單位名稱(如醫(yī)院名稱)配置。
(3)用戶管理配置。管理員能“動(dòng)態(tài)”地增添用戶,并設(shè)置用戶的權(quán)限和初始密碼,管理員能注銷除了“當(dāng)前登錄管理員”以外的所有用戶。所有用戶在登錄后可以修改自己的登錄密碼。
(4)網(wǎng)絡(luò)設(shè)備配置。管理員能“動(dòng)態(tài)”地向無(wú)線網(wǎng)絡(luò)中“注冊(cè)”或“注銷”某一護(hù)理機(jī)(包括該護(hù)理機(jī)的ID號(hào)、所屬科室名稱、所處病房號(hào)和床位號(hào))。
(5)具有數(shù)據(jù)報(bào)表查詢和打印功能。系統(tǒng)能對(duì)監(jiān)控過(guò)程中重要事件進(jìn)行記錄,并能實(shí)現(xiàn)對(duì)這些信息的條件查詢和打印功能。這些重要事件包括用戶登錄或退出時(shí)的用戶名及時(shí)間;護(hù)理機(jī)狀態(tài)改變及時(shí)間。任何當(dāng)前用戶均能點(diǎn)擊監(jiān)控主界面的“報(bào)表查詢”菜單,能分別按“時(shí)間”、“用戶名”、“床位號(hào)”查詢以往所有數(shù)據(jù)庫(kù)中記錄的值班期間的所有監(jiān)測(cè)信息。此功能的實(shí)現(xiàn)主要是通過(guò)數(shù)據(jù)庫(kù)結(jié)合報(bào)表的設(shè)計(jì)來(lái)實(shí)現(xiàn)的。
通過(guò)對(duì)上位機(jī)監(jiān)控軟件的功能分析,首先確定其由“主線程”、“通信處理線程”、“語(yǔ)音處理線程”等部分組成,然后進(jìn)行各部分功能細(xì)化,最后,按照模塊化功能用C++Builder編程實(shí)現(xiàn)。為提高數(shù)據(jù)處理效率,在通信處理軟件設(shè)計(jì)部分,開(kāi)辟了單獨(dú)的“數(shù)據(jù)接收線程”和“數(shù)據(jù)處理線程”,處理線程將接收線程接收的下位機(jī)所有數(shù)據(jù)進(jìn)行校驗(yàn)處理,并將下位機(jī)工作數(shù)據(jù)存入數(shù)據(jù)庫(kù),最后根據(jù)與上次工作數(shù)據(jù)比較,確定是否更新“主線程目錄樹(shù)”。主線程根據(jù)用戶需求,實(shí)時(shí)地從數(shù)據(jù)庫(kù)調(diào)取數(shù)據(jù)顯示,同時(shí)主線程還要能完成護(hù)理機(jī)“入網(wǎng)注冊(cè)”、“注銷”、“操作員的配置”以及對(duì)下位機(jī)數(shù)據(jù)的“按條件報(bào)表查詢”等功能。此外,考慮到現(xiàn)在的PC機(jī)通常采用USB通信方式,因此針對(duì)ZigBee網(wǎng)絡(luò)的協(xié)調(diào)器與上位機(jī)的連結(jié)采用了“USB轉(zhuǎn)串口”方式,本系統(tǒng)還設(shè)計(jì)了USB串口熱插拔功能,當(dāng)更換不同的USB連接口時(shí),上位機(jī)通過(guò)C++Builder編程能自動(dòng)獲取串口COM的串口號(hào),使上位機(jī)監(jiān)控軟件的應(yīng)用非常通用化。圖4為用C++Builder編寫(xiě)的上位機(jī)監(jiān)控主界面,鑒于篇幅因素,本文以具有代表性的“護(hù)理機(jī)監(jiān)測(cè)參數(shù)顯示”和“護(hù)理機(jī)動(dòng)態(tài)注冊(cè)注銷功能”為例,介紹其實(shí)現(xiàn)過(guò)程。
2.2.1 護(hù)理機(jī)監(jiān)測(cè)參數(shù)的顯示
系統(tǒng)要求當(dāng)點(diǎn)擊“按病床位瀏覽”顯示的目錄樹(shù)時(shí),只有點(diǎn)擊注冊(cè)護(hù)理機(jī)對(duì)應(yīng)的床位時(shí),才能顯示該護(hù)理機(jī)的重要信息,并且要顯示護(hù)理機(jī)所在科室及床位號(hào);當(dāng)點(diǎn)擊“按病房號(hào)瀏覽”目錄頁(yè)時(shí),只有點(diǎn)擊注冊(cè)護(hù)理機(jī)對(duì)應(yīng)的病房號(hào)時(shí)才會(huì)顯示在此病房下所有護(hù)理機(jī)的信息。除了護(hù)理機(jī)重要工作參數(shù)需要顯示外,護(hù)理機(jī)報(bào)警狀態(tài)、離線狀態(tài)也需要突出顯示。其中,報(bào)警信息采用了紅色字體閃爍方式顯示;離線狀態(tài)采用了灰色字體顯示。
該功能的實(shí)現(xiàn)用到了TreeView目錄樹(shù)的單擊事件,此外,系統(tǒng)有專門(mén)負(fù)責(zé)根據(jù)節(jié)點(diǎn)信息,調(diào)取數(shù)據(jù)庫(kù)中對(duì)應(yīng)節(jié)點(diǎn)護(hù)理機(jī)信息的定時(shí)器,通過(guò)定時(shí)器不斷獲取節(jié)點(diǎn)最新數(shù)據(jù)進(jìn)行顯示;通過(guò)單擊事件處理函數(shù),判斷是否是單擊的對(duì)應(yīng)節(jié)點(diǎn),如果點(diǎn)擊的是按病房瀏覽方式中的病房節(jié)點(diǎn),則先取出該病房下第一個(gè)子節(jié)點(diǎn)信息,并將第一個(gè)GroupBox設(shè)置為可視,再取后面的子節(jié)點(diǎn),操作類似,直到第四個(gè)子節(jié)點(diǎn)。當(dāng)點(diǎn)擊的是“按床位瀏覽”方式下的床位節(jié)點(diǎn)時(shí),先獲取此節(jié)點(diǎn)數(shù)據(jù)信息,然后將第一個(gè)GroupBox設(shè)為可視,最后根據(jù)節(jié)點(diǎn)信息,定時(shí)器會(huì)查詢數(shù)據(jù)庫(kù)中對(duì)應(yīng)護(hù)理機(jī)的工作參數(shù)進(jìn)行數(shù)據(jù)顯示。其操作流程如圖5所示,實(shí)時(shí)監(jiān)測(cè)參數(shù)顯示界面如圖4所示。
2.2.2 護(hù)理機(jī)動(dòng)態(tài)“注冊(cè)”“注銷”功能
根據(jù)系統(tǒng)要求,系統(tǒng)管理員能夠動(dòng)態(tài)地“注冊(cè)”要求入網(wǎng)監(jiān)控的護(hù)理機(jī)或“注銷”不需要監(jiān)控的護(hù)理機(jī)。在注冊(cè)成功后,如果注冊(cè)護(hù)理機(jī)確實(shí)存在,并且成功加入網(wǎng)絡(luò),那么監(jiān)控界面應(yīng)能接收和發(fā)送對(duì)應(yīng)護(hù)理機(jī)的信息,并能查看其工作狀態(tài)信息;而在注銷護(hù)理機(jī)后,即使下位機(jī)有信息發(fā)送過(guò)來(lái),監(jiān)控軟件也不予以處理,將此信息丟棄。護(hù)理機(jī)入網(wǎng)絡(luò)管理實(shí)現(xiàn)界面如圖6所示:
具體實(shí)現(xiàn)是:“注冊(cè)”時(shí),根據(jù)護(hù)理機(jī)注冊(cè)信息,將其寫(xiě)入數(shù)據(jù)庫(kù)相關(guān)護(hù)理機(jī)信息表中;“注銷”時(shí),將要注銷的護(hù)理機(jī)信息從信息表中刪除。在接收數(shù)據(jù)線程中,接收:每幀數(shù)據(jù)時(shí),檢驗(yàn)幀中關(guān)于護(hù)理機(jī)ID的信息,判斷其是否與表中的對(duì)應(yīng),如果對(duì)應(yīng)就實(shí)時(shí)更新護(hù)理機(jī)工作數(shù)據(jù)表中的護(hù)理機(jī)數(shù)據(jù)記錄,否則就直接丟棄,不作處理。在注冊(cè)、注銷按鈕動(dòng)作中,將目錄樹(shù)進(jìn)行重繪,這樣就實(shí)現(xiàn)了注冊(cè)注銷護(hù)理機(jī)的實(shí)時(shí)性顯示。注冊(cè)操作流程如圖7所示,實(shí)現(xiàn)程序略。
3 系統(tǒng)測(cè)試
為測(cè)試基于ZigBee的病房護(hù)理機(jī)遠(yuǎn)程智能監(jiān)控系統(tǒng)的可靠性和穩(wěn)定性,我們?cè)谧o(hù)理機(jī)測(cè)試車(chē)間用5臺(tái)護(hù)理機(jī)組網(wǎng)調(diào)試,系統(tǒng)連續(xù)運(yùn)行30天無(wú)故障(中間模擬停電30次,上電后,重新啟動(dòng)系統(tǒng))。
4 設(shè)計(jì)小結(jié)
綜上所述,基于ZigBee的病房護(hù)理機(jī)遠(yuǎn)程智能監(jiān)控系統(tǒng)在通用性和管理功能方面都是非常高的,其突出特點(diǎn)是實(shí)現(xiàn)了護(hù)理機(jī)的“無(wú)人護(hù)理”功能,在很大程度上解決了我國(guó)目前陪護(hù)人員緊缺和護(hù)理費(fèi)用高昂等亟待解決的問(wèn)題,具有廣闊的銷售渠道和市場(chǎng)空間,將會(huì)產(chǎn)生很大的經(jīng)濟(jì)效益和社會(huì)效益,是造福弱勢(shì)群體和改善社會(huì)民生的好產(chǎn)品。