方志鵬 梁月放




關鍵詞:STC12C5A16S2;胰島素;藍牙;溫度控制
中圖分類號:TP31 文獻標識碼:A
文章編號:1009-3044(2022)36-0078-04
1 概述
由于經濟水平的不斷發展、生活水平的提高、飲食習慣的改變、生活作息的不規律以及缺少一定運動量的生活方式等諸多因素,使全球糖尿病發病率增長趨勢逐年遞增,糖尿病也因此成為世界上第三種嚴重危害人類身體健康的慢性疾病。根據研究數據表明,全球糖尿病患者已超過5億人,中國糖尿病患者人數位居全球第二,目前我國的糖尿病發病率高達9.6%,成年人糖尿病患病人數約為1.3億,而青少年患病人數也在不斷提升[1]。
據臨床試驗得知,胰島素能夠快速地降低血糖,是能夠有效治療糖尿病的藥物之一,因為胰島素是屬于蛋白質類的一種激素,當溫度過高時會導致蛋白質變性,藥性失效。所以胰島素對存儲的溫度要求極高,一般存儲在2-8℃恒溫環境下,胰島素的恒溫儲存成為很多糖尿病人出行的一大困難。
本文根據實際生活需要設計了一款基于51單片機實現胰島素的低溫存儲系統,利用恒溫片將熱量導出,達到恒溫的效果,可實時監測存儲盒溫度參數,當溫度超過設定閾值,觸發報警功能。通過無線藍牙模塊將監測的數據上傳到手機App,實現存儲盒和智能終端互聯,方便用戶隨時掌握胰島素存儲的情況,將科技與現代生活相結合,用科技幫助人們提高生活質量。
2 系統整體設計
系統以51單片機為核心,采用2000mAh鋰電池對系統各模塊供電,傳感器的使用包括DX-BT04-A 藍牙傳感器、LCD12864液晶顯示屏傳感器、DS18B20溫度傳感器等。按照各個模塊的功能,胰島素低溫存儲盒系統可以分為五個模塊:電源管理模塊、環境檢測模塊、人機交互模塊、控制預警模塊和數據處理模塊。胰島素低溫存儲盒系統整體設計結構圖如圖1所示。
數據處理模塊向環境檢測模塊發送檢測系統內部溫度指令后,環境檢測模塊將采集到的系統內部溫度數值進行模數轉換后,再將轉換后的數據發送給數據處理模塊。數據處理模塊接收到轉換后的溫度數據后,控制預警模塊顯示相應溫度數值和警報的開關狀態。若溫度超過最初設定的胰島素存儲溫度閾值,系統中控制預警模塊發出報警信號,達到提醒用戶的作用。
用戶可通過人機交互模塊實時獲取存儲盒狀態,當溫度過高時,手機終端會接收到預警信號,用戶也
可通過手機藍牙軟件向數據處理模塊發送相應指令,獲取設備的溫度信息以及胰島素相關信息。系統中電源管理模塊分別向環境檢測模塊、人機交互模塊、控制預警模塊和數據處理模塊供電。
3 硬件電路設計
3.1 數據處理模塊設計
本系統使用STC12C5A16S2 作為主控芯片,STC12C5A16S2芯片擁有加強型8051內核,內置一個時鐘周期,處理數據高速準確。32個通用I/O口,雙串口的設計,使系統可以外接更多模塊,增加系統的可用性。低功耗的設計,使系統的續航能力大大提升。此款單片機在電子產品的設計中,應用最為廣泛,其功能強大、上手簡單、易操作、體積小、價格低廉等優點很適合作為胰島素低溫存儲盒的主控芯片。本系統數據處理模塊設計電路原理圖如圖2所示。
數據處理模塊主要任務是通過I/O口,將各模塊連接起來,同時負責為環境檢測等模塊供電和數據傳輸。通過溫度傳感器采集到的數據轉換后在控制預警模塊進行顯示與預警。通過人機交互模塊,使用戶隨時查看設備相關信息,完成相應功能。
3.2 環境檢測模塊
環境檢測模塊的主要由DS18B20溫度傳感器構成,該傳感器可將檢測到的溫度數據進行模數轉換并輸出,可檢測的環境溫度范圍在-55℃~﹢125℃(-67℉~+257℉),分辨率最高可達12位,檢測精度控制在±0.5攝氏度以內。可以直接將檢測的系統內部溫度轉化為數據處理模塊可接收的數字信號,不需要為系統設計數模轉換電路,方便快捷,測量精準[2]。環境檢測模塊電路原理圖如圖3所示。
環境檢測模塊工作方式可分為溫度檢測和數據處理兩部分,內部進行模數轉換,將模擬信號直接轉換為數字信號。采用單總線數據通信的通信方式,需要與數據處理模塊連接傳輸數據時,連接一根杜邦線即可實現雙向通信。將DQ引腳通過杜邦線連接到數據處理模塊上的P1_5引腳,VCC,GND連接到對應的引腳上,完成數據傳輸[3]。
3.3 人機交互模塊
DX-BT04-A藍牙模塊被廣泛運用于短距離通信領域。該模塊結構簡單,功能眾多,支持UART接口和眾多串口協議,具有低功耗、接收和發送數據響應快、傳輸速度快、穩定性好、價格低廉等優點,人機交互模塊實物如圖4所示。
用戶可以通過數據處理模塊的RXD和TXD兩個串口連接藍牙模塊,實現與人機交互模塊的通信。在使用此模塊之前我們需要進行AT指令配置,通過USB轉TTL模塊連接電腦,再通過STC-ISP軟件發送AT指令,獲得藍牙模塊初始化信息,如發送AT+BAUD可獲得初始波特率,發送AT+ PIN可獲得配對碼,發送AT+VERSION可獲得版本號等信息。此系統使用的DX-BT04-A藍牙模塊默認波特率為9600,即在代碼的初始化中波特率要配置正確,防止與藍牙模塊通信失敗[4]。
用戶在手機端應用商城下載藍牙調試幫手App,也可以使用自己制作的藍牙App,打開藍牙,找到對應的BT04-A藍牙模塊設備名稱進行連接,連接成功后即可通過調試幫手接收數據,也可通過調試幫手發送相應指令獲取設備信息,最終實現手機與系統之間的通信。
3.4 控制預警模塊
控制預警模塊由LCD12864液晶屏模塊和蜂鳴器模塊組成,LCD12864液晶屏是在單片機開發中常用的一款液晶顯示屏幕,像素為128×64,常用工作電壓為2.8~5.5v,該型號液晶模塊具有眾多接口且接收顯示數據靈活簡單,對于指令的操作方便快捷,功能強大,功耗低等特點,其內置的漢字庫和ASCll字符集使它可以簡單且快速地構成中英文顯示圖形界面,也可根據用戶需求顯示圖像界面。本系統顯示的界面如圖5所示[5]。
當溫度未超過設定的胰島素存儲溫度的閾值,屏幕顯示系統檢測到的溫度數值,警報為關閉狀態。若溫度超過設定的胰島素存儲溫度的閾值,屏幕會顯示警報:開,此時觸發蜂鳴器報警,發出“滴滴滴”的警報聲,達到提醒用戶的功能。
4 軟件系統設計
本系統是基于KEIL的uVision5的集成開發環境對數據處理模塊進行的軟件系統設計,采用C語言編寫程序代碼,模塊化程序設計理念,便于理解與分析。主要包含系統主程序,LCD12864 顯示子程序,DXBT04-A 藍牙模塊子程序,DS18B20溫度傳感器子程序,蜂鳴器報警模塊子程序等組成[6]。胰島素低溫存儲盒程序設計流程圖如圖6所示。
4.1 LCD12864 顯示子程序
該模塊程序設計主要包括LCD12864初始化、寫入數據、寫入命令和字符串顯示等,LCD12864由單片機的P0和P1端口控制,在初始化中包括復位操作、對比度等操作,在向LCD12864進行寫入數據或操作命令時,需注意時序再通過調用中斷程序實現顯示功能,若寫入的時序沒有嚴格按照要求進行編寫,則可能會導致液晶屏幕顯示亂碼或不顯示。
LCD12864顯示模塊部分代碼如下:
void dis(uchar x,uchar y,uchar *s) //顯示字符串
{
switch(y) //選擇縱坐標
{
case 0:wcode(0x80+x);break; //第一行
case 1:wcode(0x90+x);break; //第二行
case 2:wcode(0x88+x);break; //第三行
case 3:wcode(0x98+x);break; //第四行
default:break;
}
while(*s>0)
{
wdata(*s);
delay(10);
s++;
}
}
4.2 DX-BT04-A 藍牙模塊子程序
DX-BT04-A藍牙模塊子程序設計主要包括藍牙模塊初始化、串口中斷的調用和用戶交互等,在藍牙模塊初始化程序設計,首先我們要設置藍牙模塊波特率初始化配置,DX-BT04-A藍牙模塊通過串口軟件STC-ISP發送AT指令AT+BAUD查詢波特率得知,波特率為9600,配置系統串口工作方式1。初始化配置完成后,在用戶交互的程序設計中,使用數組存儲獲取到的數據,由于單片機的數據存儲在寄存器中,即利用賦值語句獲取到寄存器中的數據。使用標志位“#”判斷用戶是否結束操作,最后利用標志位flag進行分類。
人機交互模塊部分代碼如下:
__interrupt void URX0_ISR(void) //藍牙模塊
{
Data = U0DBUF;
if(Data!='#'||RX_COUNT==32-1) //標志位
{
RX_BUF[RX_COUNT++]=Data;
}
else{
for(i=0;i<RX_COUNT;f++)
{
RX_DAT[i]=RX_BUF[i];
}
RX_COUNT=0;
RX_OVER=1;
}
URX0IF = 0;
}
4.3 DS18B20溫度傳感器子程序
該模塊程序設計主要包括初始化即復位操作、讀取ROM操作指令、對RAM的讀,寫操作、收發數據等,在初始化的過程中檢測信號線是否被拉高或拉低,設置等待時間,若檢測到信號線被拉高則標志著初始化完成,信號線被拉低則需要返回主程序,重新初始化。主控制器的延時至少需要達到0.48微秒,確保應答操作不會出現錯誤。在接收或發送數據時,讀寫操作時間須至少保持0.06毫秒不變,以確保讀寫操作不會出現錯誤[7]。
環境檢測模塊部分代碼如下:
Void ReadTemperature() //測溫程序
{
uchar a=0;
uchar b=0;
uint t=0;
float tt=0;
Init_DS18B20();
WriteOneChar(0xCC);
WriteOneChar(0x44);
Init_DS18B20();
WriteOneChar(0xCC);
WriteOneChar(0xBE);
a=ReadOneChar();
b=ReadOneChar();
t=b;
t<<=8;
t=t|a;
tt=t*0.0625;
t= tt*10+0.5;
return(t);
}
5 組裝與調試
為確保整個系統的正確性與實用性,在硬件電路與軟件系統設計完成后,我們對整個系統進行組裝與調試,檢查各個模塊連線是否正確,DS18B20溫度傳感器、DX-BT04-A 藍牙模塊、LCD12864顯示模塊等供電是否正常。確保線路連接正確后,查看LCD12864顯示模塊是否正常顯示溫度信息與警報開關狀態,對系統進行升溫操作,當溫度超過設定的報警范圍,查看蜂鳴器報警模塊是否正常工作。為保證系統的可靠性,利用獨立溫度檢測設備對胰島素存儲盒系統內部與外部溫度進行溫度監測,設備檢測溫度數據如表1所示。通過測量的數據發現,該系統的恒溫控制系統能將溫度控制在3℃以下,遠低于系統外部溫度,說明該系統安全可靠,能夠較好地保持溫度恒定,實現了胰島素的低溫存儲。
打開手機藍牙,連接藍牙模塊,在藍牙調試助手中查看是否可以接收溫度信息,發送相應指令如溫度,過期信息等后查看是否可以正常接收反饋。最終經過測試,系統運轉正常,數據接收準確無誤,完成整個系統的組裝與調試。人機交互模塊調試界面如圖7 所示,左圖為發送界面,右圖為接收界面。
6 結束語
本文設計了一套基于STC12C5A60S2芯片為主控芯片的51單片機、DX-BT04-A藍牙模塊、DS18B20溫度傳感器、LCD12864液晶顯示模塊、蜂鳴器報警模塊和串口通信的胰島素低溫存儲盒系統。藍牙模塊的應用使得胰島素低溫存儲盒系統更加便捷,更加智能,用戶可通過發送指令隨時獲取設備相關信息。實驗結果表明,胰島素低溫存儲盒系統安全可靠,測溫精確,方便快捷,可模塊化組裝,極大地滿足了糖尿病人的日常生活需求。