项目简介
本项目将连接称重传感器(通过HX711模块)的ESP32采集的时间和重量数据流式传输到Google Sheets。最初用于模拟尿流计监测尿液流速和体积,也有更广泛应用。通过嵌入式Google App Script导入数据,同时兼顾数据收集和传输的时间平衡。
项目的主要特性和功能
- 数据采集与存储:每秒约3次收集重量和时间数据,每次读数为三次传感器读取平均值,最多支持500个带两位小数分辨率的数据点,先在内存收集存储,再突发模式发送到Google Sheets。
- 操作指示:通过ESP32模块LED灯变化指示操作状态,无需实时数据显示(可用Arduino IDE串行监视器)。
- 校准功能:内置校准函数,可在单次运行中重新校准比例因子和皮重值。
- 操作控制:用带按键功能的旋转编码器控制操作模式,如开始和停止数据收集。
- 数据输出灵活:可选择不设置Google Sheets和App Script,直接将数据发送到Arduino IDE串行监视器或其他控制台输出。
- 数据处理:Google Sheets显示时间、重量和每个数据点变化率三列数据,添加数据处理时间戳和比例因子。
安装使用步骤
硬件部分
- 准备10 kg数字称重传感器、HX711模块、KY - 040旋转编码器模块、ESP - 32S开发板、塑料外壳、两个3x3无焊面包板和电线。
- 安装称重传感器和电路,将称重传感器安装在工程木地板十字形底座,用垫片和螺丝固定;将ESP32模块适配到无焊面包板。
- 完成模块与ESP32连接,参考引脚连接表: | HX711 cell header | Wire | | --------------------- | --------- | | E+ | RED | | E- | BLACK | | A+ | WHITE | | A- | GREEN | | HX711 | ESP32 | | GND | GND | | DT | D19 | | CLK | D21 | | VCC | 3V3 | | ROTARY ENCODER ** | ESP32** | | CLK | 4 | | DT | 23 | | SW | 22 | | + | 3V3 | | GND | GND |
软件部分
- 设置Google Sheets和App Script
- 从Google账户访问Google Drive,创建新的Google Sheets。
- 为Sheet命名并复制ID。
- 点击“Extensions|Apps Script”,为App命名。
- 移除“code.gs”起始代码,将“scale_streaming.js”代码复制粘贴到“code.gs”。
- 设置时区,替换脚本第25行附近假ID为实际Google Sheet ID。
- 点击“Deploy”,选“New deployment”,设置执行权限等信息,复制部署凭证。
- 配置代码并上传
- 若只将数据发送到Arduino串行监视器或其他控制台输出,将代码中“output_type”设为“PRINT_TO_SERIAL”;若发送到Google Sheets,添加WiFi路由器SSID和密码,以及Google App Script的ID。
- 使用Arduino IDE将“scale_streaming.ino”代码加载到ESP32。
- 设备操作
- 将ESP32插入电源,按复位按钮。
- 向称重传感器秤盘添加样品架,按编码器按钮开关(不转动轴),蓝色指示灯亮开始收集数据。
- 再按编码器按钮停止收集并传输数据到Google Sheets。蓝色指示灯闪烁后稳定发光,表明ESP32尝试获取日期时间并发送数据;若快速闪烁,无法连接Google Sheets,需重复收集过程。
- 检查Google Sheets验证数据传输情况。
校准步骤
- 获取已知重量物体,用水时需知准确体积。
- 在代码编辑工具打开“scale_streaming”草图,更改“calibration_wt”变量为标准重量,保存并重新加载到ESP32。
- 启动ESP32,必要时按MCU复位按钮。
- 逆时针旋转编码器轴一格(不按按钮开关),蓝色LED闪烁表示旋转已注册。
- 按按钮开关一次(不转动轴),蓝色LED缓慢闪烁,10秒内完成皮重读数操作。
- 蓝色LED快速闪烁时,10秒内将标准重量添加到秤上。
- LED熄灭,草图准备数据采集,不要重置ESP32,以免重置比例因子。
- 按操作步骤进行重量测量。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】