这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » Grove Creator Kit开发指南【液体检测LED指示灯】

共1条 1/1 1 跳转至

Grove Creator Kit开发指南【液体检测LED指示灯】

菜鸟
2026-08-24 22:23:29     打赏

一、硬件介绍

1、主控开发板

使用的是XIAO ESP32S3开发板,集成ESP32S3 32位双核处理器芯片,最高运行频率240MHz,板载8MB PSRAM和8MB FLASH

1787576271514383.png





功能引脚示意图

1787576305327340.png


2、Grove Creator Kit 器件

在本次开发中,使用到的 `Grove Creator Kit 套件` 中的器件如下:


Grove - Water Sensor

水传感器模块通过测量导电性来指示传感器是干燥、潮湿还是完全浸没在水中,传感器走线具有1 MΩ的弱上拉电阻;

> 当裸露的导线上有水时,输出低电平;

> 当裸露的导线上干燥时,输出高电平;

image-20260822172936199.png



主要特性

image.png


Grove - Red LED(红色LED灯)


image-20260818180812373.png



二、功能实现

1、硬件搭建

将水传感器、红色LED模块,通过Grove接口连接到开发板对应的引脚上;

image.png


实物搭建效果:

image-20260822173242558.png



2、功能效果

分别使用湿润的湿纸巾、干燥的纸巾模拟处于液体/干燥的环境;

当处于液体环境时,点亮红色LED灯;

当处于干燥环境时,熄灭红色LED灯;

串口打印输出当前检测到的状态;



三、代码编写

主要相关代码

接触到液体:串口打印检测到液体,同时LED点亮;

> 未检测到液体:串口打印未检测到液体,同时LED熄灭;

#define WATER_PIN D8
#define LED_PIN D10

int waterState = -1;
int lastWaterState = -1;
unsigned long lastDebounceTime = 0;
const unsigned long debounceDelay = 30;  //消抖

void setup()
{   
    pinMode(WATER_PIN,INPUT);
    pinMode(LED_PIN,OUTPUT);
    digitalWrite(LED_PIN,LOW);
    Serial.begin(115200);
    delay(100);
}

void loop()
{
    int rawState = digitalRead(WATER_PIN);
    if(rawState != lastWaterState)
    {
        lastDebounceTime = millis();
    }
    if ((millis() - lastDebounceTime) > debounceDelay)
    {
        if(rawState != waterState)
        {
            waterState = rawState;
            if(waterState == LOW){
                Serial.println("检测到液体");
                digitalWrite(LED_PIN,HIGH);
            }else{
                Serial.println("未检测到液体");
                digitalWrite(LED_PIN,LOW);
            }
        }
    }
    lastWaterState = rawState;
}



四、程序烧录

1、连接USB数据线至开发板;

2、选择端口号对应的开发板;

3、点击 `上传` 烧录程序到开发板上;

image-20260818173949849.png



五、效果演示


8.gif







共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]