Grove - 水位传感器
Grove 水位传感器是一个非常精确的传感器,可以在水位检测应用中发挥重要作用。它完全防水,使用电容式感应垫来检测高达10厘米的水位。
我们在模块的PCB上使用了电容式感应垫,并在PCB上进行了三防涂层处理,使传感器能够防潮、防尘、防化学腐蚀并耐高温。我们相信这种技术将使您能够轻松进行精确的水位测量(±5mm精度)。
特性
- 易于使用(使用Grove连接器,无需焊接)
- 基于电容式感应
- 防水
- 三防涂层
- 耐腐蚀
- 检测高达10厘米的水位
- I2C接口
规格参数
参数 | 值 |
---|---|
输入电压 | 3.3V / 5V |
测量精度 | ±5mm |
工作温度范围 | -40°C 至 105°C |
I2C地址 | 0x78 和 0x77 |
接口 | I2C |
尺寸 | 20mm x 133mm |
硬件概述
支持的平台
Arduino | Raspberry Pi |
---|---|
入门指南
与Arduino一起使用
所需材料
Seeeduino V4.2 | Base Shield | Grove - 水位传感器 |
---|---|---|
立即购买 | 立即购买 | 立即购买 |
此外,您可以考虑我们的新产品Seeeduino Lotus M0+,它相当于Seeeduino V4.2和Baseshield的组合。
硬件连接
-
步骤1. 将Grove - 水位传感器插入Grove - Base Shield的I2C端口。
-
步骤2. 将Grove - Base Shield插入Seeeduino。
-
步骤3. 通过USB线将Seeeduino连接到PC。
软件
如果这是您第一次使用Arduino,我们强烈建议您在开始之前先查看Arduino入门指南。
- 步骤1. 打开Arduino IDE并创建一个新文件,然后将以下代码复制到新文件中。
#include <Wire.h>
#ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE
#define SERIAL SerialUSB
#else
#define SERIAL Serial
#endif
unsigned char low_data[8] = {0};
unsigned char high_data[12] = {0};
#define NO_TOUCH 0xFE
#define THRESHOLD 100
#define ATTINY1_HIGH_ADDR 0x78
#define ATTINY2_LOW_ADDR 0x77
void getHigh12SectionValue(void)
{
memset(high_data, 0, sizeof(high_data));
Wire.requestFrom(ATTINY1_HIGH_ADDR, 12);
while (12 != Wire.available());
for (int i = 0; i < 12; i++) {
high_data[i] = Wire.read();
}
delay(10);
}
void getLow8SectionValue(void)
{
memset(low_data, 0, sizeof(low_data));
Wire.requestFrom(ATTINY2_LOW_ADDR, 8);
while (8 != Wire.available());
for (int i = 0; i < 8 ; i++) {
low_data[i] = Wire.read(); // receive a byte as character
}
delay(10);
}
void check()
{
int sensorvalue_min = 250;
int sensorvalue_max = 255;
int low_count = 0;
int high_count = 0;
while (1)
{
uint32_t touch_val = 0;
uint8_t trig_section = 0;
low_count = 0;
high_count = 0;
getLow8SectionValue();
getHigh12SectionValue();
Serial.println("low 8 sections value = ");
for (int i = 0; i < 8; i++)
{
Serial.print(low_data[i]);
Serial.print(".");
if (low_data[i] >= sensorvalue_min && low_data[i] <= sensorvalue_max)
{
low_count++;
}
if (low_count == 8)
{
Serial.print(" ");
Serial.print("PASS");
}
}
Serial.println(" ");
Serial.println(" ");
Serial.println("high 12 sections value = ");
for (int i = 0; i < 12; i++)
{
Serial.print(high_data[i]);
Serial.print(".");
if (high_data[i] >= sensorvalue_min && high_data[i] <= sensorvalue_max)
{
high_count++;
}
if (high_count == 12)
{
Serial.print(" ");
Serial.print("PASS");
}
}
Serial.println(" ");
Serial.println(" ");
for (int i = 0 ; i < 8; i++) {
if (low_data[i] > THRESHOLD) {
touch_val |= 1 << i;
}
}
for (int i = 0 ; i < 12; i++) {
if (high_data[i] > THRESHOLD) {
touch_val |= (uint32_t)1 << (8 + i);
}
}
while (touch_val & 0x01)
{
trig_section++;
touch_val >>= 1;
}
SERIAL.print("water level = ");
SERIAL.print(trig_section * 5);
SERIAL.println("% ");
SERIAL.println(" ");
SERIAL.println("*********************************************************");
delay(1000);
}
}
void setup() {
SERIAL.begin(115200);
Wire.begin();
}
void loop()
{
check();
}
-
步骤3. 上传演示程序。如果您不知道如何上传代码,请查看如何上传代码。
-
步骤4. 通过点击工具-> 串口监视器打开Arduino IDE的串口监视器。或者同时按下
ctrl
+shift
+m
键。将波特率设置为115200。 -
步骤5. 当传感器在水中时,结果应该如下所示:

常见问题
Q1# 实用应用?
A1: 这里提供了一个使用Grove - 水位传感器与蜂鸣器和LED模块进行水位检测的简单应用。请在这里查看完整代码。
原理图在线查看器
资源
技术支持与产品讨论
可升级为工业级传感器
通过 SenseCAP S2110 控制器和 S2100 数据记录器,您可以轻松将 Grove 转换为 LoRaWAN® 传感器。Seeed 不仅帮助您进行原型设计,还为您提供了使用 SenseCAP 系列坚固的工业传感器扩展项目的可能性。
IP66 外壳、蓝牙配置、与全球 LoRaWAN® 网络的兼容性、内置 19 Ah 电池以及来自 APP 的强大支持,使 SenseCAP S210x 成为工业应用的最佳选择。该系列包括土壤湿度、空气温湿度、光照强度、CO2、EC 传感器以及 8 合 1 气象站。在您下一个成功的工业项目中尝试最新的 SenseCAP S210x。