011基于物联网的智能衣柜环境管理系统

目录

一、这个毕设是干什么的?

二、它解决什么问题?

三、核心功能?

四、用到哪些技术?

五、系统是怎么工作的?

六、大概怎么做?

七、硬件清单与接线

1、硬件清单

2、接线表

八、核心器件原理简述

[1、DHT22 温湿度传感器](#1、DHT22 温湿度传感器)

2、半导体除湿片(帕尔贴)

[3、UV-C 紫外杀菌](#3、UV-C 紫外杀菌)

九、控制逻辑与安全联锁

1、除湿控制逻辑

[2、UV 杀菌逻辑](#2、UV 杀菌逻辑)

3、安全联锁优先级

十、开发环境搭建

[十一、软件设计(.h / .c 多文件工程)](#十一、软件设计(.h / .c 多文件工程))

1、工程文件结构

[2、config.h ------ 全局配置](#2、config.h —— 全局配置)

[3、env.h / env.c ------ 温湿度模块](#3、env.h / env.c —— 温湿度模块)

[4、fan.h / fan.c ------ 除湿控制模块](#4、fan.h / fan.c —— 除湿控制模块)

[5、uv.h / uv.c ------ 紫外杀菌与安全联锁](#5、uv.h / uv.c —— 紫外杀菌与安全联锁)

[6、door.h / door.c ------ 门磁模块](#6、door.h / door.c —— 门磁模块)

[7、cloud.h / cloud.c ------ 云端通讯模块](#7、cloud.h / cloud.c —— 云端通讯模块)

[8、display.h / display.c ------ OLED 显示模块](#8、display.h / display.c —— OLED 显示模块)

[9、main.c ------ 主程序](#9、main.c —— 主程序)

十二、代码要点讲解

十三、功能测试与验收

十四、能给你什么启发?

[十五、开题报告 & 答辩要点](#十五、开题报告 & 答辩要点)

1、开题报告可直接改用的表述

2、答辩常见问题(参考回答要点)


难度定位 :★★☆☆☆(偏易控制型)|适合:想做一个「生活贴近、逻辑清晰、硬件不复杂」选题、基础一般的同学|预估周期:3 周

一、这个毕设是干什么的?

一句话:做一套能监测衣柜内温湿度、霉菌风险,自动除湿通风、定时紫外杀菌,还能手机上远程查看和控制的智能衣柜管理系统。

再展开说:衣柜里最怕的就是潮湿、发霉、有异味,尤其南方梅雨季,衣服放久了发霉、霉斑很难洗掉。这套系统在衣柜里放一个 ESP32 主控,接温湿度传感器实时监测柜内环境;湿度超过设定阈值,自动开风扇通风除湿(可加装半导体除湿片);同时配一个紫外杀菌灯,可定时杀菌除味;所有数据在 OLED 上显示,也能上传云端,手机上随时看柜内温湿度、开关除湿和杀菌。

二、它解决什么问题?

  • 衣柜潮湿衣服发霉 → 实时监测湿度,超标自动除湿;

  • 霉味、细菌滋生 → 定时紫外杀菌、通风换气;

  • 不知道柜内到底潮不潮 → 数据可视化,湿度一目了然;

  • 人不在家没法管 → 手机远程查看与手动控制;

  • 开柜灯忘记关、除湿不知道效果 → 自动化管理,按阈值动作。

本质是: 把「衣柜就是放衣服的柜子」升级成「会感知、会调节、会杀菌、可远程管理」的智能微环境系统,这正是智能家居从「大场景」走向「细分小空间精细化控制」的方向,也是毕设里少见的实用选题。

三、核心功能?

功能 说明
温湿度监测 DHT22/DHT11 实时采集柜内温度、湿度
自动除湿 湿度超阈值自动开风扇/除湿片
定时通风 按周期通风换气,防潮除味
紫外杀菌 UV 灯定时杀菌,人开柜时自动断电(安全)
本地显示 OLED 显示温湿度、设备运行状态
手机远程 云端查看数据、远程开关除湿/杀菌
阈值可调 湿度阈值、杀菌时长可通过网页/手机设置
异常报警 湿度过高/设备异常推送提醒

四、用到哪些技术?

类别 具体 作用
主控 ESP32 采集、控制、联网
温湿度 DHT22(推荐,精度更高)/DHT11 测柜内温湿度
除湿执行 5V 小风扇 + 半导体除湿片(选配) 通风/除湿
杀菌 紫外灯管 + 继电器 定时杀菌
人体/开门检测 门磁或红外(安全联锁) 开柜即关 UV,防紫外伤害
通信 ESP32 内置 WiFi + MQTT/HTTP 远程查看与控制
显示 SSD1306 OLED(I2C) 本地数据显示
开发 Arduino IDE + C 语言 编写烧录程序

安全提醒:UV-C 紫外灯对眼睛和皮肤有害,绝对不能在有人时开启,必须加入「开门/有人即断电」的安全联锁;直接照射衣物也易老化纤维,控制在短时定时杀菌即可。

五、系统是怎么工作的?

复制代码
衣柜内环境
  ↓ DHT22 采集温度/湿度
ESP32 主控(阈值判断)
  ├── 湿度 > 阈值 → 开风扇/除湿片(除湿模式)
  ├── 定时到点   → 开 UV 灯定时杀菌
  └── 门磁检测到开柜 → 立即关 UV(安全联锁)
  ↓
OLED 显示温湿度 + 设备状态
  ↓ WiFi
云平台 / 手机(看数据、远程控制、阈值设置)

一句话串起来:传感器采集 → 阈值判断自动除湿 → 定时杀菌且开柜断电 → 本地显示 + 云端远程管理。

这套「环境感知 + 执行调节 + 安全联锁 + 远程管理」的架构,是所有智能微环境类毕设的通用骨架,也可扩展成智能鞋柜、智能酒柜、智能药柜。

六、大概怎么做?

  1. 买硬件(ESP32 + DHT22 + 风扇 + UV 灯 + 继电器 + 门磁 + OLED);

  2. 调通 DHT22 读数、风扇与 UV 继电器控制、门磁检测;

  3. 写阈值判断逻辑:湿度超阈值开风扇,回落到正常关;

  4. 写 UV 定时逻辑 + 开柜断电联锁;

  5. 接 WiFi,把数据上传云端、接收远程指令;

  6. 加 OLED 显示;

  7. 联调:模拟潮湿环境(对着传感器哈气)触发除湿、定时 UV 点亮、开柜 UV 熄灭、手机看到数据并远程控制,链路跑通即完成。

核心难点是「UV 灯的安全联锁」和「多执行器的状态协调」,逻辑本身不难。下面逐步展开。

七、硬件清单与接线

1、硬件清单

器件 型号/规格 数量
主控板 ESP32 DevKitC 1
温湿度 DHT22(或 DHT11) 1
风扇 5V 小风扇(USB 风扇可改) 1
半导体除湿片 选配,5V/12V 1
紫外灯 UV-C 灯管/模块 + 继电器 1
门磁 干簧管门磁 1
显示 SSD1306 OLED 128×64 1
电源 5V 2A 1
面包板 + 杜邦线 --- 若干

2、接线表

ESP32 引脚 连接器件 说明
GPIO4 DHT22 DATA 单总线读温湿度
GPIO26 风扇继电器 IN 低电平触发
GPIO27 UV 灯继电器 IN 低电平触发
GPIO5 门磁 上拉输入,开柜为高
GPIO21 OLED SDA I2C 数据线
GPIO22 OLED SCL I2C 时钟线
5V 风扇/UV 灯 VCC 按器件要求供电
GND 所有器件地线 必须共地

关键提醒 :UV 灯功率大,不要用 ESP32 引脚直驱,必须通过继电器/固态继电器隔离;强电部分(220V UV 灯)接线务必断电操作,毕设演示推荐用低压 UV 模块,避免强电风险。

八、核心器件原理简述

1、DHT22 温湿度传感器

  • 数字单总线传感器,内部已校准,直接输出数字温度(-40~80℃,±0.5℃)与湿度(0~100%RH,±2%);

  • 比 DHT11 精度高,读取间隔需 ≥2 秒,否则会读失败;

  • 潮湿环境长期使用建议加防护(加透气防尘罩),避免水汽直接进入芯片。

2、半导体除湿片(帕尔贴)

  • 通电后一侧变冷一侧变热,冷端结露把水汽凝成水,达到除湿效果;

  • 需要散热片 + 风扇辅助,功率 5~12V 不等;

  • 宿舍/衣柜体积小,用它比压缩机除湿更合适,但效率有限,配合通风效果更好。

3、UV-C 紫外杀菌

  • 波长 200~280nm 的紫外光能破坏微生物 DNA,杀菌除味;

  • 对人眼、皮肤有害,必须封闭运行,开门自动关闭;

  • 定时 10~30 分钟即可,长时间照射会加速衣物纤维老化。

九、控制逻辑与安全联锁

1、除湿控制逻辑

条件 动作
湿度 > 阈值(如 65%RH) 开风扇(+除湿片)
湿度 < 阈值 − 迟滞(如 58%RH) 关风扇
湿度 > 危险值(如 80%RH) 推送提醒

2、UV 杀菌逻辑

条件 动作
定时到点(如每天 22:00)或手动开启 开 UV 灯,计时 15 分钟
计时结束 自动关 UV
门磁检测开门 立即关 UV 并禁止开启
再次关门 需等 30 秒后才允许下一轮

3、安全联锁优先级

复制代码
开门检测 → 最高优先级 → 立刻断 UV
除湿控制 → 次优先级
定时杀菌 → 最低优先级

十、开发环境搭建

  1. 安装 Arduino IDE(2.x);

  2. 添加 ESP32 板卡(开发板管理器搜索 esp32 安装);

  3. 安装库:DHT sensor library、Adafruit SSD1306、Adafruit GFX、PubSubClient(MQTT);

  4. 选择开发板 ESP32 Dev Module,烧录失败按住 BOOT 键重试。

十一、软件设计(.h / .c 多文件工程)

代码按功能拆分:头文件(.h)只放宏、结构体、函数声明,源文件(.c)放具体实现,职责清晰、符合正式工程规范。

1、工程文件结构

复制代码
esp32_wardrobe/
├── config.h      // 全局配置:引脚、阈值、WiFi、MQTT
├── env.h         // 温湿度模块声明
├── env.c         // DHT22 采集实现
├── fan.h         // 风扇/除湿模块声明
├── fan.c         // 除湿控制实现
├── uv.h          // 紫外杀菌模块声明
├── uv.c          // UV 控制与安全联锁实现
├── door.h        // 门磁模块声明
├── door.c        // 开门检测实现
├── cloud.h       // 云端通讯模块声明
├── cloud.c       // MQTT 上报与指令响应实现
├── display.h     // OLED 显示模块声明
├── display.c     // OLED 显示实现
└── main.c        // 主程序:setup() / loop()

2、config.h ------ 全局配置

复制代码
#ifndef CONFIG_H
#define CONFIG_H
​
/* 引脚 */
#define PIN_DHT        4
#define PIN_FAN        26
#define PIN_UV         27
#define PIN_DOOR       5
​
/* OLED */
#define PIN_SDA        21
#define PIN_SCL        22
​
/* 阈值 */
#define HUMI_ON        65      /* 湿度达到该值开风扇 */
#define HUMI_OFF       58      /* 湿度降到该值关风扇(迟滞) */
#define HUMI_ALARM     80      /* 危险湿度,推送提醒 */
​
/* UV 杀菌时长(毫秒) */
#define UV_RUN_MS      (15UL * 60UL * 1000UL)
#define UV_LOCK_MS     (30UL * 1000UL)   /* 关门后延迟 30 秒才可再开 */
​
/* WiFi / MQTT */
#define WIFI_SSID      "your_wifi"
#define WIFI_PASS      "your_pass"
#define MQTT_SERVER    "broker.example.com"
#define MQTT_PORT      1883
#define MQTT_TOPIC_UP  "wardrobe/data"
#define MQTT_TOPIC_DN  "wardrobe/cmd"
​
#endif

3、env.h / env.c ------ 温湿度模块

env.h(声明):

复制代码
#ifndef ENV_H
#define ENV_H
#include <stdbool.h>
​
typedef struct { float temp; float humi; bool valid; } env_data_t;
​
void env_init(void);
env_data_t env_read(void);
#endif

env.c(实现):

复制代码
#include "env.h"
#include "config.h"
#include <DHT.h>
​
static DHT dht(PIN_DHT, DHT22);
​
void env_init(void) { dht.begin(); }
​
env_data_t env_read(void) {
    env_data_t d;
    d.temp  = dht.readTemperature();
    d.humi  = dht.readHumidity();
    d.valid = !isnan(d.temp) && !isnan(d.humi);
    return d;
}

4、fan.h / fan.c ------ 除湿控制模块

fan.h(声明):

复制代码
#ifndef FAN_H
#define FAN_H
#include <stdbool.h>
​
void fan_init(void);
void fan_set(bool on);       /* 直接开关 */
bool fan_control(float humi);/* 按湿度自动控制,返回是否开启 */
#endif

fan.c(实现,带迟滞):

复制代码
#include "fan.h"
#include "config.h"
​
static bool running = false;
​
void fan_init(void) {
    pinMode(PIN_FAN, OUTPUT);
    digitalWrite(PIN_FAN, HIGH);   /* 低电平触发,默认关 */
}
​
void fan_set(bool on) {
    digitalWrite(PIN_FAN, on ? LOW : HIGH);
    running = on;
}
​
/* 迟滞控制:高于阈值开,低于阈值-迟滞才关,避免反复跳动 */
bool fan_control(float humi) {
    if (humi >= HUMI_ON)   fan_set(true);
    else if (humi <= HUMI_OFF) fan_set(false);
    return running;
}

5、uv.h / uv.c ------ 紫外杀菌与安全联锁

uv.h(声明):

复制代码
#ifndef UV_H
#define UV_H
#include <stdbool.h>

void uv_init(void);
bool uv_start(void);      /* 请求开启,返回是否成功(开柜时拒绝) */
void uv_stop(void);       /* 立即关闭 */
void uv_tick(bool doorOpen);  /* 循环调用:处理计时与开门断电 */
bool uv_is_on(void);
#endif

uv.c(实现):

复制代码
#include "uv.h"
#include "config.h"

static bool on = false;
static uint32_t startMs = 0;
static uint32_t doorClosedMs = 0;

void uv_init(void) {
    pinMode(PIN_UV, OUTPUT);
    digitalWrite(PIN_UV, HIGH);   /* 默认关 */
    doorClosedMs = millis();
}

bool uv_start(void) {
    if (on) return true;
    /* 关门不足锁定时长,拒绝开启 */
    if (millis() - doorClosedMs < UV_LOCK_MS) return false;
    digitalWrite(PIN_UV, LOW);
    on = true;
    startMs = millis();
    return true;
}

void uv_stop(void) {
    digitalWrite(PIN_UV, HIGH);
    on = false;
}

/* 最高优先级安全逻辑:一开门立刻关灯 */
void uv_tick(bool doorOpen) {
    if (doorOpen) {
        if (on) uv_stop();
        doorClosedMs = millis();
        return;
    }
    if (!on) return;
    if (millis() - startMs >= UV_RUN_MS) uv_stop();  /* 到时长自动关 */
}

bool uv_is_on(void) { return on; }

6、door.h / door.c ------ 门磁模块

door.h(声明):

复制代码
#ifndef DOOR_H
#define DOOR_H
#include <stdbool.h>

void door_init(void);
bool door_is_open(void);
#endif

door.c(实现,含去抖):

复制代码
#include "door.h"
#include "config.h"

void door_init(void) { pinMode(PIN_DOOR, INPUT_PULLUP); }

/* 连续 3 次读到高电平才算开,滤掉抖动 */
bool door_is_open(void) {
    int cnt = 0;
    for (int i = 0; i < 3; i++) {
        if (digitalRead(PIN_DOOR) == HIGH) cnt++;
        delay(20);
    }
    return (cnt >= 3);
}

7、cloud.h / cloud.c ------ 云端通讯模块

cloud.h(声明):

复制代码
#ifndef CLOUD_H
#define CLOUD_H
#include <stdbool.h>
#include "env.h"

void cloud_init(void);
void cloud_loop(void);
void cloud_report(const env_data_t *e, bool fan, bool uv);   /* 上报数据 */
bool cloud_cmd_fan(void);   /* 平台下发的最近一次风扇指令(可扩展) */
#endif

cloud.c(实现):

复制代码
#include "cloud.h"
#include "config.h"
#include <WiFi.h>
#include <PubSubClient.h>

static WiFiClient wifiCli;
static PubSubClient mqtt(wifiCli);
static bool pendingFan = false;

/* 收到平台指令:fan:on/off、uv:on/off */
static void on_message(char *topic, byte *payload, unsigned int len) {
    char buf[16] = {0};
    if (len >= sizeof(buf)) len = sizeof(buf) - 1;
    memcpy(buf, payload, len);
    if (strcmp(buf, "fan:on") == 0)  pendingFan = true;
    /* uv 指令交给主程序调 uv_start(需检查门状态) */
}

void cloud_init(void) {
    WiFi.begin(WIFI_SSID, WIFI_PASS);
    while (WiFi.status() != WL_CONNECTED) delay(500);

    mqtt.setServer(MQTT_SERVER, MQTT_PORT);
    mqtt.setCallback(on_message);
}

void cloud_loop(void) {
    if (!mqtt.connected()) mqtt.connect("esp32_wardrobe");
    mqtt.loop();
}

void cloud_report(const env_data_t *e, bool fan, bool uv) {
    if (!mqtt.connected()) return;
    char buf[96];
    snprintf(buf, sizeof(buf),
             "{\"t\":%.1f,\"h\":%.1f,\"fan\":%d,\"uv\":%d}",
             e->temp, e->humi, fan ? 1 : 0, uv ? 1 : 0);
    mqtt.publish(MQTT_TOPIC_UP, buf);
}

bool cloud_cmd_fan(void) {
    bool v = pendingFan;
    pendingFan = false;
    return v;
}

8、display.h / display.c ------ OLED 显示模块

display.h(声明):

复制代码
#ifndef DISPLAY_H
#define DISPLAY_H
#include "env.h"

void display_init(void);
void display_show(const env_data_t *e, bool fan, bool uv, bool door);
#endif

display.c(实现):

复制代码
#include "display.h"
#include "config.h"
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

static Adafruit_SSD1306 oled(128, 64, &Wire, -1);

void display_init(void) {
    Wire.begin(PIN_SDA, PIN_SCL);
    oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
    oled.clearDisplay();
    oled.setTextColor(SSD1306_WHITE);
}

void display_show(const env_data_t *e, bool fan, bool uv, bool door) {
    oled.clearDisplay();
    oled.setCursor(0, 0);
    oled.print("T:"); oled.print(e->temp, 1); oled.println(" C");
    oled.print("H:"); oled.print(e->humi, 1); oled.println(" %");
    oled.print("Fan:"); oled.print(fan ? "ON " : "OFF");
    oled.print(" UV:"); oled.println(uv ? "ON" : "OFF");
    oled.print("Door:"); oled.println(door ? "OPEN" : "CLOSED");
    oled.display();
}

9、main.c ------ 主程序

复制代码
#include "config.h"
#include "env.h"
#include "fan.h"
#include "uv.h"
#include "door.h"
#include "cloud.h"
#include "display.h"

static bool uvRequest = false;     /* 手动/定时请求开启 UV */
static uint32_t lastReportMs = 0;

void setup() {
    env_init();
    fan_init();
    uv_init();
    door_init();
    display_init();
    cloud_init();
}

void loop() {
    /* ① 门状态优先:最高安全优先级 */
    bool doorOpen = door_is_open();
    uv_tick(doorOpen);

    /* ② 采集环境 */
    env_data_t e = env_read();

    /* ③ 自动除湿 */
    bool fanOn = false;
    if (e.valid) {
        fanOn = fan_control(e.humi);
        if (e.humi >= HUMI_ALARM) {
            /* 湿度过高,可加推送;这里仅串口提示 */
            Serial.println("humidity alarm");
        }
    }

    /* ④ UV 请求处理:门关着才允许 */
    if (uvRequest && !doorOpen) {
        if (uv_start()) uvRequest = false;
    }
    if (doorOpen) uvRequest = false;

    /* ⑤ 平台指令 */
    if (cloud_cmd_fan()) fan_set(true);

    /* ⑥ 显示 + 上报(每 5 秒) */
    display_show(&e, fanOn, uv_is_on(), doorOpen);
    if (millis() - lastReportMs > 5000) {
        lastReportMs = millis();
        cloud_report(&e, fanOn, uv_is_on());
    }

    cloud_loop();
    delay(200);
}

以上为核心模块代码。需要时可继续扩展:schedule.c(定时 UV/通风任务表)、record.c(环境历史曲线)、servo.c(自动开合柜门),主程序只调用接口,逻辑一目了然。

十二、代码要点讲解

  • .h/.c 分离 :.h 只放宏、结构体、函数声明,.c 放实现隐藏细节,模块独立便于扩展,是论文「模块化设计」的要点;

  • config.h 集中配置:引脚、阈值、UV 时长、WiFi/MQTT 都收在一个文件;

  • DHT22 读间隔 ≥2 秒:读太快会返回 NaN,主循环加延时保证;

  • 迟滞控制 :HUMI_ON/HUMI_OFF 双阈值,避免在临界值反复开关风扇;

  • uv_tick 安全优先 :开门立刻 uv_stop,再判断计时,安全逻辑放在最前面;

  • UV 关锁 UV_LOCK_MS:关门后 30 秒内禁止开灯,防止频繁开关柜门导致误开;

  • 门磁去抖:连续 3 次采样,避免柜门轻微震动误判开门;

  • MQTT 上报精简 JSON:字段短、体积小,云端解析简单。

十三、功能测试与验收

功能 实现方式 测试方法
温湿度采集 env_read OLED 显示合理温湿度
自动除湿 fan_control 对传感器哈气,湿度升高风扇开;降下来风扇停
除湿迟滞 HUMI_ON/HUMI_OFF 在 58~65 之间风扇不反复开关
UV 定时杀菌 uv_start + uv_tick 手动请求,UV 亮 15 分钟后自动关
开门断电联锁 uv_tick(doorOpen) UV 亮时开门磁,UV 立即熄灭
关门锁定 UV_LOCK_MS 关门后立刻请求开 UV,被拒绝;30 秒后可开
远程数据 cloud_report 云平台/手机看到温湿度与状态
远程控制 cloud_cmd_fan 手机下发 fan:on,风扇启动

分步验收清单:

  1. 上电 OLED 显示温湿度 → 采集显示 OK;

  2. 哈气让湿度升高,风扇自动转 → 除湿 OK;

  3. 湿度回落,风扇自动停 → 迟滞 OK;

  4. 手动开 UV,灯亮并 15 分钟后自动灭 → 定时杀菌 OK;

  5. UV 亮时开门,灯立刻熄灭 → 安全联锁 OK;

  6. 云平台看到数据、手机能控制风扇 → 远程 OK。

十四、能给你什么启发?

1、选题优势:生活场景贴近、人人都懂,答辩容易讲清;硬件便宜(传感器 + 风扇 + UV 模块百元内)、逻辑简单好调试,基础一般的同学也能稳过;智能衣柜、鞋柜、酒柜这类细分选题重复率低,容易做出差异化。

2、想冲更高分数,随便往这几个方向扩:

  • 加衣物管理:给每件衣服加 RFID/NFC 标签,手机查「这件衣服在哪」;

  • 加香薰/除味:定时喷香或负离子净化,提升体验;

  • 加柜内照明:开门自动亮灯、关门熄灭;

  • 加湿度历史曲线:云端记录一个月湿度变化,分析发霉风险;

  • 加语音控制:接入小爱/天猫精灵,语音开关杀菌;

  • 加多柜联动:主卧/次卧衣柜统一管理,一个 APP 看全部。

十五、开题报告 & 答辩要点

1、开题报告可直接改用的表述

1、选题依据(背景):衣柜内环境潮湿易导致衣物发霉、滋生细菌、产生异味,尤其在南方梅雨季节问题突出。传统衣柜缺乏环境感知与调节能力,用户只能被动发现。利用温湿度传感器实时监测柜内环境,并结合自动除湿、紫外杀菌与远程管理,构建智能衣柜环境管理系统具有现实意义。

2、研究意义:本课题将环境传感、执行机构控制、安全联锁与无线通信技术相结合,一方面实现衣柜微环境的自动调节与杀菌除味,提升衣物保存质量与居家生活品质;另一方面完整覆盖传感器采集、阈值迟滞控制、继电器驱动、MQTT 通信等物联网关键技术,对巩固专业知识、锻炼软硬件综合开发能力有重要意义。

3、系统功能概述:系统以 ESP32 为主控,通过 DHT22 采集柜内温湿度,湿度超过阈值自动开启风扇除湿、回落后自动关闭;配置 UV-C 杀菌灯支持定时与手动杀菌,并通过门磁实现开门立即断电的安全联锁;数据经 OLED 本地显示并上传云平台,用户可远程查看环境数据与控制设备。

4、创新点(按实际情况选取):

  • 针对衣柜这一细分微环境做精细化控制,选题差异化明显;

  • 采用迟滞阈值控制,避免执行机构频繁启停;

  • 引入开门即断电的 UV 安全联锁,兼顾功能与人身安全。

5、技术难点:

  • 潮湿环境下传感器稳定性与读数准确性;

  • 多执行器状态协调与安全联锁优先级设计;

  • 远程指令与本地安全逻辑的冲突处理。

2、答辩常见问题(参考回答要点)

可能被问 回答要点
为什么选衣柜这个场景? 潮湿发霉是真实痛点,细分空间控制有实用价值,选题差异化
湿度怎么控制? DHT22 采集,超过 65% 开风扇,低于 58% 关,迟滞避免频繁启停
为什么用迟滞? 单阈值会在临界点反复开关,双阈值给缓冲区间更稳定
UV 灯安全怎么保证? 门磁检测开门立即断电,关门后锁定 30 秒才允许再开,绝不在有人时点亮
UV 杀菌多久合适? 15 分钟即可,长时间照射会加速衣物纤维老化
数据怎么远程看? ESP32 通过 MQTT 上报云端,手机/网页订阅查看
传感器潮湿环境可靠吗? 加防尘透气罩,定期校准,避免水汽直接进芯片
系统有哪些改进空间? 衣物 RFID 管理、香薰除味、照明联动、历史曲线、语音控制等
相关推荐
软件技术NINI1 天前
基于SpringBoot和Vue的新能源汽车销售推荐系统
java·vue.js·spring boot·后端·汽车·毕业设计·毕设
天空'之城1 天前
010基于 ESP32-CAM 的智能家居视频监控系统
物联网·毕业设计·视频监控·esp32-cam·移动侦测
软件技术NINI3 天前
基于SpringBoot和Vue的博物馆预约平台管理系统的设计与实现
java·毕业设计·毕设
天空'之城3 天前
009基于物联网的智能厨房安全监测系统
毕业设计·esp32·电磁阀·厨房安全·燃气检测
软件技术NINI6 天前
基于SpringBoot和Vue的项目评审系统
javascript·vue.js·spring boot·后端·spring·毕业设计·毕设
计算机毕业编程指导师7 天前
基于深度学习的光伏组件红外图像缺陷识别系统设计与实现
人工智能·python·深度学习·目标检测·毕业设计·课程设计·光伏
无所谓^_^7 天前
个人健康管理系统 | Springboot3 | Vue3
java·vue·毕业设计·springboot·课程设计·毕设·前后端分离
计算机毕业编程指导师8 天前
基于深度学习的花卉图像分类识别系统(PyTorch + ResNet50 + Django)
pytorch·python·深度学习·分类·毕业设计·迁移学习·图像分类
天空'之城8 天前
004基于语音识别的智能家居本地控制系统
毕业设计·esp32·智能家居·语音识别·离线控制