简介
DFRobot推出的雨量传感器采用了翻斗式记录原理,传感器内部无任何电子元件,并且底部镂空设计能够使雨水自动排出,具有稳定性好、灵敏度高等优势。用户可轻松获取输出单位为毫米的雨量值和系统工作时间。
Gravity: 雨量传感器具有I2C和UART两种数据输出类型,与microbit、Arduino、ESP32、树莓派等主控兼容,通过简单易用的Gravity接口我们提供的示例代码,您可以快速搭建一个雨量监测系统。无论您是气象站、环境检测站还是智慧农场,DFRobot雨量传感器都能为您提供高质量的雨量数据。
注意:信号转接板不防水,禁止将信号转接板暴露在雨中。
技术规格
- 工作电压: 3.3~5.5V DC
- 工作电流:<3mA
- 输出信号: I2C/UART
- 分辨率: 0.28mm
- 工作温度: -40~85℃
- 电路板尺寸:32mm*37mm
- 翻斗器尺寸:118mm59mm80mm
- 安装孔尺寸:3.1mm
- 重量:119g(翻斗器),5.3g(电路板)
引脚说明
标号 | 名称 | 功能描述 |
---|---|---|
1 | D/T | I2C数据线SDA/UART数据传输-TX |
2 | C/R | I2C时钟线SCL/UART数据接收-RX |
3 | - | GND电源负极 |
4 | + | 电源正极 |
Arduino使用教程
将程序下载到UNO,打开串口监视器查看累计雨量。
注意:信号转接板不防水,禁止将信号转接板暴露在雨中。
软硬件准备
- 硬件
- DFRuino UNO R3 x1
- SEN0575 Gravity: 雨量传感器/翻斗式雨量计 x1
- 杜邦线 若干
- 软件
- Arduino IDE 点击下载Arduino IDE
- 下载并安装DFRobot_RainfallSensor库。如何安装库?
使用I2C读取传感器数据
接线图
样例代码
- 将模块与Arduino按照上方的连线图相连,当然你也可以配合Gravity I/O扩展板使用,可以更方便、更快速的完成项目原型搭建。
- 将传感器上的选择开关,拨到I2C一侧。
- 下载并安装DFRobot_RainfallSensor。如何安装库?
- 打开Arduino IDE,将下面的代码上传到Arduino UNO。
- 打开Arduino IDE的串口监控视器,把波特率调至115200,观察串口打印结果。
#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+读取传感器数据
- 加载用户库:https://gitee.com/dfjoannali/ext-rain-sensor
上传模式
Python模式
使用UART读取传感器数据
接线图
样例代码
- 将模块与Arduino按照上方的连线图相连,当然你也可以配合Gravity I/O扩展板使用,可以更方便、更快速的完成项目原型搭建。
- 将传感器上的选择开关,拨到UART一侧。
- 下载并安装DFRobot_RainfallSensor。如何安装库?
- 打开Arduino IDE,将下面的代码上传到Arduino UNO。
- 打开Arduino IDE的串口监控视器,把波特率调至115200,观察串口打印结果。
#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);
}
结果
打开串口监视器,得到最终的数据。
行空板使用教程
接线图
样例代码
- 将模块与行空板按照上方的连线图相连。
- 将传感器上的选择开关,拨到I2C一侧。
- 加载用户库:https://gitee.com/dfjoannali/ext-rain-sensor
常见问题(FAQ)
-
调节拨码开关切换通信方式后仍无法通信?
-
切换通信方式后转接板需重新上电才能使配置生效。
还没有客户对此产品有任何问题,欢迎通过QQ在线客服或者论坛联系我们!
更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。