一、硬件介绍
1、主控开发板
使用的是XIAO ESP32S3开发板,集成ESP32S3 32位双核处理器芯片,最高运行频率240MHz,板载8MB PSRAM和8MB FLASH

功能引脚示意图

2、Grove Creator Kit 器件
在本次开发中,使用到的 `Grove Creator Kit 套件` 中的器件如下:
Grove - Water Sensor
水传感器模块通过测量导电性来指示传感器是干燥、潮湿还是完全浸没在水中,传感器走线具有1 MΩ的弱上拉电阻;
> 当裸露的导线上有水时,输出低电平;
> 当裸露的导线上干燥时,输出高电平;

主要特性

Grove - Red LED(红色LED灯)

二、功能实现
1、硬件搭建
将水传感器、红色LED模块,通过Grove接口连接到开发板对应的引脚上;

实物搭建效果:

2、功能效果
分别使用湿润的湿纸巾、干燥的纸巾模拟处于液体/干燥的环境;
当处于液体环境时,点亮红色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、点击 `上传` 烧录程序到开发板上;

五、效果演示

我要赚赏金
