地球灯—空气质量检测器
本帖最后由 晚安史迪仔 于 2021-6-8 15:50 编辑长期在家感到头痛、乏力、胸闷怎么办?赶紧开窗透透气吧!(ps:要是通风后症状还是没有缓解就该去医院检查检查了)每天在家门窗紧闭?开着空调?别看了,说的就是你!现在我们对空调的依赖性越来越越强,导致很少打开窗户通风。当室内空气不通风的时间越长,我们呼吸的空气就越“脏”,所以要记得多开窗通风或者打开空气净化器让空气流通起来。
思路:空气净化器是买不起了,只有自己多动动手开窗通风了。因为我经常忘记开窗户通风,所以用新推出的空气质量传感器和灯带做了个能检测空气质量的“地球灯”来提醒我是否需要开窗通风。
功能:按下按钮打开地球灯,灯的颜色会根据当前空气质量指数变化而变化(可以根据个人喜好设置颜色);再按下按钮,就可以关闭地球灯了。
一、硬件清单
[*](https://www.dfrobot.com.cn/goods-1502.html) x 1
[*](https://www.dfrobot.com.cn/goods-3062.html) x1
[*](https://www.dfrobot.com.cn/goods-2629.html) x 2
[*](https://www.dfrobot.com.cn/goods-78.html) x 1
[*][电池盒](https://www.dfrobot.com.cn/goods-436.html)+6节5号电池 x 1
[*]杜邦线 若干
二、制作过程
1.将各个模块按下图连接
2.安装库文件安装空气质量传感器和灯带的库,解压后把库文件拖入arduino—libraries文件目录下。如何安装库文件?
3.烧录程序/*
检测空气中的挥发性有机化合物(VOC),比如甲醛、氨、乙二醇、酯...
当VOC指数达到一定数值,通过地球灯显示不同颜色来提示是否需要开窗通风
*/
#include <DFRobot_SGP40.h>
#include <DFRobot_NeoPixel.h>
DFRobot_SGP40 mySgp40(&Wire);
DFRobot_NeoPixel neoPixel_1;
DFRobot_NeoPixel neoPixel_2;
int buttonPin = 7;//按钮接入引脚7
int val = 0; //变量val用来储存按钮状态
int old_val = 0; //暂存val变量的上一个时间单位
int state = 0; //0表示LED关闭,1表示打开
//初始化设置
void setup() {
Serial.begin(115200);
neoPixel_1.begin(3,7);//灯带1接入引脚3
neoPixel_2.begin(4,7);//灯带2接入引脚4
neoPixel_1.setBrightness(255);//设置灯带亮度0~255
neoPixel_2.setBrightness(255);
neoPixel_1.setRangeColor(0, 7, 0x33FFFF);//设置灯带0~7灯亮浅蓝色(根据个人喜好设定初始颜色,推荐颜色查询网址:http://zhongguose.com)
neoPixel_2.setRangeColor(0, 7, 0x33FFFF);
while(mySgp40.begin(/*duration = */10000) != true){
Serial.println("failed to init chip, please check if the chip connection is fine");
delay(1000);
}
Serial.println("----------------------------------------------");
Serial.println("sgp40 initialized successfully!");
Serial.println("----------------------------------------------");
}
void loop() {
val = digitalRead(buttonPin); //读取按钮状态并储存
//检查按钮的变化情况
if((val == HIGH)&&(old_val == LOW)){
state =1-state;
delay(20); //延时,防止抖动
}
old_val = val; //val已经是旧的了,暂存一下
if(state==1)
{
uint16_t index = mySgp40.getVoclndex();
Serial.print("vocIndex : ");
Serial.println(index);
//当空气VOC指数小于100时,地球灯显示蓝色,说明当前空气质量比较好。
if (index<100){
neoPixel_1.setRangeColor(0, 7, 0x0000FF);
neoPixel_2.setRangeColor(0, 7, 0x0000FF);
}
//当空气VOC指数大于等于100且小于200时,地球灯显示绿色,说明当前空气质量较好。
else if (index>=100&&index<200){
neoPixel_1.setRangeColor(0, 7,0x00FF00);
neoPixel_2.setRangeColor(0, 7,0x00FF00);
}
//当空气VOC指数大于等于200且小于300时,地球灯显示黄色,说明当前空气质量一般,需要开窗通风。
else if (index>=200&&index<300){
neoPixel_1.setRangeColor(0, 7, 0xFFFF00);
neoPixel_2.setRangeColor(0, 7, 0xFFFF00);
}
//当空气VOC指数大于等于300且小于400时,地球灯显示橙色,说明当前空气质量较差,需要尽快开窗通风。
else if (index>=300&&index>400){
neoPixel_1.setRangeColor(0, 7, 0xFF6600);
neoPixel_2.setRangeColor(0, 7, 0xFF6600);
}
//当空气VOC指数大于等于400且小于500时,地球灯显示红色,说明当前空气质量很差,需要马上开窗通风。
else if (index>=400&&index<500){
neoPixel_1.setRangeColor(0, 7, 0xFF0000);
neoPixel_2.setRangeColor(0, 7, 0xFF0000);
}
delay(1000);
}
else{
neoPixel_1.clear();
neoPixel_2.clear();
}
}
4.设计外壳模型和3D打印
模型文件太大上传不了,如果有需要的可以在评论区留言~
5.组装将模块装进底座中,然后把地球灯罩盖上去就大功告成了。
https://www.bilibili.com/video/BV1dw411Z7tv
这个好,好看实用 春秋大仙 发表于 2021-6-8 18:27
这个好,好看实用
哈哈简单又实用,晚上还可以做个小夜灯{:5_179:} 你好,可以指导我一下如何组装一个检测器吗 本帖最后由 晚安史迪仔 于 2021-6-21 11:02 编辑
阮兆康 发表于 2021-6-20 14:09
你好,可以指导我一下如何组装一个检测器吗
检测空气质量的那个传感器吗?还是其他的检测器? 晚安史迪仔 发表于 2021-6-21 11:01
检测空气质量的那个传感器吗?还是其他的检测器?
我打算买PM,CO,NOx三个传感器,拼在一起 晚安史迪仔 发表于 2021-6-21 11:01
检测空气质量的那个传感器吗?还是其他的检测器?
可以留个联系方式吗,酬谢 阮兆康 发表于 2021-6-21 13:47
可以留个联系方式吗,酬谢
qq:1478689397 挺好看,可以加个臭氧发生器 喷了酒精就变绿了? 厉害厉害 KkQ1VrB7W776 发表于 2022-9-23 20:03
挺好看,可以加个臭氧发生器
哈哈哈哈哈哈哈 太有创意了!!!!
页:
[1]