/* * 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32/esp32-motion-sensor-piezo-buzzer */#define MOTION_SENSOR_PIN 32 // ESP32 핀 GPIO32가 모션 센서의 출력 핀에 연결됨#define BUZZER_PIN 17 // ESP32 핀 GPIO17가 부저의 핀에 연결됨int motionStateCurrent = LOW; // 현재 모션 센서 핀의 상태int motionStatePrevious = LOW; // 이전 모션 센서 핀의 상태voidsetup() {Serial.begin(9600); // 직렬 시작pinMode(MOTION_SENSOR_PIN, INPUT); // ESP32 핀을 입력 모드로 설정pinMode(BUZZER_PIN, OUTPUT); // ESP32 핀을 출력 모드로 설정}voidloop() { motionStatePrevious = motionStateCurrent; // 이전 상태 저장 motionStateCurrent = digitalRead(MOTION_SENSOR_PIN); // 새로운 상태 읽기if (motionStatePrevious == LOW && motionStateCurrent == HIGH) { // 핀 상태 변경: LOW -> HIGHSerial.println("움직임 감지됨!, 소리 내기");digitalWrite(BUZZER_PIN, HIGH); // 켜기 } elseif (motionStatePrevious == HIGH && motionStateCurrent == LOW) { // 핀 상태 변경: HIGH -> LOWSerial.println("움직임 멈춤!, 소리 중지");digitalWrite(BUZZER_PIN, LOW); // 끄기 }}
아두이노 IDE에서 Upload 버튼을 클릭하여 ESP32 보드에 코드를 컴파일하고 업로드하세요.
센서 앞에서 손을 움직이세요.
피에조 부저의 멜로디를 들어보세요.
코드 줄별 설명
위의 ESP32 코드에는 줄마다 설명이 포함되어 있습니다. 코드의 주석을 읽어주세요!
※ 주의:
위의 코드는 delay() 함수를 사용합니다. 이것은 멜로디를 재생하는 동안 다른 코드의 실행을 차단합니다. 다른 코드의 실행을 차단하지 않으려면, 대신 ezBuzzer 라이브러리를 사용하세요. 이 라이브러리는 다른 코드의 실행을 차단하지 않고 버저가 비프음을 내거나 멜로디를 재생할 수 있도록 설계되었습니다.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.