本人是新手,刚开始接触esp32板,希望能与大家交流。
开发板使用:正点原子ATK_DNESP32S3 V1.3
IDE: VSCODE + PLATFORMIO
在VS Code新建工程,工程命名为:wifi
主板选择对应主板,这里由于没有找到正点原子对应的主板,我自已导入了一个。
目标:通过HC-SR501检测到有人体运动后,点亮led灯,并且在Serial Monitor打印出检测信息。
步骤:
- 将HC-SR501最右侧的引脚(VCC)接入esp32s3板5v引脚;
- 将HC-SR501中间引脚本(信号)接入esp32s3板GPIO20引脚;
- 将HC-SR501最左侧的引脚(GND)接入esp32s3板GND引脚;
- 将led正极引脚本通过电阻后连到GPIO19引脚;
- 将led负极引脚本通过电阻后连到GND引脚;
关于传感器HC-SR501,以下视频讲得非常好,大家可以移步参考:
揭秘PIR传感器!HC-SR501如何与Arduino完美结合,轻松打造智能检测系统!_哔哩哔哩_bilibili
新建工程,将工程命名为hc-sr501:
在src/main.cpp编辑代码:
#include <Arduino.h>
const int pirPin = 20; // HC-SR501信号输出引脚
const int ledPin = 19; // LED引脚
void setup() {
Serial.begin(115200);
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
Serial.println("HC-SR501 PIR Sensor Test Start");
}
void loop() {
int pirState = digitalRead(pirPin);
if (pirState == HIGH) {
digitalWrite(ledPin, HIGH);
Serial.println("Motion detected! LED ON");
} else {
digitalWrite(ledPin, LOW);
Serial.println("No motion. LED OFF");
}
delay(200); // 适当延时,避免串口刷屏
}
这里的代码都是最基础的代码了,实在没有什么好讲解的,就不再说明了。
编译代码:
下载:
Serial Monitor展示效果:
实际效果: