Arduino UNO驱动土壤湿度传感器检测
- 简介
- 运行要求
- Arduino UNO与传感器接线
- 程序展示
- 实践效果
- 总结
简介
本次使用到是这个新款土壤湿度传感器!
这款电容式土壤湿度传感器区别于市面上绝大部分的电阻式传感器,采用电容感应原理来检测土壤湿度。避免了电阻式传感器极易被腐蚀的问题,极大地延长了它的工作寿命。
运行要求
符号 | 引脚功能 |
---|---|
VCC | 电源正极 |
GND | 电源负极 |
Aout | 模拟量输出 |
工作电压: 3.3 ~ 5.5 VDC
输出电压: 0 ~ 3.0 VDC
湿度大时电压小,湿度小时电压大,可以用万用表测量确认。
接口: PH2.54-3P
尺寸: 98 x 23mm (LxW)
为方便读取,使用一块0.96的液晶显示屏,进行读取。
符号 | 引脚功能 |
---|---|
VCC | 电源正极 |
GND | 电源负极 |
SCL | 串行时钟线 |
SDA | 串行数据线 |
宽供电范围:3.3 - 5v
分辨率:128*64
通信方式:i2c
Arduino UNO与传感器接线
使用5v一组vcc和gnd,以及A4、A5一组默认的i2c引脚,给oled屏幕连接。使用3.3v和gnd一组,给土壤传感器供电,将输出的Aout引脚连接到A0模拟口上进行转化。
程序展示
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h> //1306的库文件调用
#define OLED_RESET 13 //定义复位引脚
Adafruit_SSD1306 display(OLED_RESET); //复位刷新显示
float a = 0; //定义a为浮点数,可带小数点
void setup() {
// put your setup code here, to run once:
display.begin(SSD1306_SWITCHCAPVCC,0x3C); //刷新
display.clearDisplay(); //清屏
display.setTextColor(WHITE); //字体白色
display.display(); //显示
}
void loop() {
// put your main code here, to run repeatedly:
a = analogRead(A0);
display.setTextSize(1); //字体大小为2号
display.setCursor(0,0); //字体排布在oled里面的行、列数
if (a!=0;a = a/658) { //根据实测常温状态数值会在480左右,此时的电压输出2.2v,根据0-3v的比例对应,得出a值的变化值
display.print("soil:"); //湿度字符
a = 1-a;
a = a*100; //计算
display.print(a); //显示读出值
display.println(" %RH"); //单位
display.println("come from yourcee"); //doge标
display.display();
display.clearDisplay(); //正常刷新
}else display.print("Error"); //无数值,显示错误
}
实践效果
总结
1、该实验过程,屏显数值需要推理计算,更加专业的计算方式,能够促进模块的测量效果
2、uno开发板有多个模拟量的接口 ,可以试着别的引脚定义,效果也是一样的。oled也可使用不同的库,利用汉字的说明。