37种传感器(二十五)土壤湿度传感器模块+Stduino Nano&UNO" X5 i- j5 j! U
& g! c+ F: u# k" e
+ K X I9 D) _$ h6 K
关键词: 51;stm32;arduino;stduino单片机;stduino UNO&Nano;土壤湿度传感器模块 # X a9 B4 M1 K6 ^- F0 W
说明:
, ^0 V7 _3 d- N" B土壤湿度传感器能够监测土壤的含水量。土壤湿度传感器包含两部分(如下图所示)。当土壤较为干燥时,土壤电阻趋于无穷大,而当土壤较为湿润时,电阻率将迅速降低。土壤湿度传感器依据土壤电阻的变化输出不同模拟信号值,来监测湿度的变化。同时可以通过电位器(图上蓝色部分)来设置土壤湿度阈值:当超过某一特定值时,输出高电平,反之输出低电平(数字信号)。
0 ^" `1 q% J6 v7 a7 r- A, ? 在《工程勘察》2019年的一项研究中指出(孙旭,杨庆义,高兰,李振宇.湿度变化对土壤电阻率的影响研究[J].工程勘察,2019,47(01):35-40.),土壤电阻率与含水量之间的关系可以较好的拟合成指数函数关系,即
$ T9 |4 Q- u6 M9 H4 Q; _: b 两个金属片之间的距离约为1.5cm,面积为0.5cm×4.5cm,串联电阻为10KΩ。由该模块的电路,可知模拟信号输出值(AO)与电阻率之间的关系为:
h" M* E: R8 u( F: Z9 c' t) ^8 m) H 联立可得:
(以上公式的基础,建立在模拟量读取12位数据,即AO范围为0~4095,如果是10位读取,则应当将以上公式中的4096改为1024,重新计算。) 值得提出的是,该函数两端值明显不符合常识,不能很好拟合,无实际意义。得出的土壤含水量也只有是定性价值,仅供学习。
, A+ E) a# k6 |! s" i* f 实验目的:利用土壤湿度传感器,监测土壤含水量。 & k8 z& w% a# v0 D3 t
器材:Stduino UNO/Nano;杜邦线;土壤湿度监测模块 + I, L; x5 N5 j: p7 o
电路连接:
1 Y, q8 t2 p+ g; z* i* D
$ U5 h6 k8 c) ]: I+ Y! s代码展示: - <font face="Arial" size="3">#define Moisture A0 //引脚A0
* h: Y( B! y9 _ - #define DO 7 //引脚D7
3 T8 `% l4 A# X* S X - float value = .000;. }& |" }: t* L6 Z# @) I! ^
+ A7 X- t, W" w* K w! O- void setup()
# z3 J6 g( f5 ?$ F, h! n$ }8 o! H - {
T9 e" d7 w: h7 m* Z$ k - // put your setup code here, to run once:
% t: j8 o4 t! f3 ]$ h% p0 U+ J - pinMode(Moisture, INPUT_ANALOG);//定义A0为输入模式9 J# D b0 m$ i2 j8 j
- pinMode(DO, INPUT);
9 N1 s7 ^. w5 O9 ^! Q$ R - Serial.begin(9600);
0 g' \/ w2 d5 g - }: @5 G" o5 R1 N! ?# F- R' p' G
- void loop(): L+ O1 _. X. N7 P
- </font><font face="Arial" size="3">{
& Q9 x+ B! `, K! ?5 J+ O - // put your main code here, to run repeatedly:9 W8 n3 ~+ I5 t; A+ e
- //串口返回测量数据
8 l& _. N6 z. h4 z# U5 f - value = (6619.136/analogRead(Moisture))-2.203;! z# c6 _1 m! w# N/ i6 W* N
- Serial.print("当前含水量");+ N- w# R' ^2 i# g& \7 }( _- y
- Serial.print(value);3 l0 _+ x& |/ a! e& h' r& R
- Serial.print("|DO=");1 s* m R% | S
- Serial.println(digitalRead(DO));//读取DO的数值; }) f {* u7 U' q
- delay(1000);0 O& E3 _" c2 ^7 o" _* _6 V
- }</font>
复制代码
% x3 w/ R3 _: e; y) `/ _! r3 X2 m( |! ^" `$ N9 K3 V
实验效果:
& N. [# q' R- {8 M+ I7 Z) L
: c) Q9 O* n: p P9 O6 b
2 ]' B C7 F. X- X6 D
Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,目前已经支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。
( G! |- G: `+ NIDE当前支持的功能有: - GDB调试
- 封装库下载安装
- 代码自动补全提示
- 中英文模式
- UTF-8\GBK编码格式
- 代码快速格式化
- SWD\串口程序下载&调试(已验证)
- DFU程序下载方式(待验证)
- USB HID程序下载方式(待验证)
- maple DFU程序下载方式(待验证)
- maple DFU2程序下载方式(待验证)
- MassStorage程序下载方式(待验证)
4 M. f N. O$ T/ B4 S0 N& K; o- q8 B' f, w! z0 l
" N1 x- j& j. y, D
更多功能细节请前往www.stduino.com进行了解 已经支持的芯片&板型列表: - Stduino UNO&Nano
- Nucleo 144 boards
- Nucleo 64 boards
- Nucleo 32 boards
- Discovery boards
- Eval boards
- STM32MP1 series coprocessor boards
- Generic STM32F0 boards
- Generic STM32F1 boards
- Generic STM32F3 boards
- Generic STM32F4 boards
- Generic STM32H7 boards
- Generic STM32L0 boards
- 3D printer boards
- LoRa boards
- Electronic Speed Controller boards
- Generic flight controllers
- Garatronics boards
- Midatronics boards
, @1 N5 T* ~. |
' f* r) S) c4 Q# t1 a: t$ G: v5 r7 v
更多功能集成正在进行中~
$ j* w7 X X5 A+ H! p
: Z9 H3 C- `+ j) K+ ] |