智能衣柜—穿搭助手,内置温湿度传感器,潮湿天气自动启动除湿功能,防止衣服发霉,APP还能记录衣服穿着频率,推荐久没穿的衣服,避免穿搭重复。

40 阅读6分钟

智能衣柜—穿搭助手系统

一、核心代码(模块化设计)

  1. 配置文件( "config.py")

集中管理常量与参数,便于扩展。

配置模块:系统常量与参数

class Config: # 温湿度阈值(湿度>70%启动除湿) HUMIDITY_THRESHOLD = 70
TEMP_THRESHOLD = 30 # 温度阈值(可选扩展制冷) # 衣物属性字段 CLOTHING_FIELDS = ["id", "name", "category", "last_worn", "wear_count", "season"] # 退出命令 EXIT_CMD = "退出"
WELCOME_MSG = "欢迎使用智能衣柜—穿搭助手!"

  1. 传感器模拟模块( "sensor_simulator.py")

模拟温湿度传感器数据读取(实际可对接DHT11等硬件)。

传感器模拟:生成随机温湿度数据(实际替换为硬件读取)

import random from config import Config

def read_sensor_data(): """模拟读取温湿度传感器数据""" humidity = random.randint(50, 90) # 湿度50%-90% temperature = random.randint(20, 35) # 温度20-35℃ return {"humidity": humidity, "temperature": temperature}

  1. 除湿控制模块( "dehumidifier.py")

根据湿度阈值控制除湿功能。

除湿控制:湿度超标时启动除湿

from sensor_simulator import read_sensor_data from config import Config

def check_humidity_and_control(): """检查湿度并控制除湿""" data = read_sensor_data() humidity = data["humidity"] if humidity > Config.HUMIDITY_THRESHOLD: print(f"⚠️ 湿度过高({humidity}%),启动除湿功能...") return {"status": "运行中", "humidity": humidity} else: print(f"✅ 湿度正常({humidity}%),无需除湿") return {"status": "待机", "humidity": humidity}

  1. 衣物管理模块( "wardrobe_manager.py")

用类封装衣物信息,支持增删改查与穿着记录。

衣物管理:记录衣物属性与穿着历史

import json from datetime import datetime from config import Config

class Wardrobe: def init(self): self.clothes = [] # 衣物列表,每个元素为字典 self.load_data() # 初始化时加载数据(模拟文件存储)

def add_clothing(self, name, category, season):
    """添加新衣物"""
    new_id = len(self.clothes) + 1
    self.clothes.append({
        "id": new_id,
        "name": name,
        "category": category,  # 如上衣/裤子
        "last_worn": None,  # 上次穿着时间(YYYY-MM-DD)
        "wear_count": 0,  # 穿着次数
        "season": season  # 适用季节:春/夏/秋/冬
    })
    self.save_data()

def record_wear(self, clothing_id):
    """记录衣物穿着"""
    for item in self.clothes:
        if item["id"] == clothing_id:
            item["last_worn"] = datetime.now().strftime("%Y-%m-%d")
            item["wear_count"] += 1
            self.save_data()
            return True
    return False  # 未找到衣物

def get_least_worn(self, limit=3):
    """推荐久未穿的衣物(按last_worn升序)"""
    sorted_clothes = sorted(
        self.clothes, 
        key=lambda x: x["last_worn"] or "1970-01-01"  # 未穿过排最前
    )
    return sorted_clothes[:limit]  # 返回前limit件

def save_data(self):
    """模拟保存数据到文件(实际用json.dump)"""
    pass  # 简化为内存存储,实际可扩展文件读写

def load_data(self):
    """模拟加载数据(初始为空列表)"""
    self.clothes = []

5. 推荐算法模块( "recommender.py")

基于穿着频率推荐久未穿衣物。

推荐算法:调用Wardrobe的get_least_worn方法

from wardrobe_manager import Wardrobe

def recommend_outfit(wardrobe, limit=3): """推荐久未穿的衣物""" return wardrobe.get_least_worn(limit)

  1. 用户交互模块( "user_interface.py")

命令行交互,整合各模块功能。

用户交互:处理输入输出与功能调度

from dehumidifier import check_humidity_and_control from wardrobe_manager import Wardrobe from recommender import recommend_outfit from config import Config

def display_menu(): print("\n===== 功能菜单 =====") print("1. 查看温湿度并控制除湿") print("2. 添加衣物到衣柜") print("3. 记录衣物穿着") print("4. 获取穿搭推荐(久未穿)") print(f"输入'{Config.EXIT_CMD}'退出")

def run_interaction(): wardrobe = Wardrobe() # 初始化衣柜 print(Config.WELCOME_MSG) while True: display_menu() choice = input("\n请选择功能:").strip() if choice == Config.EXIT_CMD: print("感谢使用,再见!") break elif choice == "1": check_humidity_and_control() elif choice == "2": name = input("衣物名称:") category = input("类别(如上衣/裤子):") season = input("适用季节(春/夏/秋/冬):") wardrobe.add_clothing(name, category, season) print(f"✅ 已添加:{name}") elif choice == "3": cid = int(input("衣物ID:")) if wardrobe.record_wear(cid): print("✅ 穿着记录已更新") else: print("❌ 未找到该衣物") elif choice == "4": recs = recommend_outfit(wardrobe) print("\n📌 推荐久未穿的衣物:") for item in recs: print(f"ID:{item['id']} {item['name']}(上次穿:{item['last_worn'] or '从未'})") else: print("❌ 无效选择,请重试")

  1. 程序入口( "main.py")

整合模块启动系统。

程序入口

from user_interface import run_interaction

if name == "main": try: run_interaction() except Exception as e: print(f"程序出错:{e}")

二、README文件( "README.md")

智能衣柜—穿搭助手

项目简介

基于Python的智能衣柜系统,集成温湿度监测(防霉除湿)、衣物穿着记录、久未穿推荐功能,模拟智能产品控制逻辑,支持模块化扩展。

核心功能

  1. 环境监测:模拟温湿度传感器,湿度>70%自动启动除湿
  2. 衣物管理:添加衣物、记录穿着次数与日期
  3. 穿搭推荐:按“最久未穿”原则推荐衣物,避免重复
  4. 交互界面:命令行菜单操作,简单易用

安装与使用

环境要求

  • Python 3.8+
  • 无额外依赖(纯标准库)

使用步骤

  1. 下载代码:保存上述7个.py文件到同一文件夹
  2. 运行程序:python main.py
  3. 操作示例:

欢迎使用智能衣柜—穿搭助手!

===== 功能菜单 =====

  1. 查看温湿度并控制除湿
  2. 添加衣物到衣柜...请选择功能:2衣物名称:蓝色衬衫类别(如上衣/裤子):上衣适用季节(春/夏/秋/冬):夏✅ 已添加:蓝色衬衫

目录结构

├── config.py # 配置常量

├── sensor_simulator.py # 温湿度传感器模拟

├── dehumidifier.py # 除湿控制

├── wardrobe_manager.py # 衣物管理(类封装)

├── recommender.py # 推荐算法

├── user_interface.py # 命令行交互

└── main.py # 程序入口

扩展方向

  1. 硬件对接:用树莓派+DHT11传感器读取真实温湿度
  2. GUI界面:用Tkinter/PyQt开发图形界面
  3. 数据存储:用SQLite数据库持久化衣物信息

三、使用说明

  1. 准备环境:安装Python 3.8+("官网下载" (www.python.org/downloads/)…
  2. 运行程序:
    • 创建文件夹(如 "smart_wardrobe"),放入所有 ".py"文件
    • 终端执行 "cd smart_wardrobe && python main.py"
  3. 操作流程:
    • 选1:查看温湿度,湿度超标自动提示启动除湿
    • 选2:添加衣物(名称、类别、季节)
    • 选3:输入衣物ID记录穿着(更新last_worn和wear_count)
    • 选4:获取久未穿衣物推荐(按上次穿着时间排序)

四、核心知识点卡片

知识点 说明 代码应用示例 模块化设计 拆分传感器、控制、管理等独立模块 "sensor_simulator.py"与 "dehumidifier.py"分离 类与对象 用 "Wardrobe"类封装衣物管理逻辑 "wardrobe = Wardrobe()"实例化衣柜 字典数据结构 存储衣物属性(id/name/last_worn等) "clothes"列表中的字典元素 排序算法 "sorted()"按last_worn推荐久未穿衣物 "sorted(clothes, key=lambda x: x["last_worn"])" 异常处理 "try...except"捕获运行错误 "main.py"中捕获通用异常并打印 模拟硬件交互 用随机数模拟传感器数据 "random.randint(50, 90)"生成湿度值 文件I/O(扩展) 用 "json"持久化衣物数据(当前简化) "save_data()"/ "load_data()"方法

运行效果示例

欢迎使用智能衣柜—穿搭助手!
===== 功能菜单 =====

  1. 查看温湿度并控制除湿
    ...
    请选择功能:1
    ⚠️ 湿度过高(85%),启动除湿功能...

请选择功能:4
📌 推荐久未穿的衣物:
ID:1 蓝色衬衫(上次穿:从未)
ID:2 牛仔裤(上次穿:2025-12-15)

系统可通过扩展 "wardrobe_manager.py"实现文件存储,或对接真实传感器提升实用性。 关注我,有更多实用程序等着你!