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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

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

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

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

wKgZomS1QYSAQlAOAAAZw44TFRo191.png


二、硬件設計
原理圖如下:

wKgaomS1QYyAOCvmAAEotUKS6-Y003.png

三、單片機軟件設計
1、單片機代碼主要是串口初始化、串口中斷服務程序。首先是串口初始化:
void uart_init()
{
TMOD |= 0x20;//定時器1,工作模式2 8位自動重裝
TH1 = 0xfd;
TL1 = 0xfd;//設置比特率9600
SM0 = 0;
SM1 = 1;//串口工作方式1,8位UART波特率可變
TR1 = 1;//啟動定時器1
REN = 1;
EA = 1; //打開總中斷
ES = 1; //打開串口中斷
}
2、貼上51單片機負責串口發(fā)送的兩個函數(shù):
void SendByte(unsigned char dat) //發(fā)送一個字節(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ā)送一個數(shù)組,構建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;
//主機拉低(Min=800US Max=20Ms)
DHT_PIN = 0;
Delay_N1ms(18); //延時18Ms

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

Sensor_AnswerFlag = 0; // 傳感器響應標志

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

wKgZomS1QZmAeTcgAAEOoYm8f2E953.png

后面板截圖如下:

wKgaomS1QZ-AAqSRAACZ1h2Uzlg640.pngwKgZomS1QaaAS31aAABTztsfJm4680.png

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

    關注

    6037

    文章

    44558

    瀏覽量

    635308
  • LabVIEW
    +關注

    關注

    1971

    文章

    3654

    瀏覽量

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

    關注

    21

    文章

    3914

    瀏覽量

    174710
  • 上位機
    +關注

    關注

    27

    文章

    942

    瀏覽量

    54814
  • DHT22
    +關注

    關注

    2

    文章

    51

    瀏覽量

    7184
收藏 人收藏

    評論

    相關推薦

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

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

    51單片機dht11溫濕度傳感器

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

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

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

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

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

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

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

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

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

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

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

    DHT11溫濕度傳感器的AVR單片機例程

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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