为了方便给冬季大棚里养护的植物浇水,我准备建立一个系统以备不时之需。
思考再三后,我的结论是准备自己做一个传感器,因为对于我的植物浇水项目(即将到来),我需要几个传感器用于几个植物。
我选择ESP32作为微控制器,因为它具有多个12位ADC输入,并且能够以比ArduinoUno等更高的频率生成PWM信号。在这个项目中,将为每个传感器生成一个600kHz的信号。
该传感器由广泛使用的简单低成本材料制成,可用作电容式湿度传感器。
第1步:制作湿度传感器
DIY传感器由简单的材料制成:
一些音频线
两个火锅叉
接线端子
塑料座椅腿套
硅胶膏
销从火锅叉上切下,镀铬有助于避免腐蚀。带有接线端子的结构可以轻松地将铜电缆线连接到镀铬引脚。销(不弯曲)便于插入植物的土壤中。
作为测量水分含量的指标,我正在重复使用为我之前的项目开发的水位指示器:
第4步:电子设置
在面包板设置中,我使用了ESP32s(节点MCU)。这种选择的原因如介绍中所述。
我的计划是扩展这个设置,使其具有制作完整的植物浇水系统的功能,并具有在线监测和警告功能。(ESP32板载WiFi和蓝牙)。
电路图(用Fritzing制作)如下:
传感器电路图如下:
面包板上的实际设置如下所示:
ESP32由USB端口提供5V电源,并且板载3、3V稳压器。一个输出GPIO引脚通过10KOhm电阻连接到湿度传感器的一侧,并在5次测量期间(持续5秒)向传感器发送600kHz信号。ESP32(12位ADC)的一个输入引脚通过二极管和R/C网络(1MOhm和1uF)连接。传感器的另一条腿连接到GND。
传感器仅在测量期间通电,以避免对镀铬笔产生电解影响。
在我的实验中,我通过将传感器放入水中(最低测量值)和露天(最高值)来确定传感器的最小值和最大值。将传感器放入花盆中会产生介于最小值和最大值之间的中间值,具体取决于土壤湿度水平。中间值的比例似乎是相当线性的。
第3步:制作软件
ArduinoSketch中的循环函数很简单,只包含调用2个函数:
测量之间的1秒延迟仅用于实验和演示目的。在实际应用中,这种频率会低得多(通常每天几次,取决于植物的口渴程度)
ARDUINOIDE的绘图监视器以及串行监视器在实验过程中非常有用。绘图监视器图的视图如下所示:
plotmonitor上的读数显示由12位ADC测量的值。ESP32的完整3.3V刻度除以4096,即:每步0.8mV。
使用以下代码测量水分含量:
此后根据上表确定平均值所在的括号,并在湿度指示器上用颜色指示湿度水平,这要归功于《Adafruit_NeoPixel.h》库:
要通过USB端口将草图下载到ESP32,需要按住Boot按钮。
这里还没有内容,您有什么问题吗?