# devsimu-mqtt **Repository Path**: ukiot/devsimu-mqtt ## Basic Information - **Project Name**: devsimu-mqtt - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-05 - **Last Updated**: 2025-07-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MQTT设备模拟器 - 高级版 ## 项目简介 这是一个功能全面的MQTT设备模拟器,基于PyQt5开发,支持各种物联网设备的模拟、物模型管理、实时监控等功能。界面设计炫酷,框架清晰,功能完善,可以模拟各种IoT设备进行MQTT通信测试。 ![功能预览](images/预览.gif) ## 主要功能 ### 🚀 核心功能 - **MQTT连接管理**:支持自定义客户端ID、用户名密码认证 - **证书认证**:支持SSL/TLS证书认证,确保通信安全 - **主题管理**:支持自定义主题订阅和发布,主题按规则生成 - **设备模拟**:内置多种设备模板,支持自定义设备 - **物模型支持**:完整的属性、事件、服务模型 - **实时监控**:消息监控、数据可视化、实时图表 - **JSON可视化**:美观的JSON编辑器和查看器 ### 📱 界面特色 - **深色主题**:专业的深色界面,护眼且炫酷 - **多主题支持**:深色、浅色、蓝色等多种主题可选 - **响应式布局**:自适应窗口大小,体验流畅 - **现代化设计**:遵循现代UI设计原则 ### 🔧 设备模板 内置多种常用设备模板: - **温度传感器**:温湿度监测,支持阈值报警 - **智能灯具**:亮度、颜色控制,开关状态管理 - **空调设备**:温度、模式、风速控制 - **安防摄像头**:录制控制、动态检测 - **自定义设备**:支持完全自定义的设备模型 ## 安装说明 ### 环境要求 - Python 3.7+ - Windows/Linux/macOS ### 安装步骤 1. **克隆项目** ```bash git clone <项目地址> cd mqtt-dev ``` 2. **安装依赖** ```bash pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple -r requirements.txt ``` 3. **运行程序** ```bash python main.py ``` ### 快速安装(推荐) ```bash # 使用pip安装核心依赖 pip install PyQt5 paho-mqtt pyqtgraph numpy # 运行程序 python main.py ``` ## 使用指南 ### 1. MQTT连接配置 #### 基本连接 1. 在左侧"MQTT连接设置"面板中填写: - **服务器地址**:MQTT代理服务器IP或域名 - **端口**:MQTT服务端口(通常为1883) - **客户端ID**:唯一标识符(自动生成或手动输入) - **用户名/密码**:如果服务器需要认证 #### 证书认证 1. 选择"证书认证"单选按钮 2. 点击"浏览"选择证书文件(.pem, .crt, .key) 3. 点击"连接"建立安全连接 ### 2. 设备管理 #### 添加设备 1. 点击"设备管理"面板中的"添加设备"按钮 2. 选择设备模板或创建自定义设备 3. 配置设备属性、事件和服务 4. 确认保存 #### 设备配置 - **属性配置**:定义设备的数据属性(温度、湿度等) - **事件配置**:定义设备可能触发的事件 - **服务配置**:定义设备可执行的操作 ### 3. 主题管理 #### 发布消息 1. 在"发布主题"输入框中输入主题名称 2. 在消息框中输入JSON格式的消息内容 3. 点击"发布消息"发送 #### 订阅主题 1. 在"订阅主题"输入框中输入主题名称(支持通配符) 2. 点击"订阅"开始监听消息 #### 主题规则 系统支持标准MQTT主题格式: ``` device/{device_id}/property/{property_name} # 属性上报 device/{device_id}/event/{event_name} # 事件触发 device/{device_id}/service/{service_name} # 服务调用 device/{device_id}/status # 设备状态 ``` ### 4. 实时监控 #### 消息监控 - 实时显示所有MQTT消息 - 支持主题过滤和搜索 - JSON格式化显示 - 消息导出功能 #### 数据可视化 - 实时图表显示数值型数据 - 支持多条数据曲线 - 可暂停/继续数据更新 - 图表保存功能 #### 系统日志 - 分级日志显示(DEBUG/INFO/WARNING/ERROR) - 日志过滤和搜索 - 日志导出功能 ### 5. 物模型管理 #### 属性管理 - 支持多种数据类型:字符串、整数、浮点数、布尔值、枚举 - 设置默认值、取值范围、单位 - 实时属性值更新 #### 事件管理 - 支持信息、告警、错误等事件类型 - 自定义事件触发条件 - 事件历史记录 #### 服务管理 - 同步/异步服务调用 - 服务参数定义 - 服务执行结果反馈 ## 高级功能 ### 1. 批量设备管理 - 设备配置导入/导出 - 批量设备操作 - 设备模板管理 ### 2. 数据模拟 - 智能数据生成算法 - 支持趋势性数据模拟 - 可配置数据更新频率 ### 3. 主题生成器 - 智能主题推荐 - 主题模板管理 - 批量主题操作 ### 4. 扩展功能 - 插件系统支持 - 自定义设备类型 - 脚本化设备行为 ## 配置文件 ### 设备配置示例 ```json { "device_id": "sensor_001", "name": "温度传感器1号", "type": "sensor", "template": "temperature_sensor", "properties": { "temperature": { "type": "float", "unit": "°C", "range": [-40, 80], "default": 25.0 }, "humidity": { "type": "float", "unit": "%", "range": [0, 100], "default": 50.0 } }, "events": { "high_temperature": { "type": "alert", "condition": "temperature > 60" } }, "services": { "calibrate": { "type": "sync", "params": ["offset"] } } } ``` ## 疑难解答 ### 常见问题 **Q: 无法连接到MQTT服务器** A: 检查以下项目: - 服务器地址和端口是否正确 - 网络连接是否正常 - 用户名密码是否正确 - 防火墙设置 **Q: 设备数据没有更新** A: 确认以下设置: - MQTT连接是否正常 - 设备是否已启动 - 主题订阅是否正确 **Q: 界面显示异常** A: 尝试以下解决方案: - 更新PyQt5到最新版本 - 检查系统分辨率设置 - 重启应用程序 ### 性能优化 1. **大量设备管理** - 适当调整数据更新频率 - 使用设备分组管理 - 监控系统资源使用 2. **网络优化** - 使用合适的QoS等级 - 避免频繁的连接断开 - 监控网络延迟 ## 开发说明 ### 项目结构 ``` mqtt-dev/ ├── main.py # 主程序入口 ├── mqtt_simulator.py # 主界面模块 ├── mqtt_client.py # MQTT客户端模块 ├── mqtt_widgets.py # 自定义组件模块 ├── device_manager.py # 设备管理模块 ├── device_dialog.py # 设备配置对话框 ├── theme_manager.py # 主题管理模块 ├── requirements.txt # 依赖包列表 └── README.md # 项目说明 ``` ### 代码规范 - 遵循PEP 8编码规范 - 使用中文注释和文档 - 模块化设计,职责清晰 - 异常处理完善 ### 扩展开发 欢迎贡献代码和提出改进建议: 1. Fork项目 2. 创建特性分支 3. 提交更改 4. 发起Pull Request ## 许可证 本项目采用MIT许可证,详见LICENSE文件。 ## 联系方式 如有问题或建议,请通过以下方式联系: - 开发团队:UKIOT - 提交Issue - 发送邮件:iot@ukiot.cn - 参与讨论 --- **MQTT设备模拟器** - 让IoT设备测试更简单、更高效!