你可能会想,一个没有明显机械运动的秤是否可能存在。事实上,如果通过应变计(DMS)读取,铝块的极微小弯曲就足以以高精度测量质量。
在本教程中,我们使用称重传感器(附带应变片)和24位ADC HX711读取测量信号。ESP8266或ESP32(以下简称“ESP”)运行MicroPython来处理数据并在OLED屏幕上显示重量。
在上面的测压元件中,铝块被拧在右边的底板上,而左边则是称重平台。即使是非常轻的物体(比如0.9克的一张纸)也会在金属中引起微小但可测量的变形。
应变片是在塑料基板上的极薄导电轨道。当测压元件弯曲时,这些轨迹变得稍微更长和更窄,导致电阻的微小变化。在桥接电路中,这个微小的信号被HX711放大并数字化。
HX711模块放大这个非常小的电信号,并使用24位ADC进行转换,从而实现非常精细的测量。
程序和固件
•flash和编程ESP32/ESP8266通过thony IDE或µPyCraft。
•MicroPython固件:最新版本(例如v1.19.1版本)。
这个项目的MicroPython模块:
•ssd1306.py - OLED显示器的硬件驱动程序
•OLED显示的API
•用于数字显示的大字体集
•HX711 .py -用于HX711的API
•Scale.py -主要应用程序代码
自动启动和测试
要使程序在启动时自动运行,请将其重命名为boot.py并将其上传到ESP。在重置时,它将自动运行。
Thonny允许您手动运行脚本(例如,按F5)进行即时调试- MicroPython在传统Arduino工作流上的关键优势。
下面是与ESP8266和ESP32使用相同HX711模块的接线图。确保使用不干扰ESP启动过程的GPIO引脚,并正确连接I2C总线(ESP8266: GPIO4=SDA, GPIO5=SCL;Esp32: gpio21 = sda, gpio22 = scl)。
HX711 MicroPython模块
HX711不是I2C传感器;它通过输出和DPCLK引脚串行通信。每个24位转换之后是1-3位选择通道(A/B)和增益设置。
文件HX711 .py包含HX711类和一个自定义异常,如果模块没有响应。在下面的示例代码片段中,您可以看到如何逐位请求数据:
首先传输MSB(最高有效位)。channel参数选择使用哪个通道(A/B)和增益因子。
使用称重传感器HX711和ESP (ESP8266或ESP32),您可以构建非常精确的秤。MicroPython使读取和显示测量结果变得简单,即使实际的金属变形是在原子尺度上。HX711仍然能够产生稳定的、可重复的读数。