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也可使用不同的库,利用汉字的说明。







![CSS字体样式(font)[详细]](https://img-blog.csdnimg.cn/13aef95f583a487bb1e7596a85db308b.png)











