当前位置: 首页 > news >正文

用MicroPython给ESP32做个智能厨房秤:HX711传感器+OLED显示完整教程

用MicroPython给ESP32做个智能厨房秤:HX711传感器+OLED显示完整教程

厨房秤是烘焙爱好者和健康饮食追求者的必备工具,但市面上大多数产品功能单一。本文将带你用ESP32开发板、HX711称重传感器和OLED显示屏,打造一个智能厨房秤。这个项目不仅能实时显示重量,还能通过Wi-Fi记录数据,甚至未来可以接入智能家居系统。

1. 硬件准备与连接

1.1 所需材料清单

制作智能厨房秤需要以下核心组件:

  • ESP32开发板:推荐使用ESP32-WROOM-32,性价比高且社区支持完善
  • HX711称重传感器模块:24位高精度ADC,专为电子秤设计
  • 5kg悬臂梁式称重传感器:注意选择防水型以适应厨房环境
  • 0.96寸OLED显示屏:SSD1306驱动,I2C接口
  • 面包板与杜邦线:用于原型搭建
  • 3D打印外壳(可选):保护电路并提升美观度

提示:购买HX711模块时,注意选择带镀金引脚的产品,长期使用更可靠。

1.2 硬件连接图

各模块连接方式如下表所示:

组件ESP32引脚连接说明
HX711 DTGPIO 23数据线
HX711 SCKGPIO 22时钟线
OLED SDAGPIO 21I2C数据线
OLED SCLGPIO 19I2C时钟线
称重传感器HX711红(E+)、黑(E-)、白(A+)绿(A-)
# 快速验证连接是否正确 from machine import Pin, I2C i2c = I2C(scl=Pin(19), sda=Pin(21)) print("找到的I2C设备:", i2c.scan()) # 应显示[0x3c]对应OLED地址

2. MicroPython环境配置

2.1 固件刷写与驱动安装

首先需要为ESP32刷写MicroPython固件:

  1. 下载最新MicroPython固件(推荐v1.20或更高版本)
  2. 使用esptool工具刷写:
    esptool.py --chip esp32 --port /dev/ttyUSB0 write_flash -z 0x1000 esp32-20230426-v1.20.0.bin
  3. 安装ampy工具用于文件传输:
    pip install adafruit-ampy

2.2 必要库文件上传

项目需要两个关键驱动库:

  1. HX711驱动:修改自openhx711的MicroPython实现
  2. SSD1306 OLED驱动:MicroPython官方示例库

将以下文件上传到ESP32:

  • hx711.py
  • ssd1306.py
  • font.py(可选,用于自定义显示字体)
# 库文件检查示例 import hx711 import ssd1306 print("HX711版本:", hx711.__version__)

3. 核心功能实现

3.1 称重传感器校准

HX711需要校准才能获得准确读数。准备一个500g标准砝码按以下步骤操作:

  1. 空载时读取原始值作为零点
  2. 放置已知重量的砝码获取比例系数
  3. 计算线性关系公式:weight = (raw_value - offset) / scale
# 校准代码示例 from hx711 import HX711 hx = HX711(dout=23, pd_sck=22) hx.tare() # 设置当前为零点 input("放置500g砝码后按回车...") hx.set_scale(hx.read_average(10)/500.0) # 计算比例系数 # 保存校准参数到文件 with open("calib.txt", "w") as f: f.write(f"{hx.get_offset()},{hx.get_scale()}")

3.2 OLED显示实现

OLED屏可显示重量、单位切换和电池状态等信息:

def update_display(weight, unit='g'): oled.fill(0) oled.text("智能厨房秤", 15, 0) oled.text(f"{weight:.1f}{unit}", 30, 25) oled.text("BAT: 78%", 70, 50) oled.show()

3.3 单位切换与去皮功能

添加两个按钮实现实用功能:

  • 按钮A:单位切换(g/oz/ml)
  • 按钮B:去皮功能(归零)
btn_a = Pin(15, Pin.IN, Pin.PULL_UP) btn_b = Pin(4, Pin.IN, Pin.PULL_UP) current_unit = 'g' while True: if not btn_a.value(): # 单位切换 current_unit = 'oz' if current_unit == 'g' else 'ml' if current_unit == 'oz' else 'g' if not btn_b.value(): # 去皮 hx.tare()

4. 进阶功能扩展

4.1 WiFi数据记录

通过MQTT协议将称重数据发送到服务器:

import network import umqtt.simple def connect_wifi(): sta_if = network.WLAN(network.STA_IF) sta_if.active(True) sta_if.connect('SSID', 'password') def send_data(weight): client = umqtt.simple.MQTTClient("kitchen_scale", "mqtt.server.com") client.connect() client.publish(b"kitchen/weight", str(weight))

4.2 低功耗优化

通过深度睡眠延长电池续航:

  1. 修改ESP32唤醒源为外部触发
  2. 添加加速度计检测称重板震动
  3. 无操作10分钟后进入深度睡眠
# 深度睡眠配置 import esp32 from machine import deepsleep wake_pin = Pin(14, Pin.IN, Pin.PULL_UP) esp32.wake_on_ext0(pin = wake_pin, level = esp32.WAKEUP_ALL_LOW) if no_activity_time > 600: # 10分钟无操作 deepsleep()

4.3 外壳设计与制作

使用FreeCAD设计3D打印外壳时注意:

  • 称重传感器固定位置要预留应变空间
  • 按钮位置符合人体工学
  • 电池仓设计便于更换

注意:打印材料建议选择食品级PLA,避免厨房高温导致变形。

http://www.jsqmd.com/news/693344/

相关文章:

  • 生产PVC白卡制造商推荐
  • 单卡RTX 3090也能玩转BEVFusion?手把手教你用nuscenes-mini数据集进行训练与可视化
  • 告别数据焦虑:用Python和PyTorch玩转Few-Shot目标检测,10张图训练一个模型
  • 2026年吉林旅游大巴车出租与企业班车包车完全指南:德威、鸿祥、龙宇深度横评 - 年度推荐企业名录
  • 2026年吉林大巴车出租与企业通勤班车完整选购指南 - 年度推荐企业名录
  • 2026 年 AI 数据部署优质服务商盘点:知识库部署厂商、Deepseek 服务商、企业智能 BI 私有化部署厂商全覆盖 - 品牌2026
  • 全志H313/H616编译实战:从源码到烧录,手把手教你生成定制固件
  • 【新手攻略】2026年OpenClaw/Hermes Agent京东云4分钟快速集成方法
  • 零基础掌握roop-unleashed:AI换脸视频制作的终极指南
  • 深圳全居邦防水工程:南山区屋面防水价格多少 - LYL仔仔
  • 搜维尔科技:使用MANUS手套捕捉电影动画中富有表现力的手部动作
  • 手把手教你用闲置电脑+CentOS7+Sakura FRP,零成本搭建个人网站(保姆级避坑指南)
  • ScottPlot图表控件进阶:除了XY轴缩放,这3个隐藏配置让你的WinForm数据可视化更专业
  • 2026年液体硬化剂厂家推荐排行榜:渗透型/高渗透/防尘/密封/耐磨地坪等多类型液体硬化剂优质品牌! - 速递信息
  • 从π到Ω:解锁技术文档与学术写作中的数学符号高效应用指南
  • 【超全步骤】2026年Hermes Agent/OpenClaw阿里云7分钟简易集成指南
  • 从科研数据到发表级图表:手把手教你用Python Matplotlib定制contourf填充图(附完整代码)
  • 2026年AI影视创作平台,优质AI影视创作工具精选推荐 - 品牌2026
  • 3种革命性方法:在Windows上无缝安装Android应用的新体验
  • 【新手必备】2026年OpenClaw/Hermes Agent京东云10分钟保姆级集成流程
  • 收藏!小白程序员快速入门大模型:学习清单与核心原理解析
  • 2026年3月避雷针型号齐全制造厂家,角钢电力铁塔/箱变钢结构基础平台/独立避雷针/电力角钢铁塔,避雷针加工定制厂家电话 - 品牌推荐师
  • scikit-learn中机器学习模型过拟合诊断与解决方案
  • 医用/大型ivd纯化水设备怎么选?品牌推荐与选购要点 - 品牌推荐大师
  • 别再手动敲命令了!用Docker容器化部署K8s高可用负载均衡(Haproxy+Keepalived)
  • 手把手教你定位Jetson设备树文档:SPI/I2C等外设配置属性去哪查?
  • GLM-4.1V-9B-Base作品集:面向开发者的技术文档截图理解与要点提炼
  • 从旅行商问题到排班优化:量子退火算法中的约束条件实战指南
  • 用E4A中文编程,30分钟搞定一个能远程控制STM32的安卓APP(基于OneNET MQTT)
  • 国内热门的苏州软装定制公司找哪家 - 小张小张111