简介

该传感器适用于土壤的测量与观测,5-30V宽电压供电,RS485输出,可检测土壤电导率(EC)与酸碱度(PH),响应快,输出稳定,可搭配Arduino UNO R3与TTL转485扩展板,快速搭建测试。

土壤传感器防护等级为IP68,采用黑色阻燃环氧树脂真空灌装密封,探针材质选用316型不锈钢,具有防锈防水防腐蚀、耐盐碱腐蚀、耐长期电解,受土壤含盐量影响较小,可长期埋入土壤中,适用各种土质。

土壤传感器带有电导率自动温度补偿功能,无论环境如何变化,都能确保测量的准确性,广泛适用于科学实验、节水灌溉、温室大棚、花卉蔬菜、草地牧场、土壤速测、植物培养、粮食仓储及各种颗粒物含水量和温度的测量。

土壤电导率(EC)是土壤中盐的水平(盐度)。这些参数是土壤肥力和健康的重要指标,并最终影响植物。当土壤含盐量高时,即使土壤中的水分含量很高,盐分也会使植物难以吸收水分。这种情况最终会“烧毁”植物。在土壤湿度、温度和EC水平的最佳范围内,植物在其偏好的环境中生长得最好。种植者需要这些参数的数据,并了解需要采取什么行动来确保植物健康和更高的产量。

土壤酸碱度, 又称“土壤反应”。它是土壤溶液的酸碱反应,主要取决于土壤溶液中氢离子的浓度,以PH值表示。PH值等于7的溶液为中性溶液;PH值小于7,为酸性反应;PH值大于7为碱性反应。 土壤酸碱度一般可分为以下几级:

PH值 土壤酸碱度

<4.5 极强酸性

4.5—5.5 强酸性

5.5—6.5 酸性

6.5—7.5 中性

7.5—8.5碱性

8.5—9.5 强碱性

>9.5 极强碱性

特点

技术规格

引脚示意图

标号 名称 功能描述
棕线 VCC 电源输入正极,DC5-30V供电
黑线 GND 电源负极
黄线 485-A RS485数据A线
蓝线 485-B RS485数据B线

尺寸图

尺寸图

通信协议

1、通讯基本参数

接口 编码 数据位 奇偶校验位 停止位 错误校验 波特率
RS485 8位二进制 8 1 CRC 2400bit/s、4800bit/s、9600 bit/s 可设,默认9600bit/s

2、数据帧格式定义

采用 ModBus-RTU 通讯规约,格式如下:

主机问询帧结构:

地址码 功能码 寄存器起始地址 寄存器长度 校验码低位 校验码高位
1byte 1byte 2byte 2byte 1byte 1byte

从机应答帧结构:

地址码 功能码 有效字节数 数据一区 第二数据区 第N数据区 校验码
1byte 1byte 1byte 2byte 2byte 2byte 2byte

3、通讯协议示例及解释

举例:读取EC、PH二合一设备(地址 0x01)的参数值

问询帧(16 进制):

地址码 功能码 寄存器起始地址 寄存器长度 校验码低位 校验码高位
0x01 0x03 0x00 0x00 0x00 0x04 0x44 0x09

应答帧(16 进制):

地址码 功能码 返回有效字节数 湿度值 温度值 电导率值 PH值 校验码低位 校验码高位
0x01 0x03 0x08 0x00 0x00 0x00 0x00 0x03 0xE8 0x00 0x38 0x57 0xB6

电导率计算:

PH计算:

4、寄存器地址

寄存器地址 PLC或组态地址 内容 操作 定义说明
0000H 40001(十进制) 含水率 只读 含水率实时值(扩大10倍)
0001H 40002(十进制) 温度值 只读 温度实时值(扩大10倍)
0002H 40003(十进制) 电导率 只读 电导率实时值
0003H 40004(十进制) 盐度 只读 盐度实时值
0004H 40005(十进制) 总溶解固体TDS 只读 TDS实时值
0022H 40035(十进制) 电导温度系数 读写 0-100对应0.0%-10.0% 默认0.0%
0023H 40036(十进制) 盐度系数 读写 0-100对应0.00-1.00 默认55(0.55)
0024H 40037(十进制) TDS系数 读写 0-100对应0.00-1.00 默认50(0.5)
0050H 40081(十进制) 温度校准值 读写 整数(扩大10倍)
0051H 40082(十进制) 含水率校准值 读写 整数(扩大10倍)
0052H 40083(十进制) 电导率校准值 读写 整数
07D0H 42001(十进制) 设备地址 读写 1-254(出厂默认1)
07D1H 42002(十进制) 设备波特率 读写 0代表2400 1代表4800 2代表9600

使用教程

准备

接线图

烧录代码前,请将扩展板的收发模式开关切换到AUTO,运行/编译开关切换到OFF,烧录代码后,运行/编译开关切换到ON,串口波特率选择9600

Arduino连接图

示例代码

uint8_t Com[8] = { 0x01, 0x03, 0x00, 0x00, 0x00, 0x04, 0x44, 0x09 };
float ph;
int ec;
void setup() {
  Serial.begin(9600);  //初始化串口
}
void loop() {
  readECPH();
  Serial.print("EC = ");
  Serial.print(ec, 1);
  Serial.print(" us/cm ");
  Serial.print("PH = ");
  Serial.println(ph, 1);
  delay(1000);
}
void readECPH(void) {
  uint8_t Data[12] = { 0 };
  uint8_t ch = 0;
  bool flag = 1;
  while (flag) {
    delay(100);
    Serial.write(Com, 8);
    delay(10);
    if (readN(&ch, 1) == 1) {
      if (ch == 0x01) {
        Data[0] = ch;
        if (readN(&ch, 1) == 1) {
          if (ch == 0x03) {
            Data[1] = ch;
            if (readN(&ch, 1) == 1) {
              if (ch == 0x08) {
                Data[2] = ch;
                if (readN(&Data[3], 10) == 10) {
                  if (CRC16_2(Data, 11) == (Data[11] * 256 + Data[12])) {
                    ec = Data[7] * 256 + Data[8];
                    ph = (Data[9] * 256 + Data[10]) /10.00;
                    flag = 0;
                  }
                }
              }
            }
          }
        }
      }
    }
    Serial.flush();
  }
}

uint8_t readN(uint8_t *buf, size_t len) {
  size_t offset = 0, left = len;
  int16_t Tineout = 500;
  uint8_t *buffer = buf;
  long curr = millis();
  while (left) {
    if (Serial.available()) {
      buffer[offset] = Serial.read();
      offset++;
      left--;
    }
    if (millis() - curr > Tineout) {
      break;
    }
  }
  return offset;
}

unsigned int CRC16_2(unsigned char *buf, int len) {
  unsigned int crc = 0xFFFF;
  for (int pos = 0; pos < len; pos++) {
    crc ^= (unsigned int)buf[pos];
    for (int i = 8; i != 0; i--) {
      if ((crc & 0x0001) != 0) {
        crc >>= 1;
        crc ^= 0xA001;
      } else {
        crc >>= 1;
      }
    }
  }

  crc = ((crc & 0x00ff) << 8) | ((crc & 0xff00) >> 8);
  return crc;
}

结果:将土壤传感器插入土里,则串口打印出传感器检测到的电导率值与PH值。

安装使用方法

1、速测法

选定合适的测量地点,避开石块,确保钢针不会碰到坚硬的物体,按照所需测量深度抛开表层土,保持下面土壤原有的松紧程度,紧握传感器垂直插入土壤,插入时不可左右晃动,一个测点的小范围内建议多次测量求平均值。

速测法

2、埋地测量法

垂直挖直径>20cm 的坑,在既定的深度将传感器钢针水平插入坑壁,将坑填埋严实,稳定一段时间后,即可进行连续数天,数月乃至更长时间的测量和记录。 速测法

3、注意事项

常见问题

无输出或输出错误存在可能的原因:

还有客户对此产品有任何问题,欢迎通过 qq 或者论坛联系我们! 更多问题及有趣的应用,可以访问论坛进行查阅或发帖

更多

DFRobot 商城购买链接