Gravity: 雨量传感器

简介

DFRobot推出的雨量传感器采用了翻斗式记录原理,传感器内部无任何电子元件,并且底部镂空设计能够使雨水自动排出,具有稳定性好、灵敏度高等优势。用户可轻松获取输出单位为毫米的雨量值和系统工作时间。

Gravity: 雨量传感器具有I2C和UART两种数据输出类型,与microbit、Arduino、ESP32、树莓派等主控兼容,通过简单易用的Gravity接口我们提供的示例代码,您可以快速搭建一个雨量监测系统。无论您是气象站、环境检测站还是智慧农场,DFRobot雨量传感器都能为您提供高质量的雨量数据。

注意:信号转接板不防水,禁止将信号转接板暴露在雨中。

技术规格

引脚说明

标号 名称 功能描述
1 D/T I2C数据线SDA/UART数据传输-TX
2 C/R I2C时钟线SCL/UART数据接收-RX
3 - GND电源负极
4 + 电源正极

Arduino使用教程

将程序下载到UNO,打开串口监视器查看累计雨量。

注意:信号转接板不防水,禁止将信号转接板暴露在雨中。

软硬件准备

使用I2C读取传感器数据

接线图

样例代码


#include "DFRobot_RainfallSensor.h"

//#define MODE_UART
#ifdef MODE_UART //串口通信

   #include "SoftwareSerial.h"
   SoftwareSerial mySerial(/*rx =*/10, /*tx =*/11);
   DFRobot_RainfallSensor_UART Sensor(/*Stream *=*/&mySerial);

#else //I2C通信
  DFRobot_RainfallSensor_I2C Sensor(&Wire);
#endif

void setup(void)
{
#ifdef MODE_UART
    mySerial.begin(9600);
#endif 
  Serial.begin(115200);

  delay(1000);
  while(!Sensor.begin()){
    Serial.println("Sensor init err!!!");
    delay(1000);
  }
  Serial.print("vid:\t");
  Serial.println(Sensor.vid,HEX);
  Serial.print("pid:\t");
  Serial.println(Sensor.pid,HEX);
  Serial.print("Version:\t");
  Serial.println(Sensor.getFirmwareVersion());
  //设置雨量累加值,单位为mm
  //Sensor.setRainAccumulatedValue(0.2794);
}

void loop()
{
  //获取传感器运行时间,单位 小时
  Serial.print("Sensor WorkingTime:\t");
  Serial.print(Sensor.getSensorWorkingTime());
  Serial.println(" H");
  //获取传感器运行时间内的累计雨量
  Serial.print("Rainfall:\t");
  Serial.println(Sensor.getRainfall());
  //获取系统1小时内的累计雨量(函数参数可选1-24)
  Serial.print("1 Hour Rainfall:\t");
  Serial.print(Sensor.getRainfall(1));
  Serial.println(" mm");
  //获取原始数据,雨量的翻斗次数,单位 次
  Serial.print("rainfall raw:\t");
  Serial.println(Sensor.getRawData());
  delay(1000);
}

结果

打开串口监视器,得到最终的数据。

Mind+读取传感器数据

上传模式

Python模式

使用UART读取传感器数据

接线图

样例代码


#include "DFRobot_RainfallSensor.h"

#define MODE_UART
#ifdef MODE_UART //串口通信

   #include "SoftwareSerial.h"
   SoftwareSerial mySerial(/*rx =*/10, /*tx =*/11);
   DFRobot_RainfallSensor_UART Sensor(/*Stream *=*/&mySerial);

#else //I2C通信
  DFRobot_RainfallSensor_I2C Sensor(&Wire);
#endif

void setup(void)
{
#ifdef MODE_UART
    mySerial.begin(9600);
#endif 
  Serial.begin(115200);

  delay(1000);
  while(!Sensor.begin()){
    Serial.println("Sensor init err!!!");
    delay(1000);
  }
  Serial.print("vid:\t");
  Serial.println(Sensor.vid,HEX);
  Serial.print("pid:\t");
  Serial.println(Sensor.pid,HEX);
  Serial.print("Version:\t");
  Serial.println(Sensor.getFirmwareVersion());
  //设置雨量累加值,单位为mm
  //Sensor.setRainAccumulatedValue(0.2794);
}

void loop()
{
  //获取传感器运行时间,单位 小时
  Serial.print("Sensor WorkingTime:\t");
  Serial.print(Sensor.getSensorWorkingTime());
  Serial.println(" H");
  //获取传感器运行时间内的累计雨量
  Serial.print("Rainfall:\t");
  Serial.println(Sensor.getRainfall());
  //获取系统1小时内的累计雨量(函数参数可选1-24)
  Serial.print("1 Hour Rainfall:\t");
  Serial.print(Sensor.getRainfall(1));
  Serial.println(" mm");
  //获取原始数据,雨量的翻斗次数,单位 次
  Serial.print("rainfall raw:\t");
  Serial.println(Sensor.getRawData());
  delay(1000);
}

结果

打开串口监视器,得到最终的数据。

行空板使用教程

接线图

样例代码

常见问题(FAQ)

还没有客户对此产品有任何问题,欢迎通过QQ在线客服或者论坛联系我们!

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。

更多

DFshopping_car1.png DFRobot商城购买链接