📄 本文档(《烟雾空气检测报警器》宁德五中-陈雨薇-韦烨.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