# !/usr/bin/env python
# coding:utf-8
__author__ = "liyanhe"
import time
import threading
import serial
from tkinter import *
import decimal,math,string
#######################################################################################################################
"""
arduino数据采集
"""
ser = serial.Serial( #下面这些参数根据情况修改
port='COM8',
baudrate=38400,
parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_TWO,
bytesize=serial.SEVENBITS)
hx711 = 0.0
tare = 0.0
data1 = 0.0
def get_data():
global scale,b
scale = 228
b = 1
global hx711,tare,data1
hx711 = ser.readline()
data1 = float(str(hx711)[2:-5])
x = data1
y = x/ scale + b - tare
data.set('%.2f'%y)
total = float(unit) * float(y)
totalPrice.set('%.2f'%total)
global timer
timer = threading.Timer(0.5,get_data)
timer.start()
timer = threading.Timer(0.5,get_data)
timer.start()
#######################################################################################################################
root = Tk()
root.title("电子秤")
#######################################################################################################################
global cuncu, display, result, fuhao
result = fuhao = None
display = StringVar()
cuncu = []
class anjianzhi:
global cuncu, display, result, fuhao
def __init__(self,anjian):
self.anjian = anjian
def jia(self):
cuncu.append(self.anjian)
display.set( ''.join(cuncu))
def clear(self):
cuncu.clear()
data.set('0')
totalPrice.set('0')
display.set('0')
global unit,tare
tare = 0
unit = 0
result = None
fuhao = None
def tare(self):
cuncu.clear()
data.set('0')
totalPrice.set('0')
display.set('0')
global tare,unit,scale,b
tare = data1/scale + b
unit = 0
def zhengfu(self):
if cuncu[0]:
if cuncu[0] == '-':
cuncu[0] = '+'
elif cuncu[0] == '+':
cuncu[0] = '-'
else:
cuncu.insert(0, '-')
display.set(''.join(cuncu))
def xiaoshudian(self):
if cuncu.count('.') >= 1:
pass
else:
if cuncu == [] :
cuncu.append('0')
cuncu.append('.')
display.set(''.join(cuncu))
print(fuhao)
print(result)
display.set(str(result))
cuncu.clear()
#######################################################################################################################
unit = 0
def get_entry():
global unit
unit = unit_price.get()
print(unit)
########################################################################################################################
'''
容器fm1
文本显示框组件
'''
fm1 = Frame(root)
display = StringVar()
totalPrice = StringVar()
data = StringVar()
Label(fm1,text = " 重量 ").grid(row = 0,column = 0,sticky = W + E)
Label(fm1,text = " 单价 ").grid(row = 1,column = 0,sticky = W + E)
Label(fm1,text = " 总价 ").grid(row = 2,column = 0,sticky = W + E)
Label(fm1,text = " g ").grid(row = 0,column = 2,sticky = W + E)
Label(fm1,text = " 元/g ").grid(row = 1,column = 2,sticky = W + E)
Label(fm1,text = " 元 ").grid(row = 2,column = 2,sticky = W + E)
weight = Entry(fm1,textvariable= data)
weight.grid(row = 0,column = 1)
unit_price = Entry(fm1,textvariable=display)
unit_price.grid(row = 1,column = 1)
total_price = Entry(fm1,textvariable = totalPrice)
total_price.grid(row = 2,column = 1)
########################################################################################################################
#######################################################################################################################
"""
容器fm2
按键组件
"""
fm2 = Frame(root)
button1 = Button(fm2,text = " 1 ",command = anjianzhi('1').jia)
button1.grid(row = 5,column = 0,sticky = N + S + W + E)
button2 = Button(fm2,text = " 2 ",command = anjianzhi('2').jia)
button2.grid(row = 5,column = 1,sticky = N + S + W + E)
button3 = Button(fm2,text = " 3 ",command = anjianzhi('3').jia)
button3.grid(row = 5,column = 2,sticky = N + S + W + E)
button4 = Button(fm2,text = " 4 ",command = anjianzhi('4').jia)
button4.grid(row = 4,column = 0,sticky = N + S + W + E)
button5 = Button(fm2,text = " 5 ",command = anjianzhi('5').jia)
button5.grid(row = 4,column = 1,sticky = N + S + W + E)
button6 = Button(fm2,text = " 6 ",command = anjianzhi('6').jia)
button6.grid(row = 4,column = 2,sticky = N + S + W + E)
button7 = Button(fm2,text = " 7 ",command = anjianzhi('7').jia)
button7.grid(row = 3,column = 0,sticky = N + S + W + E)
button8 = Button(fm2,text = " 8 ",command = anjianzhi('8').jia)
button8.grid(row = 3,column = 1,sticky = N + S + W + E)
button9 = Button(fm2,text = " 9 ",command = anjianzhi('9').jia)
button9.grid(row = 3,column = 2,sticky = N + S + W + E)
button0 = Button(fm2,text = " 0 ",command = anjianzhi('0').jia)
button0.grid(row = 6,column = 0,columnspan = 2,sticky = E + W)
buttonDot = Button(fm2,text = " . ",command = anjianzhi('.').jia)
buttonDot.grid(row = 6,column = 2,sticky = E + W)
buttonClear = Button(fm2,text = "清零",command = anjianzhi('c').clear)
buttonClear.grid(row = 3,column = 4,rowspan = 2,sticky = N + S + W + E)
buttonTare = Button(fm2,text = "去皮",command = anjianzhi('c').tare)
buttonTare.grid(row = 5,column = 4,rowspan = 2,sticky = N + S + W + E)
buttonSet = Button(fm2,text = " Enter ",command = get_entry).grid(row = 3,column = 3,rowspan = 4,sticky = N + S + W + E)
########################################################################################################################
########################################################################################################################
"""
菜单栏组件
"""
menu=Menu(root)
submenu1=Menu(menu,tearoff=0)
menu.add_cascade(label='查看',menu=submenu1)
submenu2 = Menu(menu, tearoff=0)
submenu2.add_command(label='复制')
submenu2.add_command(label='粘贴')
menu.add_cascade(label='编辑',menu=submenu2)
submenu = Menu(menu, tearoff=0)
submenu.add_command(label='查看帮助')
submenu.add_separator()
submenu.add_command(label='关于电子秤')
menu.add_cascade(label='帮助',menu=submenu)
root.config(menu=menu)
########################################################################################################################
'''
组件显示
'''
fm1.pack()
fm2.pack()
root.mainloop()
没有合适的资源?快使用搜索试试~ 我知道了~
山西省电子设计大赛-电子秤上位机Python程序及下位机arduino程序
共5个文件
py:2个
png:1个
ino:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 23 浏览量
2024-03-18
15:35:54
上传
评论
收藏 10KB ZIP 举报
温馨提示
<项目介绍> 山西省电子设计大赛-电子秤上位机Python程序及下位机arduino程序 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
资源推荐
资源详情
资源评论
收起资源包目录
Electronic-scale-master.zip (5个子文件)
Electronic-scale-master
start.bat 28B
dzc
dzc.ino 290B
dianZiCheng.py 7KB
dianZiChen_JieMian.py 7KB
电子秤上位机.png 6KB
共 5 条
- 1
资源评论
奋斗奋斗再奋斗的ajie
- 粉丝: 229
- 资源: 2104
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- OneNET云平台利用MQTT协议远程控制,ESP32
- travel 基于协同过滤算法的景点推荐系统.zip
- light room9.1.apk
- (单片机Protues入门笔记)单片机Proteus仿真软件入门笔记约80多页,内容图像并茂
- (单片机Proteus案例)基于80c51单片机的比赛计分器电路仿真实现
- 增强型51单片机(stc15系列)驱动ws2812彩灯模块库文件
- (单片机Protues案例)基于51单片机交通灯仿真实现
- 23种设计模式-C++实现.zip
- (单片机Protues案例)基于51单片机的频率计仿真实现
- (单片机Proteus案例)Proteus单片机仿真实例之键盘系列
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功