news 2026/6/19 5:24:49

智能鞋柜—脚气终结者,内置温湿度传感器和紫外线灯,晚上回家,把鞋放进去,自动检测湿度,湿度超标就启动烘干+紫外线杀菌,第二天穿鞋干燥无异味。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
智能鞋柜—脚气终结者,内置温湿度传感器和紫外线灯,晚上回家,把鞋放进去,自动检测湿度,湿度超标就启动烘干+紫外线杀菌,第二天穿鞋干燥无异味。

智能鞋柜——脚气终结者系统

下面是一个基于Python的智能鞋柜控制系统,集成了温湿度传感器和紫外线杀菌功能,能够自动检测鞋子湿度并在超标时启动烘干和杀菌功能。

import time

import random

import threading

from datetime import datetime, timedelta

import RPi.GPIO as GPIO # 树莓派GPIO控制库

import Adafruit_DHT # 温湿度传感器库

# 硬件配置

class HardwareConfig:

# 传感器引脚配置

DHT_SENSOR = Adafruit_DHT.DHT22

DHT_PIN = 4 # GPIO4

# 紫外线灯控制引脚

UV_LED_PIN = 17 # GPIO17

# 烘干风扇控制引脚

FAN_PIN = 18 # GPIO18

# 红外人体感应引脚(检测是否有人靠近)

PIR_PIN = 27 # GPIO27

# 鞋柜门磁开关引脚

DOOR_SWITCH_PIN = 22 # GPIO22

# 状态指示灯

STATUS_LED_GREEN = 23 # GPIO23

STATUS_LED_RED = 24 # GPIO24

# 湿度阈值设置

HUMIDITY_THRESHOLD = 65 # 湿度超过65%启动烘干

IDEAL_HUMIDITY = 40 # 理想湿度水平

# 工作时间设置

UV_STERILIZATION_TIME = 30 * 60 # 紫外线杀菌30分钟

MAX_DRYING_TIME = 2 * 60 * 60 # 最大烘干时间2小时

NIGHT_MODE_START = 18 # 晚上6点开始工作

NIGHT_MODE_END = 8 # 早上8点结束工作

# 智能鞋柜主控系统

class SmartShoeCabinet:

def __init__(self):

self.humidity = 0

self.temperature = 0

self.door_open = False

self.uv_active = False

self.fan_active = False

self.last_detection_time = datetime.now()

self.drying_start_time = None

self.sterilization_start_time = None

self.running = True

# 初始化硬件

self.setup_hardware()

# 启动传感器监控线程

self.sensor_thread = threading.Thread(target=self.monitor_sensors)

self.sensor_thread.daemon = True

self.sensor_thread.start()

# 启动主控制循环

self.control_loop()

def setup_hardware(self):

"""初始化硬件设置"""

GPIO.setmode(GPIO.BCM)

# 设置输出引脚

GPIO.setup(HardwareConfig.UV_LED_PIN, GPIO.OUT)

GPIO.setup(HardwareConfig.FAN_PIN, GPIO.OUT)

GPIO.setup(HardwareConfig.STATUS_LED_GREEN, GPIO.OUT)

GPIO.setup(HardwareConfig.STATUS_LED_RED, GPIO.OUT)

# 设置输入引脚

GPIO.setup(HardwareConfig.PIR_PIN, GPIO.IN)

GPIO.setup(HardwareConfig.DOOR_SWITCH_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)

# 初始状态:关闭所有设备

GPIO.output(HardwareConfig.UV_LED_PIN, GPIO.LOW)

GPIO.output(HardwareConfig.FAN_PIN, GPIO.LOW)

GPIO.output(HardwareConfig.STATUS_LED_GREEN, GPIO.LOW)

GPIO.output(HardwareConfig.STATUS_LED_RED, GPIO.HIGH) # 启动时红灯亮

print("硬件初始化完成")

def read_sensor_data(self):

"""读取温湿度传感器数据"""

humidity, temperature = Adafruit_DHT.read_retry(

HardwareConfig.DHT_SENSOR,

HardwareConfig.DHT_PIN

)

# 模拟传感器数据(实际使用时注释掉)

if humidity is None or temperature is None:

humidity = random.uniform(30, 80)

temperature = random.uniform(15, 30)

print("使用模拟传感器数据")

return humidity, temperature

def monitor_sensors(self):

"""传感器监控线程"""

while self.running:

try:

# 读取温湿度

self.humidity, self.temperature = self.read_sensor_data()

# 检测鞋柜门状态

self.door_open = GPIO.input(HardwareConfig.DOOR_SWITCH_PIN) == GPIO.HIGH

# 更新状态指示灯

self.update_status_leds()

# 每5秒读取一次传感器

time.sleep(5)

except Exception as e:

print(f"传感器监控错误: {e}")

time.sleep(10)

def update_status_leds(self):

"""更新状态指示灯"""

# 绿灯表示系统正常,红灯表示警告或故障

if self.humidity > HardwareConfig.HUMIDITY_THRESHOLD:

# 湿度过高,红灯闪烁

GPIO.output(HardwareConfig.STATUS_LED_GREEN, GPIO.LOW)

GPIO.output(HardwareConfig.STATUS_LED_RED, GPIO.HIGH if int(time.time()) % 2 == 0 else GPIO.LOW)

else:

# 湿度正常,绿灯常亮

GPIO.output(HardwareConfig.STATUS_LED_GREEN, GPIO.HIGH)

GPIO.output(HardwareConfig.STATUS_LED_RED, GPIO.LOW)

def start_drying(self):

"""启动烘干功能"""

if not self.fan_active:

GPIO.output(HardwareConfig.FAN_PIN, GPIO.HIGH)

self.fan_active = True

self.drying_start_time = datetime.now()

print("启动烘干功能")

def stop_drying(self):

"""停止烘干功能"""

if self.fan_active:

GPIO.output(HardwareConfig.FAN_PIN, GPIO.LOW)

self.fan_active = False

self.drying_start_time = None

print("停止烘干功能")

def start_uv_sterilization(self):

"""启动紫外线杀菌"""

if not self.uv_active:

GPIO.output(HardwareConfig.UV_LED_PIN, GPIO.HIGH)

self.uv_active = True

self.sterilization_start_time = datetime.now()

print("启动紫外线杀菌")

def stop_uv_sterilization(self):

"""停止紫外线杀菌"""

if self.uv_active:

GPIO.output(HardwareConfig.UV_LED_PIN, GPIO.LOW)

self.uv_active = False

self.sterilization_start_time = None

print("停止紫外线杀菌")

def check_night_mode(self):

"""检查是否在夜间工作模式"""

now = datetime.now()

current_hour = now.hour

# 晚上6点到早上8点为夜间模式

if (current_hour >= HardwareConfig.NIGHT_MODE_START) or (current_hour < HardwareConfig.NIGHT_MODE_END):

return True

return False

def control_loop(self):

"""主控制循环"""

print("智能鞋柜系统启动")

try:

while self.running:

# 检查是否在夜间模式

night_mode = self.check_night_mode()

# 如果鞋柜门关闭且处于夜间模式

if not self.door_open and night_mode:

# 检查湿度是否超标

if self.humidity > HardwareConfig.HUMIDITY_THRESHOLD:

print(f"检测到高湿度: {self.humidity:.1f}% > {HardwareConfig.HUMIDITY_THRESHOLD}%")

# 启动烘干

self.start_drying()

# 启动紫外线杀菌

self.start_uv_sterilization()

else:

# 湿度正常,停止烘干

self.stop_drying()

# 如果杀菌时间不足,继续杀菌

if self.uv_active:

elapsed = (datetime.now() - self.sterilization_start_time).total_seconds()

if elapsed >= HardwareConfig.UV_STERILIZATION_TIME:

self.stop_uv_sterilization()

# 白天模式或非夜间模式

else:

# 停止所有功能

self.stop_drying()

self.stop_uv_sterilization()

# 安全检查:防止过度烘干

if self.fan_active:

elapsed = (datetime.now() - self.drying_start_time).total_seconds()

if elapsed >= HardwareConfig.MAX_DRYING_TIME:

print("达到最大烘干时间,停止烘干")

self.stop_drying()

# 检查紫外线杀菌时间

if self.uv_active:

elapsed = (datetime.now() - self.sterilization_start_time).total_seconds()

if elapsed >= HardwareConfig.UV_STERILIZATION_TIME:

print("紫外线杀菌完成")

self.stop_uv_sterilization()

# 每10秒检查一次

time.sleep(10)

except KeyboardInterrupt:

print("系统关闭中...")

finally:

self.cleanup()

def cleanup(self):

"""清理资源"""

self.running = False

self.stop_drying()

self.stop_uv_sterilization()

# 关闭所有LED

GPIO.output(HardwareConfig.STATUS_LED_GREEN, GPIO.LOW)

GPIO.output(HardwareConfig.STATUS_LED_RED, GPIO.LOW)

GPIO.cleanup()

print("系统已关闭")

# 模拟演示程序

def simulate_shoe_cabinet():

"""模拟智能鞋柜运行"""

print("=== 智能鞋柜模拟演示 ===")

cabinet = SmartShoeCabinet()

# 模拟一天的运行

print("\n模拟白天模式 (8:00 AM)")

cabinet.door_open = False

time.sleep(2)

print("\n模拟晚上回家放鞋 (6:00 PM)")

cabinet.door_open = True

time.sleep(2)

cabinet.door_open = False

time.sleep(2)

print("\n模拟高湿度情况")

cabinet.humidity = 75

time.sleep(5)

print("\n模拟湿度恢复正常")

cabinet.humidity = 45

time.sleep(5)

print("\n模拟第二天早上取鞋 (8:00 AM)")

cabinet.door_open = True

time.sleep(2)

print("\n模拟演示结束")

cabinet.running = False

cabinet.cleanup()

# 主程序入口

if __name__ == "__main__":

# 实际硬件运行

# cabinet = SmartShoeCabinet()

# 模拟演示

simulate_shoe_cabinet()

系统功能说明

1. 核心功能

- 自动湿度检测:使用DHT22传感器实时监测鞋柜内湿度

- 智能烘干系统:当湿度超过65%时自动启动烘干风扇

- 紫外线杀菌:烘干同时启动紫外线灯进行杀菌消毒

- 夜间模式:晚上6点至次日早上8点自动工作

- 安全保护:设置最大烘干时间(2小时)防止过度烘干

2. 硬件组成

组件 型号/规格 功能

微控制器 树莓派4B 系统主控

温湿度传感器 DHT22 检测鞋柜内环境

紫外线灯 UVC LED 杀菌消毒

烘干风扇 5V直流风扇 加速水分蒸发

门磁开关 磁性传感器 检测鞋柜门状态

人体感应器 HC-SR501 检测人员接近

状态指示灯 RGB LED 系统状态指示

3. 工作流程

graph TD

A[晚上回家放鞋] --> B[关门检测]

B --> C{湿度是否超标?}

C -->|是| D[启动烘干+紫外线杀菌]

C -->|否| E[保持待机]

D --> F{湿度是否达标?}

F -->|否| D

F -->|是| G[停止烘干]

G --> H[继续紫外线杀菌30分钟]

H --> I[杀菌完成]

I --> J[第二天早上取鞋]

J --> K[开门检测]

K --> L[停止所有功能]

4. 软件架构

classDiagram

class SmartShoeCabinet {

-humidity: float

-temperature: float

-door_open: bool

-uv_active: bool

-fan_active: bool

-last_detection_time: datetime

-drying_start_time: datetime

-sterilization_start_time: datetime

-running: bool

+setup_hardware()

+read_sensor_data() tuple

+monitor_sensors()

+update_status_leds()

+start_drying()

+stop_drying()

+start_uv_sterilization()

+stop_uv_sterilization()

+check_night_mode() bool

+control_loop()

+cleanup()

}

class HardwareConfig {

+DHT_SENSOR: int

+DHT_PIN: int

+UV_LED_PIN: int

+FAN_PIN: int

+PIR_PIN: int

+DOOR_SWITCH_PIN: int

+STATUS_LED_GREEN: int

+STATUS_LED_RED: int

+HUMIDITY_THRESHOLD: int

+IDEAL_HUMIDITY: int

+UV_STERILIZATION_TIME: int

+MAX_DRYING_TIME: int

+NIGHT_MODE_START: int

+NIGHT_MODE_END: int

}

SmartShoeCabinet --> HardwareConfig : 使用配置

5. 应用场景

家庭应用

- 解决家庭成员脚气交叉感染问题

- 梅雨季节防止鞋子发霉

- 运动爱好者专用鞋柜

- 儿童鞋柜卫生管理

公共场所

- 健身房鞋柜

- 游泳馆更衣柜

- 酒店客房鞋柜

- 学校宿舍鞋柜

6. 技术优势

1. 智能湿度控制:

- 实时监测鞋柜内湿度变化

- 自动启停烘干系统

- 防止过度烘干损伤鞋子

2. 双重防护机制:

- 物理烘干去除水分

- 紫外线杀灭真菌细菌

3. 节能环保设计:

- 仅在需要时启动设备

- 夜间工作避开用电高峰

- 低功耗传感器和控制器

4. 安全可靠:

- 紫外线工作时门锁检测

- 人体感应自动关闭紫外线

- 最大运行时间保护

7. 扩展功能

1. 手机APP控制:

# 伪代码示例

from flask import Flask, request

app = Flask(__name__)

@app.route('/api/cabinet/status', methods=['GET'])

def get_status():

return jsonify({

'humidity': cabinet.humidity,

'temperature': cabinet.temperature,

'uv_active': cabinet.uv_active,

'fan_active': cabinet.fan_active

})

@app.route('/api/cabinet/control', methods=['POST'])

def control_cabinet():

action = request.json.get('action')

if action == 'start_drying':

cabinet.start_drying()

elif action == 'stop_drying':

cabinet.stop_drying()

# ...其他控制命令

return jsonify({'status': 'success'})

2. 数据分析与预测:

- 记录历史湿度数据

- 预测鞋子干燥所需时间

- 优化烘干策略

3. 多鞋柜管理系统:

- 管理多个鞋柜单元

- 分区控制不同鞋子

- 家庭成员专属设置

安装与使用指南

硬件安装步骤

1. 将DHT22传感器安装在鞋柜内部上方

2. 在鞋柜顶部安装紫外线灯和烘干风扇

3. 在门框上安装门磁开关

4. 在外部安装状态指示灯

5. 连接所有组件到树莓派GPIO接口

软件安装步骤

# 安装必要库

sudo apt-get update

sudo apt-get install python3-pip

pip3 install Adafruit_DHT RPi.GPIO

# 下载程序

git clone https://github.com/smart-shoe-cabinet.git

cd smart-shoe-cabinet

# 运行程序

python3 main.py

日常使用

1. 晚上回家后将鞋子放入鞋柜并关好门

2. 系统自动检测湿度并启动相应功能

3. 第二天早上取出干燥无异味的鞋子

4. 可通过手机APP查看状态或手动控制

常见问题解决

问题现象 可能原因 解决方法

湿度检测不准确 传感器位置不当 调整传感器位置到鞋柜中心

烘干效果差 风扇功率不足 更换更大功率风扇

紫外线灯不亮 线路连接问题 检查GPIO连接和电源

系统频繁重启 电源不稳定 使用稳压电源适配器

APP无法连接 网络配置问题 检查树莓派网络连接

这个智能鞋柜系统通过自动化控制解决了鞋子潮湿导致的脚气问题,结合了物联网技术和智能控制算法,为家庭和公共场所提供了卫生、便捷的鞋子存储解决方案。

我是编程小白,请大家多多指教,谢谢!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 6:56:54

5分钟掌握GitHub入门教程优化:从零基础到高效协作

5分钟掌握GitHub入门教程优化&#xff1a;从零基础到高效协作 【免费下载链接】introduction-to-github Get started using GitHub in less than an hour. 项目地址: https://gitcode.com/GitHub_Trending/in/introduction-to-github 想要快速掌握GitHub的使用技巧&…

作者头像 李华
网站建设 2026/6/17 4:23:21

快速上手:Color Thief智能配色方案实战指南

快速上手&#xff1a;Color Thief智能配色方案实战指南 【免费下载链接】color-thief Grab the color palette from an image using just Javascript. Works in the browser and in Node. 项目地址: https://gitcode.com/gh_mirrors/co/color-thief 面对品牌视觉统一和网…

作者头像 李华
网站建设 2026/6/17 17:39:24

A16z 谈 AI 留存的「水晶鞋效应」:第一个月,决定了一切 都是一次认真“试鞋”的机会:这一次,能不能真的解决我手里的问题?

A16z 谈 AI 留存的「水晶鞋效应」&#xff1a;第一个月&#xff0c;决定了一切 原创 Cubo Group 矩阵魔方AI出海 2025年12月12日 19:45 陕西 在传统 SaaS 时代&#xff0c;有一条几乎没人怀疑的共识&#xff1a;产品早期留存差&#xff0c;是正常现象。 MVP 功能不全&#…

作者头像 李华
网站建设 2026/6/15 14:10:11

5、深入了解 Ubuntu 网络配置与 X Window 系统

深入了解 Ubuntu 网络配置与 X Window 系统 1. Ubuntu 无线网络配置 在过去,为 Linux 系统配置无线网络是一件非常繁琐的事情,需要执行许多复杂的步骤才能连接到无线网络。不过,现在情况有了很大的改善。Ubuntu 系统中包含了一个名为 Network Manager 的实用工具,它让连接…

作者头像 李华
网站建设 2026/6/17 21:29:08

分享几则中年夫妻关系的有益建议

著名演员何晴去世了&#xff0c;很震惊&#xff0c;她是我最喜欢的女演员&#xff0c;曾经出演过四大名著。分享几则中年夫妻关系的有益建议&#xff1a; 1、可以容忍对方的生活习惯。包括拉S放P、不叠被、不洗衣&#xff0c;但要管好自己&#xff0c;还是尽量别过份坦荡。 2、…

作者头像 李华
网站建设 2026/6/17 16:36:04

(108页PPT)园区大数据治理解决方案(附下载方式)

篇幅所限&#xff0c;本文只提供部分资料内容&#xff0c;完整资料请看下面链接 &#xff08;108页PPT&#xff09;园区大数据治理解决方案.pptx_智慧园区总体规划PPT资源-CSDN下载 资料解读&#xff1a;《园区大数据治理解决方案》 详细资料请看本解读文章的最后内容。 在数…

作者头像 李华