极简129行代码的M5Stack(core Esp32)电子秤micropython含视频-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 22206|回复: 13

[项目] 极简129行代码的M5Stack(core Esp32)电子秤micropython含视频

[复制链接]
发表于 2019-3-24 23:55 | 显示全部楼层 |阅读模式
本帖最后由 沧海笑1122 于 2019-4-8 22:48 编辑

M5Stack(core Esp32)电子秤(micropython)

【项目基本情况】
   这个帖子曾经整理并且发表在esp32/esp8266区,用这样一个小玩具参加第六届比赛,也是为了能够引起更多人对M5Stack以及micropython的关注,抛砖引玉。
     这个小玩具源于我在2014年做的一个电子秤,移植到M5以及micropython是2018年4~5月间的事,一直没有整理分享。春节后有点点时间,进行了一番整理,希望与使用M5Stack的玩家一起分享。回馈M5Stack的开源、分享和宽容。
    本玩具将M5stack与称重传感器和HX711 AD转换模块结合,做了一个基于esp32和micropython的小小电子秤。一共129行代码,非常适合上手体验,相信我,你肯定行的,一起试试吧。
   主要功能:
去皮功能,称重功能以及精度校准功能和电子秤关机功能。
   假设:
假设读到此文的玩家您,有一点单片机esp32的开发基础,知道烧写固件,知道基本接线规则(能留意到vcc的电压以及正负极不要接错),如果不知道也没关系,有一台能上网的手机或pc,乐于百度,bing和正确提问。那么这个小玩具就适合您。



什么是M5Stack?
M5stack是国人创客团队一款基于eps32的创客平台,一个5*5见方的盒子上,集成了esp32,三只自定义按钮、一块TFT彩屏、喇叭、TF读写槽、电源管理以及锂电池。外壳是开模的,精度很高。玩家不需要再自己搭建一些外设,就可以专注于创客开发。引出了大量IO口。
难能可贵的是M5stack一开始就重视生态圈建设,推出大量周边,提供了很强的拓展能力。
【硬件准备】
  
序号
  
功能
型号
备注
1
主控
M5stack
内核esp32
2
称重传感器
750g微型称重传感器
  

电阻桥式


3
AD转换模块
hx711
24位ad芯片
4
秤盘
/
根据一个旧的usbhub改制
5
线材
杜邦线+USB母
热缩管若干
【软件准备】(固件、代码、hx711库文件均打包附后,几个小工具自行百度吧)
  
序号
  
功能
型号
备注
1
固件
m5stack-20180516-v0.4.0.bin
离线版micropython  cloud固件
2
esptool
2.6
烧写固件程序
3
upycraft
0.30
Dfrobot开发的开源micropython IDE,界面友好,玩家可以根据实际情况选择
4
uPyLoader
0.1.3
重要的mpy传送工具,方便快捷,本例用于传送图片文件
5
HX711库文件
1.0.1
Pypi.org,开源mpy库,支持去皮、校准
【开始一起玩吧】
Step1:准备硬件连接
硬件连接只有四根线,以下是对应关系,注意电压不要弄错了。
  
  
M5Stack
HX-711
1
I05
DO
2
I02
CK
3
3V3
VCC
4
GND
GND

Step2:制作称重托盘(本例的秤盘,我没有新制作,使用了2014年项目的秤盘,接下来有时间我也会重新切割一个新秤盘)
热熔胶+螺丝刀,拆解USBHUB后,将内部掏空,装入称重传感器以及HX711。
硬件部分就这么多,很简单吧,注意,托盘一定要保证称重传感器水平,称重传感器的原理就是形变传感器,所以保持水平、固定都很重要。
Step3:为M5STACK烧写固件
我手里的M5是最早的一批,记得是2017-08-30,默认固件是arduino,出厂test也是基于arduino的。现在我们开始烧写micropython固件。
我用的是M5官方提供的云固件(本地离线版),版本号是m5stack-20180516-v0.4.0.bin,这也是目前最新版,里面对M5的按钮、LCD做了很好的封装,使用起来很方便。就没有必要下载其他micropython固件,然后自己做轮子,去折腾LCD和按钮的驱动,专注于应用就好了。
烧写一共两步骤
一是擦除。
[mw_shl_code=bash,true]Python esptool.py --port COM3 erase_flash[/mw_shl_code]
备注:这里的COM3是我PC上识别出来的M5的通信口,因人而异啊。
二是烧写固件。
[mw_shl_code=bash,true] Python esptool.py --chip esp32 --port COM3--baud 460800 write_flash 0x1000 m5stack-20180516-v0.4.0.bin[/mw_shl_code]
备注:我们预设玩家都很熟悉这些基础知识,如果想了解固件烧写,请自行百度。

Step4:开始编程
基本流程:
代码很简单,只有129行,实际上就是对三个按钮的编程:
A是去皮功能
B是校准功能
C是电子秤关电源功能
LOGO是M5STACK的,jpg格式显示,开机会有一个画面,然后循环侦测三个按钮陷阱。没有就好好干活,称重。
备注:
代码中已经做了详细的注释,就不再多说。
设置了一个correction.txt用来放置校准系数,每次开机自动读取,一旦校准后,新结果写入。Esp32的空间足够大,用一个text文本文件存很合适啦。校准用的是两个砝码(100g,200g)进行了一个线性校准。比较简单。
为什么要校准?此贴不再多说,玩家也可以百度,我在2014年在极客工坊写过一篇帖子,有详细介绍。极客工坊的电子秤案例
游客,如果您要查看本帖隐藏内容请回复

Step5:所有的活儿干完了,现在看看效果
电子秤嘛,称重精度最重要,我们用了一个100g砝码,看看精度还可以,再看看200g,有一点波动(约0.2g左右),可以了,做厨房秤都够了,咱们不用秤珠宝。

【结语】
感谢M5Stack推出这样棒的平台,玩家不用造轮子,关注于应用即可。
感谢arduino.cn给我们一个开放包容的交流环境。
感谢hx711库的作者,https://github.com/SergeyPiskunov/micropython-hx711如果觉得好,请大家点一颗星吧。我们都是开源的受益者。
感谢极客工坊shenshuiyu玩家,是她整理的算法帮助我完成了2014年第一个版本的电子秤,包括她对电子秤的理解以及基础知识的普及。这个小玩具就是站在2014版的基础上。
至于那一版,已经是一个实用器了,几年来,我用它大约烤制了100个面包。。。
享受创客带给我们的好奇、波折以及收获。生活是无数因缘和合而成,珍惜遇到的每件事、每个人。开心每一天。
沧海抱拳。
【附件】代码、固件以及hx711库。
m5stack.ipg    logo文件
hx711.py       hx711库文件
hx711_0505a.py 电子秤代码文件,如果要让它在m5stack自动运行,将其改为main.py
cort.txt       校准系数文件,自行校准后,新结果会自动存入
-------------------以上四个文件都需要传送到m5stack中

m5stack-20180516-v0.4.0.bin  mpy固件,需要烧写,详细见本帖子


m5stack-20180516-v0.4.0.bin 请玩家去m5stack的github.com下载,本站附件尺寸有限制。




发表于 2019-4-7 23:41 | 显示全部楼层
补充下演示视频哈~
 楼主| 发表于 2019-4-8 22:45 | 显示全部楼层
本帖最后由 沧海笑1122 于 2019-4-8 22:47 编辑
syl312 发表于 2019-4-7 23:41
补充下演示视频哈~

正文已经补充视频。

发表于 2019-6-1 21:00 | 显示全部楼层
很好的列子 学习了
发表于 2019-10-5 13:01 | 显示全部楼层
沧海笑这个名字也非常好,我经常看电视回忆金庸老先生,特别是岳不群那为君子说的天下第一,谁敢杀我时
发表于 2019-10-14 20:38 | 显示全部楼层
很好 !!!!值学习!!!!!!
发表于 2020-2-19 20:44 | 显示全部楼层
称重传感器以及HX711 长啥样子的 没看到 现在 找不到了,什么 电子秤都适用吗
 楼主| 发表于 2020-2-19 20:47 | 显示全部楼层
genvex 发表于 2020-2-19 20:44
称重传感器以及HX711 长啥样子的 没看到 现在 找不到了,什么 电子秤都适用吗 ...

上某宝试试,那就是一个学习电子的实物wiki啊。
发表于 2020-2-20 21:39 | 显示全部楼层
学习一下沧海老师的教程。
 楼主| 发表于 2020-2-21 14:53 | 显示全部楼层
topdog 发表于 2020-2-20 21:39
学习一下沧海老师的教程。

请多指教
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-27 23:46 , Processed in 0.102932 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表