导航:首页 > 操作系统 > 单片机空气检测

单片机空气检测

发布时间: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串行接口送至信息中心。
对于空气中微量气体的检测,不同气体之间的交叉干扰尤其突出,如处理不好,对测试结果会产生极大的影响。我们采用了两项关键技术解决了此问题:一是采用面对环境空气质量专用传感器;二是使用选择性合适过滤器,由此使本系统监测结果准确、可靠。

⑤ 单片机空气质量检测命令协议

你好!
不同厂家的设备和传感器,协议是不一样的

阅读全文

与单片机空气检测相关的资料

热点内容
phpsae源码 浏览:853
为什么安卓手机一直要权限 浏览:227
汇编程序的伪指令 浏览:803
苹果7怎么更新app 浏览:318
c语言常用算法pdf 浏览:960
编程如何让画面动起来 浏览:865
大龄女程序员未来发展 浏览:976
数学书籍pdf 浏览:506
加密门禁卡写入成功无法开门 浏览:464
齿轮传动pdf 浏览:52
alpinelinux 浏览:150
手机端app的扫码功能在哪里 浏览:227
少儿编程中小班英语教案 浏览:452
锁屏密码加密手机怎么解除 浏览:205
linuxlostfound 浏览:135
征途服务器ip地址 浏览:330
git提交代码命令行 浏览:165
什么叫浏览器服务器结构 浏览:157
于谦聊天哪个app 浏览:449
小鹏汽车nlp算法工程师薪资 浏览:881