劉寺杰 徐敏 張晨宇 趙婭麗
摘 要 傳統(tǒng)的OLED顯示編程繁瑣,開發(fā)復(fù)雜,USART HMI屏開發(fā)界面友好,利用上位機(jī)進(jìn)行界面開發(fā),可以直接同步到屏幕上顯示。系統(tǒng)采用STM32F407作為控制芯片,選用DHT11作為溫濕度采集的傳感器,最終將采集的溫度以多元化的方式顯示在HMI串口屏上。如果溫濕度不符合設(shè)定要求,蜂鳴器就會啟動報警。系統(tǒng)經(jīng)測試,開發(fā)容易,工作穩(wěn)定可靠。
關(guān)鍵詞 HMI 智能 多元化 溫濕度
中圖分類號:TP302.7 文獻(xiàn)標(biāo)識碼:A DOI:10.16400/j.cnki.kjdkx.2018.08.029
Abstract The traditional OLED display programming is complicated and complicated to develop. USART HMI screen development friendly interface, the use of host computer interface development, can be directly synchronized to the screen display. The system uses STM32F407 as the control chip and DHT11 as the sensor for temperature and humidity acquisition. Finally, the collected temperature is displayed on the HMI serial screen in a diversified manner. If the temperature and humidity do not meet the set requirements, the buzzer will start the alarm. The system has been tested and developed with ease and reliability.
Keywords HMI; smart; diversification; temperature and humidity
0 引言
隨著人們生活水平的不斷提高,電氣設(shè)備已經(jīng)走進(jìn)千家萬戶,溫濕度對于電氣設(shè)備來說一直是一個重要的環(huán)境因素,因此越來越多的傳感器被應(yīng)用到電氣設(shè)備中。系統(tǒng)采用STM32F407作為控制芯片,選用DHT11作為溫濕度采集的傳感器,最終將采集的溫度以多元化的方式顯示在HMI串口屏上。如果溫濕度不符合設(shè)定要求,蜂鳴器就會啟動報警。系統(tǒng)具有智能化、多元化、性價比高等多個優(yōu)點。
1 系統(tǒng)總體設(shè)計
系統(tǒng)主要的功能是溫濕度采集,數(shù)據(jù)的多元化顯示以及超出范圍的報警。系統(tǒng)處理單元為STM32F407,采集的傳感器為DHT11顯示部分為HMI智能串口屏。傳感器先采集溫度,然后以串口的形式把數(shù)組發(fā)送給處理器,處理器對溫濕度進(jìn)行判斷和處理,若不滿足程序的判斷語句,就會觸發(fā)蜂鳴器模塊,同時將數(shù)據(jù)以串口的形式傳送給HMI智能串口屏。設(shè)計系統(tǒng)的總體框圖如圖1所示。
2 系統(tǒng)硬件設(shè)計
2.1 處理器
針對本系統(tǒng)設(shè)計的要求,系統(tǒng)CPU選用STM32F407,該處理器芯片基于ARM Cortex-M4內(nèi)核設(shè)計。STM32F4擁有192KB的片內(nèi)SRAM,帶攝像頭接口(DCMI)、USB高速OTG等。對于相同的外設(shè)部分,STM32F4具有更快的模/數(shù)轉(zhuǎn)換速度,更低的ADC/DAC工作電壓、4KB的電池備份SRAM以及更快的USART和SPI通信速度。另外在時鐘的最高運(yùn)行頻率上,STM32F4可達(dá)到168MHz,擁有的ART自適應(yīng)實時加速器可以達(dá)到相當(dāng)于FLASH零等待的性能,STM32F4的功耗為238 A/MHz, 滿足了開發(fā)需求。
2.2 HMI智能串口屏
HMI智能串口屏是可編輯的智能LCD觸摸顯示屏,擁有先進(jìn)的人機(jī)界面處理系統(tǒng)和美觀的嵌入式圖形界面。串口屏的界面制作是在USART HMI的上位機(jī)上完成的,STM32用串口與顯示屏交互傳送指令,開發(fā)效率得到了提高。串口屏不僅可以用串口下載,還可以用SD卡下載,插入SD卡后,串口屏自動更新。在調(diào)試方面,不僅有電腦端模擬的調(diào)試方式,還可以用模擬器和串口屏同步調(diào)試。
2.3 DHT11溫濕度傳感器
DHT11可以檢測環(huán)境的溫度和濕度,濕度范圍為20~95%RH,誤差在?%;溫度測量范圍為0℃~50℃,誤差為?℃,工作電壓在5V左右。一個測溫元件和一個電阻式測濕度的器件組成了傳感器,通過插入的方式就可以與處理器建立連接,該傳感器價格低,穩(wěn)定性強(qiáng),這也是選擇這種型號傳感器的原因。
3 系統(tǒng)軟件設(shè)計
3.1 DHT11溫濕度采集
DHT11溫濕度傳感器使用一條總線,數(shù)據(jù)在傳感器和處理器之間來回傳輸。數(shù)據(jù)包的大小是5Byte。數(shù)據(jù)包又分成小數(shù)和整數(shù)數(shù)據(jù),高位先輸出。格式為:8比特濕度整數(shù)、8比特濕度小數(shù)、8比特溫度整數(shù)、8比特溫度小數(shù)、8比特校驗和。核心代碼如下:
u8 DHT11_Bit(void)
{
u8 time=0;
while(DHT11_DQ_IN&&time;<100)
{
time++;
delay_us(1);
}
time=0;
while(!DHT11_DQ_IN&&time;<100)
{
time++;
delay_us(1);
}
delay_us(40);
if(DHT11_DQ_IN)return1;
else return 0;
}
u8 DHT11_Byte(void)
{
u8 i,dat;
dat=0;
for (i=0;i<8;i++)
{
dat<<=1;
dat|=DHT11_Bit();
}
return dat;
}
u8 DHT11_Data(u8 *temper,u8 *humini)
{
u8 buf[5];
u8 i;
DHT11_Rst();
if(DHT11_Check()==0)
{
for(i=0;i<5;i++)
{
buf[i]=DHT11_Byte();
}temper
if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
{
*temper=buf[0];
*humini=buf[2];
}
}
else return 1;
return 0;
3.2 HMI智能串口屏顯示
串口屏人機(jī)界面的設(shè)計基于上位機(jī)軟件USART HMI完成,這個上位機(jī)軟件操作方便,功能強(qiáng)大,擴(kuò)展性強(qiáng),上位機(jī)可以同步頁面的顯示,并且通過代碼控制控件可以多元化顯示數(shù)據(jù)。同時要注意的是,為確保串口HNI正常通信,顯示前先發(fā)送結(jié)束符。核心代碼如下:
void HMISends(char *buf2)
{
u8 p=0;
while(1)
{
if(buf2[p]!=0)
{
USART_SendData(USART2,buf2[p]);
while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET){};
i++;
}
else
return;
}
}
void HMISendEND(void) //結(jié)束符發(fā)送函數(shù)
{
HMISendb(0xff);
HMISendb(0xff);
HMISendb(0xff);
}
void Sendb(u8 m)
{
USART_SendData(USART2,m); //發(fā)送一個字節(jié)
while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET){};
return;
}
3.3 STM數(shù)據(jù)處理
STM32F407負(fù)責(zé)發(fā)送溫度和濕度,針對不同的控件,用不同的文本類型傳輸。當(dāng)溫度大于28或者濕度大于90時,蜂鳴器就會觸發(fā)。下面是部分代碼:
//給文本控件賦值
HMISends("t0.txt="); //發(fā)送字符串
HMISendb(34); //發(fā)送引號
DHT11_Data(&temperature;,&humidity;); //讀取溫濕度
zifu_Send(temperature); //分解溫度為字符,單字節(jié)發(fā)給串口屏HMISendb(34);
HMISendEND();
HMISends("j0.val=");
zifu_Send(temperature*2);
HMISendEND(); //發(fā)送結(jié)束符
if(temperature>28||humidity>90)
{BEEP=1;
}
else
{
BEEP=0;
}
4結(jié)果
在HMI智能串口屏上設(shè)計兩個頁面。第一個是加載頁面,從0緩沖到100;第二個是讀取溫濕度頁面,屏幕上不僅可以顯示對應(yīng)的溫濕度數(shù)據(jù),還提供了多元化的顯示,用溫度計的形式顯示溫度,用圓盤的形式顯示濕度。具體結(jié)果如圖2和圖3。
5 結(jié)束語
系統(tǒng)的設(shè)計是功耗低,處理快,功能較多,顯示多元化的溫濕度測量系統(tǒng)。特別是顯示屏的開發(fā)部分更加友好,界面也更美觀。不足的是沒有加入無線傳輸模塊和手機(jī)終端,要是將兩者加入,系統(tǒng)的功能也會更加完善和強(qiáng)大。
參考文獻(xiàn)
[1] 卜永波.基于DHT11傳感器的溫濕度采集系統(tǒng)[J].計算機(jī)與現(xiàn)代化,2013(11):133-135.
[2] 顏麗娜 基于DHT11溫濕度測控系統(tǒng)的設(shè)計[J].測控技術(shù),2013(12):397-399.
[3] 邱建東基于STM32和嵌入式Web服務(wù)的智能溫度監(jiān)測系統(tǒng)[J].寧夏大學(xué)學(xué)報,2015(1):40-43.
[4] 方威,孫玉坤.基于SHT75的溫濕度監(jiān)測網(wǎng)絡(luò)設(shè)計[J].農(nóng)機(jī)化研究,2009(3):86-88.
[5] 王海燕,高之圣.基于數(shù)字溫度傳感器DS18B20的智能溫度控制器的設(shè)計[J].科技信息(科學(xué)教研),2007(13):21-23.