使用FC-28传感器构建一个基于Arduino的简易土壤湿度监测系统
土壤湿度监测是许多植物监测和自动灌溉系统中的重要组成部分。土壤湿度传感器能让控制器(如Arduino)检测土壤中含水量,并据此决定是否需要浇水。
在本项目中,使用FC-28土壤湿度传感器配合Arduino Uno来监测土壤湿度。该传感器提供模拟和数字两种输出,既可用于连续测量土壤湿度,也可用于简单的干湿检测。
模拟输出可通过Arduino的ADC读取,并转换为近似的湿度百分比;而数字输出则利用内置的比较器和电位器,在土壤湿度超过设定阈值时输出高电平或低电平信号。
同样的基本原理也可应用于自动灌溉系统、智能种植箱、温室监控以及植物养护系统等场景。
FC-28土壤湿度传感器的工作原理是什么?
FC-28是一种电阻式土壤湿度传感器。其感应探头由两个暴露在土壤中的导电表面组成。
这两个导体之间的电阻会随土壤中水分含量的变化而改变。当土壤含水量增加时,其导电性通常提高,导致探头电极间的电阻降低;当土壤变干时,导电性下降,电阻随之增大。
传感器模块利用这种电气特性的变化来生成输出信号,该信号可由微控制器进行监测。
FC-28 传感器的典型规格如下:
•输入电压:3.3–5 V
•输出电压:0–4.2 V
•输入电流:35 mA
•输出信号:模拟和数字
需要注意的是,FC-28 提供的是土壤湿度的相对指示值。模拟读数并不直接代表实验室测定的体积含水量。土壤类型、盐度、温度、探头位置以及校准等因素都可能影响测量结果。
FC-28 硬件概览
FC-28 土壤湿度传感器主要由两部分组成:感应探头和传感器模块。
感应探头
感应探头是一种叉形元件,带有两个暴露的导体。它直接插入土壤中,用于测量土壤的湿度状况。
两根导体之间的电阻会随着土壤中水分含量的变化而改变。探头配有两根引脚,通过跳线连接到传感器模块。
传感器模块
传感器模块在感应探头与Arduino之间起到接口作用,包含生成模拟和数字输出所需的电路。
模块中的主要组件之一是LM393比较器集成电路。
比较器的正输入端连接到探头的正极,负输入端则连接到由内置电位器产生的参考电压。
模块还配备了一个10 kΩ的电位器,用于调节数字输出的灵敏度或切换阈值。旋转电位器可改变比较器所使用的参考电压。
模块包含两个指示LED灯:电源指示灯在传感器通电时亮起;输出指示灯显示比较器输出的状态。
常用的土壤湿度传感器主要有两种类型:电阻式和电容式。FC-28 属于电阻式类别。
FC-28 引脚定义
FC-28 传感器模块通常有四个引脚:
•VCC:电源引脚,可连接至合适的 3.3 V 或 5 V 电源。
•GND:地线,应连接到 Arduino 的 GND 引脚。
•DO(数字输出):该引脚根据内置电位器设置的湿度阈值,提供数字高电平或低电平输出。在典型配置中,高电平表示土壤湿度较低,低电平表示土壤湿度已达到设定阈值。
•AO(模拟输出):该引脚提供随传感器状态变化的可变模拟电压,可连接至 Arduino 的模拟输入端口。
传感器模块电路
FC-28 接口板的主要有源元件是 LM393 比较器。
比较器将来自土壤传感电路的电压与电位器设定的参考电压进行比较,通过这种比较来决定数字输出的状态。
当土壤湿润时,比较器正输入端的电压会低于负输入端的电压。因此,比较器输出变为低电平,输出LED灯亮。
当土壤干燥时,正输入端的电压会高于负输入端的电压,输出保持高电平,输出LED灯熄灭。
可通过内置的电位器来调整精确的切换点。
模拟与数字测量
FC-28 的一个实用功能是同时提供模拟和数字输出。
当应用需要更多关于湿度水平的信息时,模拟输出非常有用。Arduino 可通过其其中一个模拟输入引脚读取电压,并在 Arduino Uno 上获得 0 到 1023 之间的 ADC 值。
然后可将原始 ADC 值映射为近似的湿度百分比。但 ADC 读数与实际含水量之间的关系并非恒定,因此需要进行校准才能获得有意义的结果。
当仅需基于阈值做出决策时,数字输出则更为实用。Arduino 不需要处理持续变化的数值,只需判断传感器输出是高电平还是低电平即可。
这使得数字模式适用于仅需判断土壤是否足够湿润或过于干燥的应用场景。
土壤湿度传感器校准
使用 FC-28 时,校准非常重要,因为其输出取决于被测土壤的特性。
在进行数字操作时,可先将探头放入干燥土壤中,并调整内置的电位器,直到输出达到期望的切换点。然后将探头放入潮湿土壤中再次检查输出。逐步调整电位器,直至传感器能可靠地在选定的干湿状态之间切换。
同样的校准方法也可应用于模拟测量。无需依赖固定的 ADC 值,而是记录传感器在已知干湿条件下的输出值,并将这些读数作为 Arduino 程序中的校准参考范围。
例如,Arduino 的 ADC 提供从 0 到 1023 的读数。这些数值可通过实验测定的干湿参考读数进行映射,从而获得一个近似的百分比。
由于不同土壤类型具有不同的电学特性,因此在一种土壤上进行的校准可能无法在另一种土壤上得到准确结果。
FC-28 与 Arduino Uno 的连接
FC-28 可以通过模拟或数字模式连接到 Arduino Uno。
在模拟模式下,连接方式如下:
•VCC → Arduino 5V
•GND → Arduino GND
•AO → Arduino A0
可连接一个 16×2 的 I2C LCD 显示计算出的土壤湿度百分比:
•LCD VCC → Arduino 5V
•LCD GND → Arduino GND
•LCD SDA → Arduino A4
•LCD SCL → Arduino A5
在数字模式下,传感器的数字输出可按以下方式连接:
•VCC → Arduino 5V
•GND → Arduino GND
•DO → Arduino 数字引脚 2
Arduino Uno 的 A4 和 A5 引脚分别用于标准 I2C 的 SDA 和 SCL 连接。
读取模拟输出
Arduino Uno 配备一个 10 位 ADC,可将施加在模拟输入端的电压转换为 0 到 1023 之间的数值。
当 FC-28 的 AO 引脚连接到 A0 时,Arduino 可定期读取该值。
简化计算可表示为:
实际的校准值应通过实验确定。例如,传感器可在干燥土壤和湿润土壤中进行测量,这两个读数可用作百分比计算的上下限。
所得结果随后可显示在16×2 I2C LCD上,或由Arduino用于进一步的控制逻辑。
数字输出操作
数字输出由LM393比较器及电位器产生的参考电压控制。
当传感器电压超过设定阈值时,比较器会改变DO引脚的状态。
这使得FC-28能够作为简单的湿度阈值检测器工作。例如,基于Arduino的灌溉控制器可以监测DO信号,并在土壤过于干燥时启动水泵。
开关行为取决于模块的电路配置和电位器设置,因此在校准过程中应验证实际的高/低电平状态。
应用程序
FC-28 可用于多种基于 Arduino 的项目,包括:
•自动灌溉系统
•植物浇水系统
•智能花园监测
•温室监测
•土壤湿度报警
•植物养护系统
•农业原型设计
•基于物联网的土壤监测
对于自动灌溉系统,Arduino 可通过合适的继电器或 MOSFET 驱动器来监测土壤湿度并控制水泵。
水泵应配备独立且额定功率合适的电源,不应直接使用 Arduino 的 GPIO 引脚为水泵供电。
实际限制
尽管 FC-28 价格低廉且接口简单,但其电阻式传感方法存在一些局限性。
暴露在潮湿土壤和电流中的电极会逐渐发生腐蚀,从而影响传感器的长期性能。
此外,读数还可能因土壤成分、温度、盐度、探头深度以及探头与土壤之间的物理接触情况而有所变化。
对于需要长期运行的应用,可考虑采用电容式土壤湿度传感器作为替代方案,因为它通过测量电容的变化,而无需依赖暴露电极的直接导电测量。
结论
FC-28土壤湿度传感器通过Arduino Uno提供了一个简单的接口,用于监测土壤状况。其模拟输出可用于测量相对湿度,而数字输出则可基于阈值检测土壤的干湿状态。
该传感器的四个主要接口引脚——VCC、GND、AO和DO——便于直接集成到Arduino项目中。经过适当的校准,模拟输出可转换为近似的湿度百分比,并通过16×2 I2C LCD显示屏进行显示。
本项目也为开发更先进的植物监测和灌溉系统提供了良好的起点。
本文编译自hackster.io





