Fastbond环境监测之CO警报器
本项目是使用一氧化碳传感器来监测外界一氧化碳浓度是否超标的警报器,主控为max32660,配有一块OLED屏幕作为显示。
标签
嵌入式系统
PCB设计
1234567888888
更新2021-10-21
957

内容介绍

在本次Fastbond活动当中,我选择了环境监测作为主题,具体完成项目是一个一氧化碳报警器。

在环境监测这一领域,我认为最重要的就是毒气类的监测因为它的危险性,而一氧化碳又是我们生活中比较容易遇到的一种毒气,于是我选择做这样的一个CO检测器。

该报警器使用了一块MAX32660评估板作为主控,使用MQ135作为一氧化碳监测传感器,使用AD8531作为电压跟随器来稳定输入信号避免误差,使用一块128*64的OLED屏幕来作为显示。

FtZ5It_Zpp9FqKN4xaOYSRqnzX_I

Fn3rFnYn4UjmxCPPPIb-av7CiE6a

FoP4CnhNRZQfapo3kdhyX4MIsz06

MAX32660评估板是MAXIM公司开发的一款结构紧凑的开发平台,适用于低功耗开发场景。

AD8531是Analog Device公司开发的一款高输出电流运算放大器,可使用低电流驱动高电流。

在代码部分,我使用KEIL来进行编译。关于OLED屏幕的资料可以在网上直接找到,这里就使用现成的代码库。而传感器则是输出为高是正常,输出为零即为CO浓度较高。主要代码如下:

int main(void)
{
	
	
	
gpio_cfg_t LED;
gpio_cfg_t DOUT;

LED.port = LED_PORT;
LED.mask = LED_OUT;
LED.pad = GPIO_PAD_NONE;
LED.func = GPIO_FUNC_OUT;
GPIO_Config(&LED);

DOUT.port = DOUT_PORT;
DOUT.mask = DOUT_IN;
DOUT.pad = GPIO_PAD_PULL_UP;
DOUT.func = GPIO_FUNC_IN;
GPIO_Config(&DOUT);
	
	
	
	
	oled_init();
	OLED_Clear();
	while(1)
	{
		if (GPIO_InGet(&DOUT)) {
            /* Input pin was high, set the output pin. */
            GPIO_OutClr(&LED);
						common();
        } else {
            /* Input pin was low, clear the output pin. */
            GPIO_OutSet(&LED);
						alarm();
        }
		
		OLED_Refresh();
		mxc_delay(200000);
	}
}	

而为了使电路更加简洁,我用kicad画了一块PCB板来放置电路并安插器件。

FiC-6YYDBU5yBN3ChLQYXc5US2Zo

经过拼接后,整个报警装置的样子如下:

FjCzaSIPhAAAhJY8o963PZSsR_gH

最后,进行报警器效果的演示。当CO浓度较低,在安全范围时,显示屏显示SAFE CO RATE,警示灯不亮,而到了危险浓度,显示屏上显示warning!并且警示灯会亮。

FuD1tjQ4GYOpCZXDeWRf6YS1Sr0-Fs1c7kI0iTo60wfQ4z8ep4Zk_v7s

经过本次项目,我对于一些功能在代码上的实现有了新的感悟,也对于开发产生了更浓厚的兴趣,希望以后能参与更多好玩的项目。

附件下载

ARM.zip
项目文件
max&ad.zip
电路板文件

团队介绍

团队成员
1234567888888

评论

0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号