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

猜你喜欢

转载自blog.csdn.net/qq_42250136/article/details/129182012