Skip to content

多通道温度巡检仪的人机交互界面 查看实时温度变化曲线,设备管理,在数据库中查询历史温度数据

Notifications You must be signed in to change notification settings

ZRUN258/TempGUI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📡 ESP32 多通道温度监控系统(上位机 GUI)

基于 PyQt6 + PyQtGraph 的深色科技风上位机 GUI 支持实时温度曲线、历史查询、MQTT 自动配置下发、SQLite 数据存储等功能。


🌟 功能特性

🔥 1. MQTT 实时数据接收

  • 订阅:
    • /temp(温度上报)
    • /firstConnect(设备首次上线)
  • 新设备上线后可自动提示配置。

🗄 2. 数据入库(SQLite)

每条温度数据均按以下格式写入本地数据库:

字段 说明
mac 设备 MAC 地址
ts_ms 时间戳(毫秒)
channel 温度通道号(1~16)
value 对应通道温度值

数据库文件:temps_data.db


📈 3. 实时曲线(PyQtGraph)

  • 主页面展示选中设备的多通道实时曲线
  • 自定义 X 轴:显示分钟:秒.毫秒
  • 支持多通道颜色区分
  • 实时窗口长度:30 秒

🕒 4. 历史数据窗口

点击设备可打开历史曲线窗口,可选查询区间:

  • 最近 30 秒
  • 最近 1 分钟
  • 最近 5 分钟
  • 最近 10 分钟

支持多通道叠加绘图。


⚙️ 5. 设备配置管理

  • 每个设备均可修改并下发配置:
    • channels
    • samplingPeriod
  • 下发主题:/config/<mac>
  • 配置会本地保存到 devices.config 并在程序启动时自动重新下发

🚀 6. 内置 Mosquitto 管理器

程序会尝试自动启动本地 Mosquitto:

  • 默认配置路径:~/config/mosquitto.conf
  • 若不存在,会尝试用默认参数启动 mosquitto

🏗 项目结构

├── main.py              # 主程序
├── temps_data.db        # SQLite 数据库(自动生成)
├── devices.config       # 设备配置保存文件(自动生成)
└── README.md

📦 安装依赖

确保已安装 Python 3.8+。

pip install PyQt6 pyqtgraph paho-mqtt

(建议使用虚拟环境)


▶️ 运行方法

python main.py

程序启动后:

  1. 会尝试自动启动 Mosquitto
  2. 自动连接 localhost:1884
  3. 开始监听温度数据
  4. 新设备上线会弹出配置窗口
  5. 点击左侧设备列表即可显示实时曲线

📝 MQTT 数据格式说明

设备发送 /temp 消息格式:

{
  "time": "2025-01-01 22:10:30.123",
  "mac": "AA:BB:CC:DD:EE:FF",
  "temp1": 23.5,
  "temp2": 24.2,
  ...
}

设备首次上线会发送至 /firstConnect

AA:BB:CC:DD:EE:FF

上位机下发配置(主题 /config/<mac>):

{
  "channels": 16,
  "samplingPeriod": 1000
}

📌 注意事项

  • sqlite 数据库会不断增大,需定期清理或压缩
  • 若 Mosquitto 已被其他服务占用,请修改 MQTT_PORT
  • 若使用树莓派作为服务器,请确认 MQTT 配置路径
  • PyQtGraph 绘图依赖于 GUI 环境,Linux 服务器需安装 X11 才能运行

About

多通道温度巡检仪的人机交互界面 查看实时温度变化曲线,设备管理,在数据库中查询历史温度数据

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages