物联网AI MicroPython传感器学习 之 HX711称重传感器

学物联网,来万物简单IoT物联网!!在这里插入图片描述

一、产品简介

下图是一款量程为5kg的称重传感器,采用悬臂梁方式安装。传感器主体结构是一个开孔金属条,金属条上下表面各贴有两个应变电阻,当金属条受力发生变形时时,应变电阻的阻值也会随之发生变化。电子秤的原理便是根据测量到的电阻变化前后电压差信号进而计算出重物的质量。
image.png
引脚定义:

  • VCC:接 3.3V
  • DT:接 GPIO
  • SCK:接 GPIO
  • GND:接 GND

二、技术参数:

  • 量程:0~5Kg
  • 灵敏度:1.0 mv/v
  • 精度:24位ADC采样精度

三、软件接口

EleScale(clkDev, dataDev, capValue) - 创建EleScale驱动对象

  • 函数原型:

scaleObj = EleScale(clkDev, dataDev, capValue)

  • 参数说明:
参数类型说明
clkDevGPIO传入Pin对象
dataDevGPIO传入Pin对象
capValuefloat测量系数,理论值为429.5,测量值除以capValue的结果为被测物体的质量(克)。由于不同的传感器其特性曲线并非完全相同,因此在测量时可能会出现一定的偏差,建议在初次使用时使用标准砝码对电子秤做一次校准,如果测量值偏大则适当增大capValue,反之,如果测量值偏小就适当调小capValue,直到测量值与砝码重量直接的偏差在误差允许范围为止。
  • 返回值:
    EleScale对象创建成功,返回EleScale对象;EleScale对象创建失败,抛出Exception
  • 示例代码:
from machine import Pin
import elescaleclkDev = Pin(16, Pin.OUT , Pin.PULL_DOWN)
dataDev = Pin(17, Pin.IN , Pin.PULL_UP)scaleObj = elescale.EleScale(clkDev, dataDev, 430.0)
print("elescale inited!")
  • 输出:
elescale inited!

getWeight() - 获取被测物体重量

  • 函数功能:
    获取被测物体的重量(克)
  • 函数原型:

EleScale.getWeight()

  • 参数说明:
  • 返回值:
返回值类型说明
valuefloat返回被测物体的重量,单位为克。
  • 示例:
from machine import Pin
import elescale
import utimeclkDev = Pin(16, Pin.OUT , Pin.PULL_DOWN)
dataDev = Pin(17, Pin.IN , Pin.PULL_UP)scaleObj = elescale.EleScale(clkDev, dataDev, 430.0)
print("elescale inited!")
while True:weight = scaleObj.getWeight()print("%.2f g"%weight)utime.sleep(1)
  • 输出:
elescale Init!
0.04 g
0.00 g
0.00 g

四、接口案例

  • 代码:
from machine import Pin
import elescale
import utimeclkDev = Pin(16, Pin.OUT , Pin.PULL_DOWN)
dataDev = Pin(17, Pin.IN , Pin.PULL_UP)scaleObj = elescale.EleScale(clkDev, dataDev, 430.0)
print("elescale inited!")while True:weight = scaleObj.getWeight()print("%.2f g"%weight)utime.sleep(1)
  • 输出:
elescale Init!
0.04 g
0.00 g
0.00 g

五、工作原理

电子秤结构示意图如下:
image.png
四个电阻组成一个惠斯通电桥,当空载时电桥处于一个平衡状态,即输出电压E0=输入电压Ex,当托盘上放有重物时力F>0,此时金属条会发生一定程度的形变,应变电阻R1~R4阻值发生变化,对应的输出电压E0与输出电压Ex之间就会有一个压差。
image.png
此称重传感器采用24位高精度的A/D转换器芯片hx711,该芯片专为高精度电子称而设计,具有两路模拟通道输入,内部集成128倍增益可编程放大器,是一款理想的高精度测量模块。hx711模块接线图如下所示:
image.png
被测物体重量计算公式:
m = A D C o u t × M 128 × 2 24 × 1 m v / v = 1 429.5 A D C o u t m = \frac{ADC_{out} \times M}{128 \times 2^{24} \times 1mv/v} = \frac{1}{429.5} ADC_{out} m=128×224×1mv/vADCout×M=429.51ADCout
其中:

  • m为被测物体重量,单位g
  • M为量程此处等于5000,单位g
  • 为HX711输出的ADC采样数据
  • 128表示HX711内部放大增益
  • 2 24 2^{24} 224表示24位ADC采样
  • 表示电子秤灵敏度,即1kg重物可使测量电路上产生1mv的电压输出

注:这里的429.5即为capValue参数

参考文献及购买链接

  • [1] 购买链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/103703.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# 中大小端Endian

大小端可以找下资料很多,都是文字的。我每次遇到大小端问题就会搜资料,总是记不住。我自己用用图片记录一下,以备直观的从内存中看到。 在C#中可以用BitConverter.IsLittleEndian来查询。 几个数字在内存中 我们来观察一下,我的…

数据仓库Hive(林子雨课程慕课)

文章目录 9.数据仓库Hive9.1 数据仓库的概念9.2 Hive简介9.3 SQL语句转换为MapReduce作业的基本原理9.4 Impla9.4.1 Impala简介9.4.2 Impala系统架构9.4.3 Impala查询执行过程9.4.4 Impala与Hive的比较 9.5 Hive的安装和基本操作9.5.1 Hive安装9.5.2 Hive基本操作 9.数据仓库Hi…

【【萌新的SOC学习之SD卡读写TXT文本实验】】

萌新的SOC学习之SD卡读写TXT文本实验 SD卡 Secure Digital Card SD卡的引脚定义 我们会用的数据脚就这几个 对于我们FPGA 其实更会倾向于选择 SPI的功能 而TF卡相对于SD卡的区别在于 SD卡只有一个电源地 这里相对于原本的SPI多了一个CD引脚 CD信号是相当于一个卡检测…

某医疗机构:建立S-SDLC安全开发流程,保障医疗前沿科技应用高质量发展

某医疗机构是头部资本集团旗下专注大健康领域战略性投资与运营的实业公司,市场规模超300亿。该医疗机构已完成数字赋能,形成了标准化、专业化、数字化的疾病和健康管理体系,将进一步规划战略方向,为人工智能纳米技术、高温超导、生…

虹科科技 | 探索CAN通信世界:PCAN-Explorer 6软件的功能与应用

CAN(Controller Area Network)总线是一种广泛应用于汽车和工业领域的通信协议,用于实时数据传输和设备之间的通信。而虹科的PCAN-Explorer 6软件是一款功能强大的CAN总线分析工具,为开发人员提供了丰富的功能和灵活性。本文将重点…

PBA.客户需求分析 需求管理

一、客户需求分析 1 需求的三个层次: Requirement/Wants/Pains 大部分人认为,产品满足不了客户需要,是因为客户告知的需求是错误的,这听起来有一些道理,却没有任何意义。不同角色对于需求的理解是不一样的。在客户的需求和厂家的…

风电光伏混合储能功率小波包分解、平抑前后波动性分析、容量配置、频谱分析、并网功率波动分析(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

UE4和C++ 开发-UE4怎么删除C++类

1 关闭visual stdio,关闭UE4引擎。 2 打开你的项目文件夹。找到你要删除的.h,.cpp文件删除。 3、删除Binaries文件夹。 4 右击.uproiect文件,点击Generate Visual Studio project files. 5 双击.uproiect文件,忽略警告打开就看到已经删除了想要删除的C类…

Python【控制台输出案例】

要求&#xff1a;在控制台上上输入如下案例 *********** *********** *********** 代码1如下&#xff1a; layer int(input("请输入你要打印的行数&#xff1a;")) index 1 while index < layer:print("*"*10)index 1 ps:为了确保index 1语句在循…

安全的Sui Move是Web3大规模采用之路的基石

没有信任&#xff0c;就没有Web3的大规模采用。还有其他重要障碍阻碍了首个十亿用户的到来&#xff0c;包括令人困惑的用户体验、复杂的身份验证模式以及不确定的监管体系&#xff0c;但所有障碍中&#xff0c;要数大多数人对区块链技术持怀疑和不信任态度最严重。 对于许多人…

【动态规划】123. 买卖股票的最佳时机 III、188. 买卖股票的最佳时机 IV

提示&#xff1a;努力生活&#xff0c;开心、快乐的一天 文章目录 123. 买卖股票的最佳时机 III&#x1f4a1;解题思路&#x1f914;遇到的问题&#x1f4bb;代码实现&#x1f3af;题目总结 188. 买卖股票的最佳时机 IV&#x1f4a1;解题思路&#x1f914;遇到的问题&#x1f4…

docker搭建rocketmq集群

单机搭建 1 拉取rocketMq镜像 docker pull rocketmqinc/rocketmq:4.3.2 2 创建挂在目录 mkdir -p /mydata/rocketmq/data/namesrv/logs /mydata/rocketmq/data/namesrv/store mkdir -p /mydata/rocketmq/data/broker/logs /mydata/rocketmq/data/broker/store mkd…

flink1.15 savepoint 超时报错 java.util.concurrent.TimeoutException

savepoint命令 flink savepoint e04813d4e7480c526912eb4d32bba510 hdfs://flink/flink/migration/savepoint56650 -Dyarn.application.id=application_1683808492336_1222报错内容 org.apache.flink.util.FlinkException: Triggering a savepoint for the job e04813d4e7480…

Java开发-参数校验@NotEmpty、@NotBlank、@NotNull

大家好&#xff0c;我是小资。今天给大家说下参数校验。 标题中说的这三个注解所在的包路径为import javax.validation.constraints.*; 千万不要导错包哦&#xff0c;因为他们在好多包里都存在。开发只需引入Spring-web依赖就可以使用了。轻轻松松干掉多余的if-else。 下面我…

Springboot 订餐管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot 订餐管理系统是一套完善的信息系统&#xff0c;结合springboot框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有 完整的源代码和数据库&…

基于图像识别的迁移学习之一

案例分析 加载数据部分同上一个案例&#xff0c;只需把数据输入到预训练的VGG-16或者ResNet50中。VGG-16的网络结构为右侧图绿色栏所示&#xff0c;其中block1中有2个包含64个卷积核的卷积层&#xff0c;block2包含2个128个卷积核的卷积层&#xff0c;block3有3个包含256个卷积…

ESP32网络开发实例-从LittleFS加载Web页面文件

从LittleFS加载Web页面文件 文章目录 从LittleFS加载Web页面文件1、应用介绍2、软件准备3、硬件准备4、Web页面代码与LittleFS文件系统上传4.1 Web页面代码实现4.2 Web页面代码上传5、Web服务器代码实现在文中,将展示如何构建一个 Web 服务器,为存储在 ESP32 的LittleFS文件系…

LeetCode142:环形链表II

给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数…

Linux知识点 -- 高级IO(一)

Linux知识点 – 高级IO&#xff08;一&#xff09; 文章目录 Linux知识点 -- 高级IO&#xff08;一&#xff09;一、5种IO模型1.IO再理解2.阻塞IO3.非阻塞轮询式IO4.信号驱动IO5.IO多路转接6.异步IO7.同步通信vs异步通信8.阻塞vs非阻塞 二、非阻塞IO1.设置非阻塞的方法2.非阻塞…

44.ES

一、ES。 &#xff08;1&#xff09;es概念。 &#xff08;1.1&#xff09;什么是es。 &#xff08;1.2&#xff09;es的发展。 es是基于lucene写的。 &#xff08;1.3&#xff09;总结。 es是基于lucene写的。 &#xff08;2&#xff09;倒排索引。 &#xff08;3&#xf…