ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

IoT-For-Beginners 土壤湿度传感器校准实战:重力法(Gravimetric)测量与标定曲线绘制

IoT-For-Beginners 土壤湿度传感器校准实战:重力法(Gravimetric)测量与标定曲线绘制 IoT-For-Beginners 土壤湿度传感器校准实战重力法Gravimetric测量与标定曲线绘制【免费下载链接】IoT-For-Beginners12 Weeks, 24 Lessons, IoT for All!项目地址: https://gitcode.com/GitHub_Trending/io/IoT-For-Beginners导读在 IoT-For-Beginners 课程的《检测土壤湿度》一课中土壤湿度传感器返回的是 0–1023 的原始 ADC 读数而不是真实的土壤含水量百分比。本指南基于该课程作业 assignment.md系统讲解如何通过重力法Gravimetric Soil MoistureGSM完成传感器标定从采样、烘干、称重、计算到绘制土壤湿度 %–传感器读数标定曲线并反查任意读数的实际湿度。读完本指南你将掌握一套不依赖昂贵实验室设备、可在家或教室复现的传感器标定流程并理解电容式与电阻式传感器的电压-湿度特性差异。为什么要标定土壤湿度传感器土壤湿度传感器测量的本质是土壤的电阻或电容这类电学属性而非直接的含水量。以本课程使用的 Seeed Grove 电容式土壤湿度传感器为例它通过检测土壤的电容来推断湿度土壤越湿电压越低。传感器输出的原始值如 615、498、388本身无法告诉农民这块地目前是 7.6% 还是 30% 的含水量必须经过标定才能把读数映射为有物理意义的湿度值。课程 README 明确指出见 Sensor Calibration 一节重力法Gravimetric单位重量土壤中的水分重量即千克水 / 千克干土容积法Volumetric单位体积土壤中的水分体积即立方米水 / 立方米干土。重力法不需要测量体积、只需要称重是家庭和教室场景下最容易实现的标定基准也是本作业采用的方法。其核心思路是用实验室级方法烘干称重算出若干份土壤样本的真实湿度再与传感器对同一样本的读数一一对应拟合出一条标定曲线。传感器读数从哪来三种硬件平台的读取方式执行标定前你需要先获得传感器读数。本课提供了三条硬件路径见 README 的 Task 部分三者读取原理一致都是通过 10 位 ADC 把模拟电压转换成 1–1023 的整数。Raspberry PiGrove Base Hat 电容式传感器参考 pi-soil-moisture.md传感器接到 Grove Base Hat 的A0模拟口由板载 10 位 ADC 完成模数转换再经 I²C 传给 Pi。完整示例代码位于 code/pi/soil-moisture-sensor/app.pyimport time from grove.adc import ADC adc ADC() while True: soil_moisture adc.read(0) print(Soil moisture:, soil_moisture) time.sleep(10)adc.read(0)读取 0 号即 A0模拟通道循环每 10 秒采样一次。文档给出的真实运行输出为piraspberrypi:~/soil-moisture-sensor $ python3 app.py Soil moisture: 615 Soil moisture: 612 Soil moisture: 498 Soil moisture: 493 Soil moisture: 490 Soil Moisture: 388可以看到加水后读数从 615 一路降到 388——电容式传感器湿度升高、电压下降正是下文要利用的对应关系。Wio TerminalArduino 框架参考 wio-terminal-soil-moisture.md传感器接到 Wio Terminal 右侧 Grove 模拟/数字复用口使用 Arduino 内置analogRead即可无需额外库。完整代码位于 code/wio-terminal/soil-moisture-sensor/src/main.cpp#include Arduino.h void setup() { pinMode(A0, INPUT); } void loop() { int soil_moisture analogRead(A0); Serial.print(Soil Moisture: ); Serial.println(soil_moisture); delay(5000); }对应工程配置 platformio.ini 使用atmelsam平台、seeed_wio_terminal板卡与 Arduino 框架。注意仓库中示例代码的循环延时为 5 秒文档正文描述为 10 秒两者皆可延时长短不影响标定精度只影响采样频率。虚拟设备CounterFit 仿真没有实体硬件时可用 CounterFit 仿真。参考 virtual-device-soil-moisture.md在 CounterFit Web 应用中创建Soil Moisture传感器Pin 设为 0然后在代码中通过 shim 库读取完整示例位于 code/virtual-device/soil-moisture-sensor/app.pyfrom counterfit_connection import CounterFitConnection CounterFitConnection.init(127.0.0.1, 5000) import time from counterfit_shims_grove.adc import ADC adc ADC() while True: soil_moisture adc.read(0) print(Soil moisture:, soil_moisture) time.sleep(10)虚拟传感器可以手动设置Value或勾选Random并设置 Min/Max 让每次读取返回区间内随机值。注意虚拟设备的读数由你手工设定无法用于真实标定实验虚拟路径主要用于验证代码逻辑与流程熟悉。重力法标定的完整操作步骤完成传感器读数采集后即可开始本作业assignment.md的核心对不同湿度的土壤样本重复以下流程多次积累至少 3 组传感器读数 真实湿度数据对。第 1 步记录传感器读数把插入土壤的传感器读数记录下来。注意每次实验应使用湿度不同的土壤以获得覆盖全量程的散点。第 2 步取样并称湿重取一份土壤样本用电子秤称重并记录湿重W 湿。第 3 步烘干土壤将土壤彻底烘干。文档推荐两种方式最佳烤箱 110°C230°F烘数小时替代置于阳光下或温暖干燥处直至土壤完全干燥、呈粉末状松散状态。 实验室中为追求最高精度会用烘箱干燥 48–72 小时。如果学校有干燥烘箱可延长烘干时间——烘干时间越长样本越干结果越准确。第 4 步称干重烘干后再次称重记录干重W 干。 如果在烤箱中烘干务必等土壤冷却后再称重否则热空气浮力会造成称重误差。第 5 步计算重力法土壤湿度重力法土壤湿度计算公式为其中W 湿湿土重量W 干干土重量文档给出的完整算例W 湿 212gW 干 197g212 − 197 15蒸发掉的水分重量15 ÷ 197 0.0760.076 × 100 7.6%即该样本的重力法土壤湿度为 7.6%。第 6 步重复采样至少积累 3 组数据用不同含水量的土壤如刚浇水的湿土、自然风干的土、彻底烘干的土重复第 1–5 步。至少收集 3 组传感器读数 ↔ 重力法湿度%数据对数据点越多、覆盖湿度范围越广标定曲线越可靠。绘制标定曲线并反查湿度拿到至少 3 组数据后以传感器读数为横轴、**重力法土壤湿度 %**为纵轴绘制散点图对散点拟合一条最佳拟合直线line of best fit之后任意时刻只需读取传感器数值即可在直线上反查出对应的真实土壤湿度。这正是课程 README 中示意图所展示的原理见 Sensor Calibration关于拟合方向README 给出了关键提示 对于电阻式土壤湿度传感器土壤湿度升高时电压升高曲线向上倾斜对于电容式传感器湿度升高时电压下降曲线向下倾斜。本课使用的 Grove 电容式传感器属于后者因此你的标定散点以 ADC 原始读数为横轴应为下降趋势。理解这一方向性差异有助于你判断实验数据是否合理例如加水后读数应当变小。作业评估标准Rubric本作业的完成质量按以下标准评估见 assignment.md标准优秀Exemplary合格Adequate需改进Needs Improvement标定数据收集收集至少 3 个标定样本收集至少 2 个标定样本仅收集 1 个标定样本完成标定读数成功绘制标定曲线读取传感器值并换算为重力法湿度成功绘制标定曲线无法绘制曲线可以对照该表自查想拿到优秀评级至少准备 3 份不同湿度的土壤样本并完成从读图到换算湿度的完整链路。实测要点与常见坑结合源码与文档整理以下实操要点传感器插入深度Grove 传感器上有最高水位线白色横线插入土壤时应恰好到达该线、不要越过保证每次实验的探测位置一致减少读数波动见 pi-soil-moisture.md。读数与取样需同步传感器读数代表此刻土壤的状态因此应在同一湿度状态下先读传感器、再取样称重避免取完样土壤状态改变导致数据对错位。称重精度重力法误差主要来自称重环节建议使用能读到 1g最好 0.1g的电子秤烘干后务必冷却再称。标定曲线的适用范围土壤湿度传感器的读数同时受土壤类型影响README 指出电容/电阻随湿度和土质共同变化因此标定曲线严格来说只对标定时使用的同一种土壤有效。换土或换地块后应重新标定。总结通过本作业你完成了土壤湿度传感器从原始 ADC 读数到物理湿度值的关键一步用烘干称重的重力法得到样本真实湿度用传感器读数与之一一对应拟合出可反查的标定曲线。这一少量实验室测量 IoT 设备快速监测的组合正是文档所强调的农业落地模式——农民只需做几次标定测量之后即可依靠 IoT 设备持续、低成本地监控土壤湿度。相关代码与文档可在仓库的 2-farm/lessons/2-detect-soil-moisture 目录下继续深入阅读。【免费下载链接】IoT-For-Beginners12 Weeks, 24 Lessons, IoT for All!项目地址: https://gitcode.com/GitHub_Trending/io/IoT-For-Beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表