0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于單片機(jī)DHT22溫濕度LabView上位機(jī)監(jiān)控系統(tǒng)設(shè)計(jì)

? 來源:bbxyliyang ? 作者:bbxyliyang ? 2023-07-18 09:11 ? 次閱讀

一、系統(tǒng)方案
本設(shè)計(jì)采用AT89C52單片機(jī)作為主控制器,液晶1602顯示溫濕度,LabView上位機(jī)通信,上位機(jī)顯示溫度,同時(shí)上位機(jī)可以設(shè)置溫度上下限,當(dāng)測量溫度低于或高于上限,溫度報(bào)警,上位機(jī)可以控制下位機(jī)加熱設(shè)備啟動與關(guān)閉,實(shí)現(xiàn)上位機(jī)和下位機(jī)的交換數(shù)據(jù)。

wKgZomS1QYSAQlAOAAAZw44TFRo191.png


二、硬件設(shè)計(jì)
原理圖如下:

wKgaomS1QYyAOCvmAAEotUKS6-Y003.png

三、單片機(jī)軟件設(shè)計(jì)
1、單片機(jī)代碼主要是串口初始化、串口中斷服務(wù)程序。首先是串口初始化:
void uart_init()
{
TMOD |= 0x20;//定時(shí)器1,工作模式2 8位自動重裝
TH1 = 0xfd;
TL1 = 0xfd;//設(shè)置比特率9600
SM0 = 0;
SM1 = 1;//串口工作方式1,8位UART波特率可變
TR1 = 1;//啟動定時(shí)器1
REN = 1;
EA = 1; //打開總中斷
ES = 1; //打開串口中斷
}
2、貼上51單片機(jī)負(fù)責(zé)串口發(fā)送的兩個(gè)函數(shù):
void SendByte(unsigned char dat) //發(fā)送一個(gè)字節(jié)的數(shù)據(jù),形參dat即為待發(fā)送數(shù)據(jù)。
{
SBUF = dat; //將數(shù)據(jù)寫入到串口緩沖
while(!TI); //等待發(fā)送完畢
TI = 0;
}
void SendArray(unsigned char *Array, unsigned char Size)//通過串口發(fā)送一個(gè)數(shù)組,構(gòu)建for循環(huán),改變索引依次發(fā)送
{
unsigned char i;

for(i = 0; i < Size; i++)
{
SendByte(Array[i]);
}
}
在串口中斷中處理接收到的數(shù)據(jù):
void uart(void) interrupt 4 //串口中斷
{
unsigned char Res;
static unsigned char Rec_state = 0;

if(RI) //收到數(shù)據(jù)
{
RI = 0; //清中斷請求
Res = SBUF;
if(Res == 0xFF) //接收到幀頭
{
Rec_state = 1;
}
else if(Rec_state == 1 && Res == 0xEE)//接收到幀尾
{
Rec_state = 0;
}
else if(Rec_state == 1)
{
switch(Res)//接收到數(shù)據(jù),繼電器控制
{
case 0x02: RY2 = 0; break;
case 0x03: RY2 = 1; break;
default : RY2 =1; break;
}
}
}
else //發(fā)送完一字節(jié)數(shù)據(jù)
{
//TI = 0;
}
}
3、貼上DHT22讀溫濕度函數(shù)
unsigned char Read_Sensor(void)
{
unsigned char i;
//主機(jī)拉低(Min=800US Max=20Ms)
DHT_PIN = 0;
Delay_N1ms(18); //延時(shí)18Ms

//釋放總線 延時(shí)(Min=30us Max=50us)
DHT_PIN = 1;
Delay_N10us(2);//延時(shí)30us
//主機(jī)設(shè)為輸入 判斷傳感器響應(yīng)信號
DHT_PIN = 1;

Sensor_AnswerFlag = 0; // 傳感器響應(yīng)標(biāo)志

//判斷從機(jī)是否有低電平響應(yīng)信號 如不響應(yīng)則跳出,響應(yīng)則向下運(yùn)行
if(DHT_PIN ==0)
{
Sensor_AnswerFlag = 1;//收到起始信號
Sys_CNT = 0;
//判斷從機(jī)是否發(fā)出 80us 的低電平響應(yīng)信號是否結(jié)束
while((!DHT_PIN))
{
if(++Sys_CNT>300) //防止進(jìn)入死循環(huán)
{
Sensor_ErrorFlag = 1;
return 0;
}
}
Sys_CNT = 0;
//判斷從機(jī)是否發(fā)出 80us 的高電平,如發(fā)出則進(jìn)入數(shù)據(jù)接收狀態(tài)
while((DHT_PIN))
{
if(++Sys_CNT>300) //防止進(jìn)入死循環(huán)
{
Sensor_ErrorFlag = 1;
return 0;
}
}
// 數(shù)據(jù)接收 傳感器共發(fā)送40位數(shù)據(jù)
// 即5個(gè)字節(jié) 高位先送 5個(gè)字節(jié)分別為濕度高位 濕度低位 溫度高位 溫度低位 校驗(yàn)和
// 校驗(yàn)和為:濕度高位+濕度低位+溫度高位+溫度低位
for(i=0;i<5;i++)
{
Sensor_Data[i] = Read_SensorData();
}
}
else
{
Sensor_AnswerFlag = 0; // 未收到傳感器響應(yīng)
}
return 1;
}
四、上位機(jī)軟件設(shè)計(jì)
上位機(jī)是借助LabView來開發(fā)的,界面比較簡單,首先前面板設(shè)計(jì)UI界面,之后后面板通過圖形化編程完成軟件開發(fā),放上一個(gè)上位機(jī)前面板的截圖:

wKgZomS1QZmAeTcgAAEOoYm8f2E953.png

后面板截圖如下:

wKgaomS1QZ-AAqSRAACZ1h2Uzlg640.pngwKgZomS1QaaAS31aAABTztsfJm4680.png

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6026

    文章

    44456

    瀏覽量

    630999
  • LabVIEW
    +關(guān)注

    關(guān)注

    1958

    文章

    3651

    瀏覽量

    321475
  • 監(jiān)控系統(tǒng)

    關(guān)注

    21

    文章

    3818

    瀏覽量

    173164
  • 上位機(jī)
    +關(guān)注

    關(guān)注

    27

    文章

    928

    瀏覽量

    54655
  • DHT22
    +關(guān)注

    關(guān)注

    2

    文章

    51

    瀏覽量

    7143
收藏 人收藏

    評論

    相關(guān)推薦

    51單片機(jī)溫濕度監(jiān)控系統(tǒng)

    ,實(shí)現(xiàn)系統(tǒng)對超限溫濕度監(jiān)控報(bào)警; 5.設(shè)計(jì)輸入單元,可對系統(tǒng)正常溫濕度范圍進(jìn)行調(diào)節(jié); 6.仿真系統(tǒng)
    發(fā)表于 08-18 21:12

    51單片機(jī)dht11溫濕度傳感器

    51單片機(jī)dht11溫濕度傳感器,今天給大家介紹的是一個(gè)溫濕度檢測設(shè)計(jì),基于51單片機(jī)、藍(lán)牙模塊、溫濕度
    發(fā)表于 07-14 07:45

    AM2303(DHT22)濕敏電容數(shù)字溫濕度模塊綜述

    一、產(chǎn)品綜述AM2303(DHT22)濕敏電容數(shù)字溫濕度模塊是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越
    發(fā)表于 12-13 08:04

    基于單片機(jī)的蔬菜大棚溫濕度智能控制系統(tǒng)設(shè)計(jì)資料分享

    基于STM32的多點(diǎn)溫濕度無線傳輸檢測及控制(基于單片機(jī)的蔬菜大棚溫濕度智能控制系統(tǒng))一前言(含研究目的及意義)1、研究目的2、研究意義二、研究工作的主要內(nèi)容三、理論創(chuàng)新成果四、實(shí)踐創(chuàng)
    發(fā)表于 02-16 06:34

    如何去實(shí)現(xiàn)一種基于單片機(jī)的糧倉溫濕度監(jiān)控系統(tǒng)設(shè)計(jì)

    。標(biāo)簽:51單片機(jī)、LCD1602、DS1302、DHT11、ADC0832題目擴(kuò)展:冷庫檢測系統(tǒng)。糧庫溫濕度監(jiān)控-實(shí)物設(shè)計(jì) - 電子校園編
    發(fā)表于 02-18 06:25

    【CW32飯盒派開發(fā)板試用體驗(yàn)】+DHT22溫濕度檢測

    DHT11是一種常見的單總線數(shù)字式溫濕度,且在開發(fā)板上配有該溫濕度傳感器的接口,見圖1所示。 由于手頭只有DHT22,就直接以它來進(jìn)行溫濕度
    發(fā)表于 06-12 10:38

    基于單片機(jī)控制的大棚溫濕度監(jiān)控系統(tǒng)的設(shè)計(jì)

    基于單片機(jī)控制的大棚溫濕度監(jiān)控系統(tǒng)的設(shè)計(jì)
    發(fā)表于 09-20 08:24 ?109次下載
    基于<b class='flag-5'>單片機(jī)</b>控制的大棚<b class='flag-5'>溫濕度</b><b class='flag-5'>監(jiān)控</b><b class='flag-5'>系統(tǒng)</b>的設(shè)計(jì)

    DHT11溫濕度傳感器的AVR單片機(jī)例程

    DHT11溫濕度傳感器的AVR單片機(jī)例程
    發(fā)表于 05-16 14:46 ?26次下載
    <b class='flag-5'>DHT</b>11<b class='flag-5'>溫濕度</b>傳感器的AVR<b class='flag-5'>單片機(jī)</b>例程

    微雪電子DHT22 溫濕度傳感器簡介

    DHT22 溫濕度傳感器 標(biāo)準(zhǔn)單總線接口 高精度測量 用于檢測環(huán)境溫濕度 型號 DHT22 Temperature-Humidity Sensor
    的頭像 發(fā)表于 01-02 16:17 ?4678次閱讀
    微雪電子<b class='flag-5'>DHT22</b> <b class='flag-5'>溫濕度</b>傳感器簡介

    687【畢設(shè)課設(shè)】基于單片機(jī)溫濕度DHT11智能晾衣架系統(tǒng)

    687【畢設(shè)課設(shè)】基于單片機(jī)溫濕度DHT11智能晾衣架系統(tǒng)
    發(fā)表于 11-13 10:36 ?20次下載
    687【畢設(shè)課設(shè)】基于<b class='flag-5'>單片機(jī)</b><b class='flag-5'>溫濕度</b><b class='flag-5'>DHT</b>11智能晾衣架<b class='flag-5'>系統(tǒng)</b>

    基于51單片機(jī)的加濕器控制系統(tǒng)(dht22)Proteu

    基于51單片機(jī)的加濕器控制系統(tǒng)(dht22)Proteu
    發(fā)表于 12-27 09:48 ?43次下載

    基于單片機(jī)的糧倉溫濕度監(jiān)控系統(tǒng)

    的閾值。標(biāo)簽:51單片機(jī)、LCD1602、DS1302、DHT11、ADC0832題目擴(kuò)展:冷庫檢測系統(tǒng)。糧庫溫濕度監(jiān)控-實(shí)物設(shè)計(jì) - 電子
    發(fā)表于 12-23 19:29 ?37次下載
    基于<b class='flag-5'>單片機(jī)</b>的糧倉<b class='flag-5'>溫濕度</b><b class='flag-5'>監(jiān)控</b><b class='flag-5'>系統(tǒng)</b>

    基于單片機(jī)LabVIEW溫濕度監(jiān)測系統(tǒng)設(shè)計(jì)

    利用單片機(jī)和虛擬儀器LabVIEW在PC端設(shè)計(jì)了溫濕度測量及控制系統(tǒng),用于溫濕度數(shù)據(jù)監(jiān)測。該系統(tǒng)
    的頭像 發(fā)表于 06-09 14:02 ?5337次閱讀
    基于<b class='flag-5'>單片機(jī)</b>和<b class='flag-5'>LabVIEW</b>的<b class='flag-5'>溫濕度</b>監(jiān)測<b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)

    基于PIC18系列單片機(jī)DHT11溫濕度采集系統(tǒng)設(shè)計(jì)

    基于PIC18系列(PIC18F4520)單片機(jī)+DHT11的溫濕度采集系統(tǒng)的設(shè)計(jì)與制作(Proteus仿真部分)
    的頭像 發(fā)表于 06-16 16:36 ?986次閱讀
    基于PIC18系列<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>DHT</b>11<b class='flag-5'>溫濕度</b>采集<b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)

    數(shù)字溫濕度模塊DHT22說明書_V3

    數(shù)字溫濕度模塊DHT22說明書
    發(fā)表于 12-02 14:23 ?19次下載