# 电子秤记录 **Repository Path**: by-mx/electronic-scale ## Basic Information - **Project Name**: 电子秤记录 - **Description**: 电子从串口通讯,电子秤记录 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-28 - **Last Updated**: 2026-05-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 残银靶称重监控系统 ## 界面预览 ``` ┌─────────────────────────────────────────────────────────────────┐ │ ⚖️ 残银靶称重监控系统 │ ├────────────────────────────────────┬────────────────────────────┤ │ 串口: [COM3 ▼] 波特率: [9600 ▼] │ 今日统计 │ │ [连接] │ 称重次数: 40 对 │ ├────────────────────────────────────┴────────────────────────────┤ │ 称重数据 │ │ │ │ ┌──────────┐ │ │ │ 2266.1 │ ← 大字体数字显示 │ │ └──────────┘ │ │ g │ │ ✓ 稳定: 226.6g │ │ │ │ [📋 确认称重] [🖨️ 测试打印] │ ├────────────────────────────────────────────────────────────────┤ │ 记录查询 │ │ [今日记录] [最近50条] [导出CSV] │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ 序号 时间 重量 状态 │ │ │ ├─────────────────────────────────────────────────────────┤ │ │ │ #0040 16:45:30 226.6g ✓ │ │ │ │ #0039 16:44:15 225.8g ✓ │ │ │ │ #0038 16:43:02 227.1g ✓ │ │ │ │ ... │ │ │ └─────────────────────────────────────────────────────────┘ │ ├─────────────────────────────────────────────────────────────────┤ │ 就绪 │ └─────────────────────────────────────────────────────────────────┘ ``` ## 功能特性 | 功能 | 说明 | |------|------| | 串口连接 | 自动检测可用串口,支持9600/4800/19200波特率 | | 重量解析 | 自动解析 2262 → 226.2g 格式 | | 稳定检测 | 3秒内数据稳定后显示"✓稳定" | | 自动打印 | 称重完成自动打印ZPL标签 | | 记录查询 | 今日/最近50条/导出CSV | | 实时刷新 | 每5秒自动刷新统计数据 | ## 运行 ```bash pip install pyserial pywin32 customtkinter tkcalendar python main-v3.py ``` ## 电子秤数据格式 参考 `串口测试.py`,数据格式为 4 位数字: - 原始数据: `2262` → 解析为 `226.2g` ## 数据库 - SQLite: `scale_data.db` - 导出CSV: `export_YYYYMMDD_HHMMSS.csv` --- ## Windows 打包指南 ### 前置要求 1. 安装 Python 3.8+ 2. 安装打包工具 PyInstaller ```bash pip install pyinstaller Pillow pyserial pywin32 customtkinter tkcalendar ``` --- ### 快速打包(无图标) ```bash pyinstaller --onefile --windowed main-v3.py ``` - `--onefile`: 打包成单个exe文件 - `--windowed`: 无控制台窗口(GUI程序) 打包完成后,exe文件在 `dist` 目录下。 --- ### 打包带图标(推荐) #### 步骤1:创建图标文件 如果没有图标文件,可以用在线工具生成: - https://www.favicon.cc/ - https://convertio.co/png-ico/ 也可以用Python代码生成一个简单图标: ```python # generate_icon.py - 运行此脚本生成图标 from PIL import Image, ImageDraw # 创建64x64的图标 img = Image.new('RGB', (64, 64), color='#113eb9') draw = ImageDraw.Draw(img) # 画一个天平图案 draw.rectangle([15, 20, 49, 44], outline='white', width=3) # 秤盘 draw.line([32, 20, 32, 10], fill='white', width=3) # 支柱 draw.ellipse([20, 4, 44, 28], outline='white', width=3) # 表盘 img.save('icon.ico', format='ICO', sizes=[(16,16), (32,32), (48,48), (64,64)]) print("图标已生成: icon.ico") ``` > 需要安装 Pillow: `pip install Pillow` #### 步骤2:打包命令 ```bash pyinstaller --onefile --windowed --icon=icon.ico --name="仓库称重监控系统" main-v3.py ``` #### 步骤3:参数说明 | 参数 | 说明 | |------|------| | `--onefile` | 打包成单个exe文件 | | `--windowed` | 无控制台窗口(GUI程序需要) | | `--icon=图标.ico` | 设置exe图标 | | `--name=程序名` | 生成的exe文件名 | --- ### 使用一键打包脚本 双击 `build.bat` 即可自动打包: ```batch @echo off chcp 65001 >nul echo ============================================ echo 仓库称重监控系统 - 一键打包工具 echo ============================================ echo. REM 安装依赖 echo [1/3] 检查并安装依赖... pip install pyinstaller Pillow pyserial pywin32 -q 2>nul REM 生成图标 echo [2/3] 生成图标... python -c " from PIL import Image, ImageDraw img = Image.new('RGB', (64, 64), color='#113eb9') draw = ImageDraw.Draw(img) draw.rectangle([15, 20, 49, 44], outline='white', width=3) draw.line([32, 20, 32, 10], fill='white', width=3) draw.ellipse([20, 4, 44, 28], outline='white', width=3) img.save('icon.ico', format='ICO', sizes=[(16,16), (32,32), (48,48), (64,64)]) " 2>nul REM 打包 echo [3/3] 开始打包... pyinstaller --onefile --windowed --icon=icon.ico --name="仓库称重监控系统" main-v3.py echo. echo ============================================ echo 打包完成! echo exe文件在 dist 目录下 echo ============================================ pause ``` --- ### 虚拟环境打包(推荐) #### 创建虚拟环境 ```batch # 32位虚拟环境 "C:\Users\Administrator\AppData\Local\Programs\Python\Python311-32\python.exe" -m venv venv32 venv32\Scripts\activate pip install pyinstaller Pillow pyserial pywin32 customtkinter tkcalendar # 64位虚拟环境 python -m venv venv64 venv64\Scripts\activate pip install pyinstaller Pillow pyserial pywin32 customtkinter tkcalendar ``` #### 修改 build.bat 将 `VENV_DIR` 改为你的虚拟环境目录名(如 `venv32` 或 `venv64`),脚本会自动检测位数并命名输出文件。 --- ### 打包后文件结构 ``` 电子秤作业流/ ├── main-v3.py # 源代码 ├── icon.ico # 图标文件 ├── scale_data.db # 数据库文件(运行时生成) ├── venv32/ # 虚拟环境(可选) ├── dist/ # 打包输出目录 │ └── 仓库称重监控系统_32bit.exe # 最终可执行文件 └── build/ # 临时构建文件(可删除) ``` --- ## 注意事项 ### 1. 依赖文件 打包后的exe运行时需要以下文件在同一目录: - `scale_data.db` - 数据库文件 ### 2. Windows 7 兼容 如果需要在 Windows 7 上运行,PyInstaller 4.x 版本支持较好: ```bash pip install pyinstaller==4.10 ``` ### 3. 管理员权限 如果程序需要访问串口,可能需要以管理员身份运行。 ### 4. 杀毒软件提示 打包的exe可能被部分杀毒软件误报,添加信任即可。 --- ## 常见问题 ### Q: 打包后运行报错"找不到模块" A: 添加 `--hidden-import=模块名`,例如: ```bash pyinstaller --onefile --windowed --hidden-import=win32print main-v3.py ``` ### Q: 图标不显示 A: 确保图标是256x256以下的标准ICO格式,PNG格式不能用。 ### Q: 打包后文件太大 A: 使用 `--upx-compress` 参数压缩,或使用虚拟环境只安装必要依赖。