《基于物联网+APP的空气质量及噪音检测报警器》陈雨薇 韦烨
学生作品 2025-06-24 作者:GT-maker

《基于物联网+APP的空气质量及噪音检测报警器》陈雨薇 韦烨

📄 查看完整原文档 ↗ 查看原站页面 ↗
作品说明

📄 本文档(《烟雾空气检测报警器》宁德五中-陈雨薇-韦烨.docx)由原站嵌入文档解析而来(含配图 13 张)。

2021宁德五中创客作品创作方案03

项目作品案例名称:《基于物联网+APP的空气质量及噪音检测报警器》

作品案例类别:创意智造

学校:福建省宁德市第五中学

作者:陈雨薇、韦烨 高二(12)

指导教师:邬肖英

涉及学科或专业领域:物联网、APP、Arduino、激光切割

作品配图

项目作品概述

俗话说:“水火无情”,可见其对人类的影响巨大,对于火灾这样一个对于人类危害巨大的事故,防范大于未然,在日常生活中一定要多加防范,预防火灾的发生。

作品配图

作品配图

但日常生活中,许多老人为了在做饭时省电而不舍得使用油烟机,还有许多住在类似于地下室等封闭的住户没有条件安装排烟系统,稍不留神就会因为有害气体浓度过高而中毒甚至死亡。这时我们就需要一款更好的火灾报警器来帮助我们检测安全。

这款烟雾空气检测报警器可以检测空气中co的浓度,若浓度过高,则会发出警报提醒住户及时打开门窗通风。如果老人一时乱了阵脚怎么办?没关系!这款烟雾空气检测报警器可以连在子女手机上,孩子们可随时检测到父母情况,避免意外发生。

这款气体传感器对氨气、硫化物、苯蒸气的灵敏度高,对烟雾和其他有害气体的监测也很理想。可检测多种气体,是一种适合多种应用场合的低成本传感器。

作品配图

该装置要实现的功能为:

检测周围环境的空气(主要是CO含量)及噪音强度;

检测数值显示在OLED屏;

物联网模块发送检测数值至Easy IOT物联网服务器

手机APP实现同步显示

如果PM2.5值大于100,检测器发出“嘀嘀”报警声,同时LED灯闪红灯,直到数值回落安全值。

设备启动后,连接上物联网,LED灯闪3次绿灯;正常状态,LED后随机显示色彩转换;

该装置主要在个人家中使用,担任个人智能助手的工作,对周围空气的浓度情况进行检测。该装置对氨气、硫化物、苯蒸气的灵敏度高,对烟雾和其他有害气体的监测,大大提高了安全性。

本方案我们选择了使用扩展板,结合了物联网WIFI,显示屏显示以及蜂鸣器报警等功能完成了该装置。

主要材料

核心部件:Arduino UNO 开发板、I/O扩展板

传感器:烟雾传感器、模块声音传感器

执行器:RGB-LED灯珠、蜂鸣器

显示器:OLED显示屏

功能模块:软串口

通信模块:OBLOQ物联网模块

三、项目作品创作过程

A、外型设计

11747573660

作品配图

选择蘑菇,主要是蘑菇图案简洁,形象,制作容易,形态还可以调整变化,经过很多次的探讨,也借鉴一些意见,所以采用亚克力板做整体,形态可以变化,就是与桌面的接触面小,不太稳,后面又设计了一个底座。显示器放置在底座上,材料放置在底部盒子中,一点灯光显得更加赏心悦目。

为增加厚实感,选择切割二片5mm亚克力板重叠。

作品配图

作品配图

硬件搭建

[材料清单]

1)Arduino UNO 开发板 X1

2)I/O扩展板 IO 传感器扩展板 V7.1 X1

3)烟雾传感器  MQ-2烟雾气敏传感器模块 X1

4)模拟声音传感器 Analog Sound Senser V2.2 X1

5)RGB-LED灯条 4珠 X1

6)蜂鸣器 3V有源蜂鸣器X1

7)OLED显示屏 Gravity I2C OLED-2864 显示屏 X1

8)OBLOQ物联网模块 UART OBLOQ - IoT物联网模块 X1

[硬件连接]

作品配图

编程程序

初始化OLED屏、LED灯条、OBLOQ物联网模块

作品配图

LED灯条炫彩变化编程

作品配图

主程序

作品配图

物联网服务器设置

作品配图

编程代码:

/*!

* MindPlus

* uno

*

*/

#include <UNO_Obloq.h>

#include <SoftwareSerial.h>

#include <DFRobot_NeoPixel.h>

#include <DFRobot_SSD1306_I2C.h>

// 动态变量

volatile float mind_n_i, mind_n_j;

// 函数声明

void DF_ChuShiHua();

void DF_LAMP();

uint32_t rgbToColor(uint8_t r, uint8_t g, uint8_t b);

// 静态常量

const String topics[5] = {"wcIOJy8MR","","","",""};

const chCode chBuf[] = {

{0x8587,0xe89687,0xDEB1,{0x04,0x40,0x04,0x40,0xff,0xfe,0x04,0x40,0x22,0x20,0x4a,0xa0,0x8a,0xbe,0x1f,0xc4,0x20,0xa4,0x6f,0x24,0xa0,0x28,0x2f,0x28,0x29,0x10,0x29,0xa8,0x29,0x44,0x30,0x82}},

{0x68c0,0xe6a380,0xBCEC,{0x10,0x40,0x10,0x40,0x10,0xa0,0x10,0xa0,0xfd,0x10,0x12,0x08,0x35,0xf6,0x38,0x00,0x54,0x88,0x50,0x48,0x92,0x48,0x11,0x50,0x11,0x10,0x10,0x20,0x17,0xfe,0x10,0x00}},

{0x6d4b,0xe6b58b,0xB2E2,{0x00,0x04,0x27,0xc4,0x14,0x44,0x14,0x54,0x85,0x54,0x45,0x54,0x45,0x54,0x15,0x54,0x15,0x54,0x25,0x54,0xe5,0x54,0x21,0x04,0x22,0x84,0x22,0x44,0x24,0x14,0x08,0x08}},

{0x566a,0xe599aa,0xD4EB,{0x03,0xf8,0x02,0x08,0xf2,0x08,0x93,0xf8,0x90,0x00,0x97,0xbc,0x94,0xa4,0x94,0xa4,0x97,0xbc,0x90,0x40,0xff,0xfe,0x91,0x60,0x02,0x50,0x04,0x48,0x18,0x46,0x00,0x40}},

{0x97f3,0xe99fb3,0xD2F4,{0x02,0x00,0x01,0x00,0x3f,0xf8,0x00,0x00,0x08,0x20,0x04,0x40,0xff,0xfe,0x00,0x00,0x1f,0xf0,0x10,0x10,0x10,0x10,0x1f,0xf0,0x10,0x10,0x10,0x10,0x1f,0xf0,0x10,0x10}}

};

// 创建对象

DFRobot_SSD1306_I2C oled12864;

DFRobot_NeoPixel neoPixel_8;

UNO_Obloq olq;

SoftwareSerial softSerial(2, 3);

// 主程序开始

void setup() {

oled12864.setChCode(chBuf);

DF_ChuShiHua();

}

void loop() {

DF_LAMP();

olq.publish(olq.topic_0, (String((String("PM2.5 ") + String(analogRead(A0)))) + String((String("噪音 ") + String((String(analogRead(A1)) + String("dB")))))));

oled12864.setCursor(16, 0);

oled12864.print("薇薇AQI检测");

oled12864.setCursor(0, 1);

oled12864.print((String("PM2.5 ") + String(analogRead(A0))));

oled12864.setCursor(0, 2);

oled12864.print((String("噪音 ") + String((String(" ") + String("dB")))));

oled12864.setCursor(40, 2);

oled12864.print(analogRead(A1));

delay(2000);

if ((analogRead(A0)>100)) {

while (!(analogRead(A0)<=100)) {

digitalWrite(7, HIGH);

delay(500);

digitalWrite(7, LOW);

delay(500);

neoPixel_8.setRangeColor(0, 3, 0xFF0000);

delay(500);

neoPixel_8.setRangeColor(0, 3, 0x000000);

delay(500);

}

}

else {

digitalWrite(7, LOW);

digitalWrite(8, LOW);

}

}

// 自定义函数

void DF_ChuShiHua() {

oled12864.begin(0x3c);

neoPixel_8.begin(8, 4);

neoPixel_8.setBrightness(255);

mind_n_i = 0;

mind_n_j = 255;

softSerial.begin(9600);

olq.startConnect(&softSerial, "GT-ndwz", "ndwz-chqzhc", "eE8aS4SMR", "ePU-S4SMRz", topics, "iot.dfrobot.com.cn", 1883);

olq.publish(olq.topic_0, "hello,薇薇");

while (!(olq.available(olq.topic_0))) {}

oled12864.setCursor(42, 2);

oled12864.print("hello,薇薇");

oled12864.fillScreen(0);

neoPixel_8.showRainbow(0, 3, 1, 360);

for (int index = 0; index < 3; index++) {

delay(500);

neoPixel_8.setRangeColor(0, 3, 0x00FF00);

delay(500);

neoPixel_8.setRangeColor(0, 3, 0x000000);

digitalWrite(7, HIGH);

delay(500);

digitalWrite(7, LOW);

}

}

void DF_LAMP() {

while (!(mind_n_i==0)) {

mind_n_j = (mind_n_j + 1);

delay(10);

mind_n_i = (mind_n_i - 1);

delay(10);

neoPixel_8.setRangeColor(0, 3, rgbToColor(round(mind_n_i), round(0), round(mind_n_j)));

}

while (!(mind_n_i==255)) {

mind_n_j = (mind_n_j - 1);

delay(10);

mind_n_i = (mind_n_i + 1);

delay(10);

neoPixel_8.setRangeColor(0, 3, rgbToColor(round(mind_n_i), round(mind_n_j), round(0)));

}

}

// 静态函数

uint32_t rgbToColor(uint8_t r, uint8_t g, uint8_t b)

{

return (uint32_t)((((uint32_t)r<<16) | ((uint32_t)g<<8)) | (uint32_t)b);

}

作品完成

(设计、制作现场照片)

作品配图

四、作品设计的体会

设计源于生活,又服务于生活,人们的生活离不开设计,设计也离不开生活给予的灵感,所以说设计与我们的生活息息相关。这次设计我们收获很多、学会很多、比以往更有耐心很多。希望我们的产品能真正应用到人们的实际生活中,给人们的生活带来方便,保障人们的安全。

——

原文档链接:https://ai-gtmaker.com/wp-content/uploads/《烟雾空气检测报警器》宁德五中-陈雨薇-韦烨.docx