導航:首頁 > 操作系統 > 單片機空氣檢測

單片機空氣檢測

發布時間:2022-07-27 20:19:43

① 對空氣中二氧化碳測量,用單片機怎麼做呀

單片機系統+二氧化碳濃度測量感測器。
氣體分析感測器較為復雜,需要做溫度、壓力、濕度、氧氣補償,所以,商品提供的感測器一般均為智能感測器,即微處理器與感測器及補償電路做為一體供應,只需要對感測器供電, 有5V供電的,還有11--36V范圍供電的,感測器就會變送輸出4-20mA標准電流信號或者0-5V電壓信號。 將這個信號輸入單片機做AD變換, 根據感測器標定的量程即可算出二氧化碳濃度。也有感測器可直接輸出數字信號,與單片機進行串列通信即可讀出二氧化碳濃度值。

② 如何檢測空氣溫度原理單片機

本設計是基於單片機的氣象監測系統,主要實現以下功能:

可通過LCD1602顯示溫濕度和空氣質量;
可通過按鍵調整溫濕度閾值和空氣質量最大值;
可通過ADC0832將MQ-135檢測到的模擬量轉換成數字量;
可通過蜂鳴器和LED進行聲光報警。
標簽:51單片機、LCD1602、ADC0832、MQ-135、DHT11

③ Proteus模擬單片機測量空氣濕度

幾點說明:

1.主要是分以下幾個模塊寫的:SHT10,LCD1602,主函數,頭文件。

2.每支SHTxx感測器都在25℃(77 °F)和 3.3V條件下進行過標定並且完全符合精度指標.因為考慮到實際硬體5V的電壓比較好操作,所以SHT10用的精度採用的為5V時的參數。其他的都採取默認值(14bit濕度, 12bit 溫度)。

3.SHT10中所以部分我都編寫了。有的部分在本次程序中沒用到,也可以作為參考。

4.所有程序都已經加了注釋,且有模擬圖。

5.個人認為還可以在此基礎上添加個中斷。

6.程序編寫keil 4 ,模擬 protues7.5

/***********************************************************************************************************************************************************/

頭文件(tou.h):

#ifndef __TOU_H__

#define __TOU_H__

#include<reg52.h>

#include <intrins.h>

//#include <math.h> //Keil library

#define uchar unsigned char

enum {TEMP,HUMI};

sbit DATA = P1^7;

sbit SCK = P1^6;

sbit LcdRs= P2^4;

sbit LcdRw= P2^5;

sbit LcdEn= P2^6;

sfr DBPort= 0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.數據埠

/******** DS1602函數聲明 ********/

void LCD_Initial();

void GotoXY(unsigned char x, unsigned chary);

void Print(unsigned char *str);

void LCD_Write(bit style, unsigned charinput);

/******** SHT10函數聲明 ********/

void s_connectionreset(void);

char s_measure(unsigned char *p_value,unsigned char *p_checksum, unsigned char mode);

void calc_sth10(float *p_humidity ,float*p_temperature);

//float calc_dewpoint(float h,float t);

#endif

/***********************************************************************************************************************************************************/

SHT10程序(SHT10.c):

#include<tou.h>

#define noACK 0 //繼續傳輸數據,用於判斷是否結束通訊

#define ACK 1//結束數據傳輸;

//地址命令 讀/寫

#define STATUS_REG_W 0x06 //0000011 0

#define STATUS_REG_R 0x07 //0000011 1

#define MEASURE_TEMP 0x03 //0000001 1

#define MEASURE_HUMI 0x05 //0000010 1

#define RESET 0x1e//000 1111 0

//寫位元組程序

char s_write_byte(unsigned char value)

{

unsignedchar i,error=0;

for(i=0x80;i>0;i>>=1)//高位為1,循環右移

{

if(i&value) DATA=1; //和要發送的數相與,結果為發送的位

else DATA=0;

SCK=1;

_nop_();_nop_();_nop_(); //延時3us

SCK=0;

}

DATA=1; //釋放數據線

SCK=1;

error=DATA; //檢查應答信號,確認通訊正常

_nop_();_nop_();_nop_();

SCK=0;

DATA=1;

returnerror; //error=1 通訊錯誤

}

//讀位元組程序

char s_read_byte(unsigned char ack)

//----------------------------------------------------------------------------------

{

unsignedchar i,val=0;

DATA=1; //釋放數據線

for(i=0x80;i>0;i>>=1) //高位為1,循環右移

{

SCK=1;

if(DATA) val=(val|i); //讀一位數據線的值

SCK=0;

}

DATA=!ack; //如果是校驗,讀取完後結束通訊;

SCK=1;

_nop_();_nop_();_nop_(); //延時3us

SCK=0;

_nop_();_nop_();_nop_();

DATA=1; //釋放數據線

returnval;

}

//啟動傳輸

void s_transstart(void)

// generates a transmission start

//_____ ________

// DATA: |_______|

//___ ___

// SCK : ___| |___||______

{

DATA=1; SCK=0; //准備

_nop_();

SCK=1;

_nop_();

DATA=0;

_nop_();

SCK=0;

_nop_();_nop_();_nop_();

SCK=1;

_nop_();

DATA=1;

_nop_();

SCK=0;

}

//連接復位

void s_connectionreset(void)

// communication reset: DATA-line=1 and atleast 9 SCK cycles followed by transstart

//_____________________________________________________ ________

// DATA:|_______|

//_ _ __ _ __ _ ____ ___

// SCK : __| |__| |__| |__| |__| |__| |__||__| |__| |______| |___| |______

{

unsignedchar i;

DATA=1;SCK=0; //准備

for(i=0;i<9;i++) //DATA保持高,SCK時鍾觸發9次,發送啟動傳輸,通迅即復位

{

SCK=1;

SCK=0;

}

s_transstart(); //啟動傳輸

}

//軟復位程序

char s_softreset(void)

// resets the sensor by a softreset

{

unsignedchar error=0;

s_connectionreset(); //啟動連接復位

error+=s_write_byte(RESET); //發送復位命令

returnerror; //error=1 通訊錯誤

}

/*讀狀態寄存器

char s_read_statusreg(unsigned char*p_value, unsigned char *p_checksum)

//----------------------------------------------------------------------------------

// reads the status register with checksum(8-bit)

{

unsignedchar error=0;

s_transstart(); //transmission start

error=s_write_byte(STATUS_REG_R);//send command to sensor

*p_value=s_read_byte(ACK); //read status register (8-bit)

*p_checksum=s_read_byte(noACK); //read checksum (8-bit)

returnerror; //error=1 incase of no response form the sensor

}

④ 空氣檢測儀的檢測部分原理

本儀器採用高靈敏度電化學感測器原理,結合單片機技術和網路通訊技術,可以連續監測大氣層中的SO2、NO2、O3、CO、H2S、NH3、HF氣體,全面顯示需要的測量數據。首先由抽氣泵將環境空氣通過過濾器,經流量調節器後分別以300mL/min的流量送到感測器氣室,通過感測器時所產生的信號經放大、A/D轉換後,由微處理器進行採集、計算、數據處理,產生濃度結果數據,同時保存數據結果或通過RS485串列介面送至信息中心。
對於空氣中微量氣體的檢測,不同氣體之間的交叉干擾尤其突出,如處理不好,對測試結果會產生極大的影響。我們採用了兩項關鍵技術解決了此問題:一是採用面對環境空氣質量專用感測器;二是使用選擇性合適過濾器,由此使本系統監測結果准確、可靠。

⑤ 單片機空氣質量檢測命令協議

你好!
不同廠家的設備和感測器,協議是不一樣的

閱讀全文

與單片機空氣檢測相關的資料

熱點內容
單片機繼電器驅動 瀏覽:649
小土豆編程軟體下載 瀏覽:153
單片機opencv 瀏覽:255
千鋒python人工智慧培訓 瀏覽:856
合理的文件夾劃分 瀏覽:258
十點讀書app哪裡下載 瀏覽:964
uu跑腿押金上app在哪裡解約 瀏覽:37
華為如何將app移到桌面 瀏覽:597
阿里安卓面試演算法題 瀏覽:705
語文知識手冊pdf 瀏覽:841
為什麼安卓手機oled屏很白很亮 瀏覽:252
如何找回iphone手機隱藏的app 瀏覽:21
linuxc多進程 瀏覽:649
android飛行游戲 瀏覽:965
數據挖掘常見演算法 瀏覽:135
python單實例化 瀏覽:351
str中python 瀏覽:89
java的equals用法 瀏覽:845
奧維雲伺服器怎麼開通 瀏覽:171
js取得伺服器地址 瀏覽:812