百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

用STM32做了个电子秤,成本仅两位数,精度高!解析一下原理

myzbx 2025-05-09 20:33 47 浏览

俗话说得好!人在胖,秤在看!

所以,我想DIY一个精度高的体重秤!

并希望它不只能称体重:

还能像这样称克重(可设置KG,G,最低可称100克)……

这样一来,做甜品的时候,还能拿来应应急。

保姆级教程,记录在这里!


工程描述

这是一个基于stm32+HX711制作的智能体重秤DIY成本67元

本文将分享其开源教程,包括——功能、硬件组成、电路原理软件解析、制作注意事项。


功能说明

  • 基本的称重功能,可去皮称重。
  • 蓝牙、Wifi传输功能。
  • 能通过手机查看称重信息。
  • 存储称重信息,统计历史体重数据(手机端)。
  • 当重量小于一定值时进入待机状态。
  • 体重秤使用锂电池供电,带电池管理电路。


硬件组成

智能体重秤由这7部分硬件组成!看图更直观!

  • 主控芯片:STM32F103C8T6。
  • 电源接口:TYPE-C。
  • 按键:一个复位按键。
  • 体重测量芯片:HX711。
  • 显示接口:I2C协议的OLED显示器。
  • 调试接口:SWD下载调试接口。
  • 通信:通过蓝牙模块与手机进行通信。


电路原理解析

参考上一章节,本方案使用的HX711是一种称重传感器处理芯片,它能使用四个压力应变片构成全桥来测量体重,且精度高

而主控芯片STM32能和HX711通信,获得压力应变片的变形量并换算成重量,再用MX-01蓝牙模块与手机端进行通信

为了能更好的理解电子秤的工作原理,接下来,我们将电路拆分为8部分解析一下

1.电源电路

电源电路主要由TYPE-C接口,锂电池模块、充电电路组成。

LED2是充电指示灯,当充电完成时,LED2灯亮

TP4056是锂电池充电管理芯片。

P2是锂电池接口,采用3.7V的锂电池进行供电

2.主控电路

主控电路选择STM32F103C8T6作为主控芯片。

工作电压为2.0v~3.6v,最大时钟频率为72MHZ,有64KB的闪存存储器和20KB的SRAM,它配备了丰富的外设接口,包括多个通用定时器,通用同步/异步串行接口(USART),I2C和SPI接口,以支持多种通信和外部设备连接需求。

芯片的电源输入部分需要加入100nf电容进行电源滤波。

3.晶振电路

晶振电路使用了32.768Khz的低速晶振以及8Mhz的高速晶振。在软件配置中要将芯片的时钟输入源配置成外部输入

4.称重电路

称重电路使用HX711作为数模转换芯片。

通过数字接口(如SPI或者简化的串行接口)将模拟信号转换为数字数据,便于与微控制器通信。

压力传感器通过全桥的连接方式进行连接,并通过4根线接入到HX711芯片的E+,A+,GND,A- 接口,如图4-6所示。

5.稳压电路

稳压电路使用AMS1117作为稳压芯片,输出3.3V。

6.通信电路

智能体重秤通过蓝牙模块与手机进行通信。

其中蓝牙模块使用MA-01A,采用BLE5.2蓝牙接口,体积小连接快,具有100m+的测试通讯距离,模块发射功率为5dbm,模块通过串口与主控电路连接实现透传。

7.复位电路

按下主控的RESET,引脚被拉低,系统进入复位状态。

松开Reset按键,主控的RESET引脚恢复高电平,系统重新进行工作状态,完成复位。

8.OLED显示接口

项目采用OLED作为显示器,用来显示体重信息。

OLED显示模块通过I2C协议与主控芯片通信,分别连接主控芯片的PB6和PB7

其中PB6为时钟线,PB7为SDA信号线。


软件解析

第1小节主要解析手机端软件部分;第2-3小节主要解析嵌入式软件部分。

1.手机端软件解析

采用微信小程序设计手机端软件,可以存储称重数据,并进行数据分析。

手机小程序端主要有这四个页面

  • index页面为首页,即蓝牙连接界面,可以自动搜索附近蓝牙。
  • WeightUI页面为称重主页,可以使用归零按钮进行重量归零,类似于高精度电子秤的去皮功能。
  • analyse页面为历史数据统计页面。会显示最近10次称重的体重,并计算平均、最重、最轻体重。
  • device页面是通信调试页面,可以接收数据和自定义发动数据,如图6-3所示。

小程序使用ec-canvas控件绘制折线图,可以进行图表的动态修改,具体方式详见代码。

2.时钟配置

主控芯片使用STM32CUBE进行时钟配置。

如图5-1所示,配置过程中要注意将时钟输入源切换到外部输入,即HSE,才可以或者最高主频72Mhz。

3.核心代码解析

完整的嵌入式代码见附件,这里将对附件中的核心代码进行解释:

位于main.c中的HX711_Read(void) 函数作用:从hx711模块读取传感器的数值

位于main.c中的Get_Weight(void) 函数:

将压力传感器的数值转换成重量并储存,压力传感器的数据基本呈线性,可以直接进行线性标定,如果想要获得更高精度的测量结果,则需要使用插值标定。

OLED显示字符串代码。

OLED显示字符串和数字的方式是:使用取模软件PCtoLCD获取各个字符串的十六进制编码值,再将其写入单片机代码文件中,如图5-5所示。

本项目主要使用到的是一些字符串,也可以将二值化的图像通过取模软件进行取模并显示在OLED上。

同时,如果想要显示动画,也可以通过GIF的多张图像,用取模软件取模并放置在代码文件中。

注意事项

这里主要分享——原理图绘制、布线、调试的注意事项。

1.原理图绘制

  • 模块化电路结构,并进行合理分区
  • 没有网络的引脚要标注。
  • 要注意电源滤波电容的添加。

2.布线

  • 电源的滤波电容要尽量接近电源引脚
  • 信号线避免形成回路。
  • 蓝牙模块的天线要朝外面,并且天线下面不要铺铜。
  • 避免出现直角走线。
  • 电源走线建议使用T型连接。
  • 晶振低下最好保证净空不要走线。
  • 合理添加丝印提示。

3.调试

  • 串口的RX对应蓝牙模块的TX,TX对应蓝牙模块的RX,注意不要弄反
  • 压力传感器的连接要注意全桥的连接方式,注意顺序不要反,如果一次接四个不好测试,可以先从一个压力传感器开始测试。

参考资料:

[1]https://oshwhub.com/qgwww/zhi-neng-ti-zhong-cheng

— 完 —

嘉立创EDA·头条号

关注我,看一手优质开源项目

相关推荐

如何设计一个优秀的电子商务产品详情页

加入人人都是产品经理【起点学院】产品经理实战训练营,BAT产品总监手把手带你学产品电子商务网站的产品详情页面无疑是设计师和开发人员关注的最重要的网页之一。产品详情页面是客户作出“加入购物车”决定的页面...

怎么在JS中使用Ajax进行异步请求?

大家好,今天我来分享一项JavaScript的实战技巧,即如何在JS中使用Ajax进行异步请求,让你的网页速度瞬间提升。Ajax是一种在不刷新整个网页的情况下与服务器进行数据交互的技术,可以实现异步加...

中小企业如何组建,管理团队_中小企业应当如何开展组织结构设计变革

前言写了太多关于产品的东西觉得应该换换口味.从码农到架构师,从前端到平面再到UI、UE,最后走向了产品这条不归路,其实以前一直再给你们讲.产品经理跟项目经理区别没有特别大,两个岗位之间有很...

前端监控 SDK 开发分享_前端监控系统 开源

一、前言随着前端的发展和被重视,慢慢的行业内对于前端监控系统的重视程度也在增加。这里不对为什么需要监控再做解释。那我们先直接说说需求。对于中小型公司来说,可以直接使用三方的监控,比如自己搭建一套免费的...

Ajax 会被 fetch 取代吗?Axios 怎么办?

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!今天给大家带来的主题是ajax、fetch...

前端面试题《AJAX》_前端面试ajax考点汇总

1.什么是ajax?ajax作用是什么?AJAX=异步JavaScript和XML。AJAX是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX可以使网页实...

Ajax 详细介绍_ajax

1、ajax是什么?asynchronousjavascriptandxml:异步的javascript和xml。ajax是用来改善用户体验的一种技术,其本质是利用浏览器内置的一个特殊的...

6款可替代dreamweaver的工具_替代powerdesigner的工具

dreamweaver对一个web前端工作者来说,再熟悉不过了,像我07年接触web前端开发就是用的dreamweaver,一直用到现在,身边的朋友有跟我推荐过各种更好用的可替代dreamweaver...

我敢保证,全网没有再比这更详细的Java知识点总结了,送你啊

接下来你看到的将是全网最详细的Java知识点总结,全文分为三大部分:Java基础、Java框架、Java+云数据小编将为大家仔细讲解每大部分里面的详细知识点,别眨眼,从小白到大佬、零基础到精通,你绝...

福斯《死侍》发布新剧照 "小贱贱"韦德被改造前造型曝光

时光网讯福斯出品的科幻片《死侍》今天发布新剧照,其中一张是较为罕见的死侍在被改造之前的剧照,其余两张剧照都是死侍在执行任务中的状态。据外媒推测,片方此时发布剧照,预计是为了给不久之后影片发布首款正式预...

2021年超详细的java学习路线总结—纯干货分享

本文整理了java开发的学习路线和相关的学习资源,非常适合零基础入门java的同学,希望大家在学习的时候,能够节省时间。纯干货,良心推荐!第一阶段:Java基础重点知识点:数据类型、核心语法、面向对象...

不用海淘,真黑五来到你身边:亚马逊15件热卖爆款推荐!

Fujifilm富士instaxMini8小黄人拍立得相机(黄色/蓝色)扫二维码进入购物页面黑五是入手一个轻巧可爱的拍立得相机的好时机,此款是mini8的小黄人特别版,除了颜色涂装成小黄人...

2025 年 Python 爬虫四大前沿技术:从异步到 AI

作为互联网大厂的后端Python爬虫开发,你是否也曾遇到过这些痛点:面对海量目标URL,单线程爬虫爬取一周还没完成任务;动态渲染的SPA页面,requests库返回的全是空白代码;好不容易...

最贱超级英雄《死侍》来了!_死侍超燃

死侍Deadpool(2016)导演:蒂姆·米勒编剧:略特·里斯/保罗·沃尼克主演:瑞恩·雷诺兹/莫蕾娜·巴卡林/吉娜·卡拉诺/艾德·斯克林/T·J·米勒类型:动作/...

停止javascript的ajax请求,取消axios请求,取消reactfetch请求

一、Ajax原生里可以通过XMLHttpRequest对象上的abort方法来中断ajax。注意abort方法不能阻止向服务器发送请求,只能停止当前ajax请求。停止javascript的ajax请求...