ESP32 - 터치 센서 | ESP32 - Touch Sensor
이 튜토리얼은 ESP32를 터치 센서(터치 스위치 또는 터치 버튼으로도 알려져 있음)와 함께 사용하는 방법을 지시합니다.
준비물
1 | × | ESP-WROOM-32 Dev Module | 쿠팡 | Amazon | |
1 | × | USB Cable Type-C | 쿠팡 | Amazon | |
1 | × | Touch Sensor | 쿠팡 | Amazon | |
1 | × | Breadboard | 쿠팡 | Amazon | |
1 | × | Jumper Wires | Amazon | |
1 | × | (Optional) DC Power Jack | 쿠팡 | Amazon | |
1 | × | (Recommended) Screw Terminal Expansion Board for ESP32 | 쿠팡 | Amazon |
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.
터치 센서에 대하여
터치 센서 핀아웃
터치 센서에는 3개의 핀이 있습니다:
- GND 핀: 이 핀을 GND(0V)에 연결하세요.
- VCC 핀: 이 핀을 VCC(5V 또는 3.3v)에 연결하세요.
- SIGNAL 핀: 출력 핀입니다: 터치하지 않았을 때 LOW, 터치했을 때 HIGH입니다. 이 핀은 ESP32의 입력 핀에 연결해야 합니다.
터치 센서 작동 원리
- 터치 센서가 접촉되지 않았을 때 SIGNAL 핀의 상태는 LOW입니다.
- 터치 센서가 접촉되었을 때 SIGNAL 핀의 상태는 HIGH입니다.
ESP32 - 터치 센서
터치 센서의 SIGNAL 핀을 ESP32의 입력 핀에 연결하고 ESP32 코드를 사용하여 터치 센서의 상태를 읽을 수 있습니다.
터치 센서와 ESP32 간의 연결도
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
ESP32 및 다른 구성 요소에 전원을 공급하는 방법에 대해 잘 알지 못하는 경우, 다음 튜토리얼에서 안내를 찾을 수 있습니다: ESP32 전원 공급 방법.
터치 센서 프로그래밍 방법
pinMode() 함수를 사용하여 ESP32 핀을 디지털 입력 모드로 초기화합니다. 예를 들어, GPIO18 핀
pinMode(18, INPUT_PULLUP);
digitalRead() 함수를 사용하여 ESP32 핀의 상태를 읽습니다.
int inputState = digitalRead(18);
터치 센서 - ESP32 코드
아래 코드는 터치 센서의 상태를 읽고 그것을 시리얼 모니터에 출력합니다.
/*
* 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다
* 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/esp32/esp32-touch-sensor
*/
#define SENSOR_PIN 18 // ESP32 핀 GPIO18이 터치 센서의 SIGNAL 핀에 연결되어 있습니다.
void setup() {
// 초당 9600비트로 직렬 통신을 초기화합니다:
Serial.begin(9600);
// ESP32의 핀을 입력으로 초기화합니다
pinMode(SENSOR_PIN, INPUT);
}
void loop() {
// 입력 핀의 상태를 읽습니다:
int state = digitalRead(SENSOR_PIN);
// 상태를 시리얼 모니터에 출력합니다
Serial.println(state);
}
사용 방법
- 만약 이것이 당신이 ESP32를 처음 사용하는 경우라면, Arduino IDE에서 ESP32 환경 설정 방법을 참조하세요.
- 위의 코드를 복사하여 Arduino IDE에 붙여넣으세요.
- Arduino IDE에서 Upload 버튼을 클릭하여 ESP32 보드에 코드를 컴파일하고 업로드하세요.
- 손가락을 센서에 대고 뗍니다.
- 시리얼 모니터에서 결과를 확인하세요. 아래와 같아 보일 겁니다:
COM6
0
0
0
1
1
1
1
1
1
0
0
Autoscroll
Clear output
9600 baud
Newline
LOW에서 HIGH로의 상태 변화 감지 방법
/*
* 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다
* 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/esp32/esp32-touch-sensor
*/
#define SENSOR_PIN 18 // ESP32 핀 GPIO18이 터치 센서의 SIGNAL 핀에 연결되어 있음
// 변수는 변경될 것입니다:
int lastState = LOW; // 입력 핀에서 이전 상태
int currentState; // 입력 핀에서 현재 읽기
void setup() {
// 9600 비트/초에서 직렬 통신 시작:
Serial.begin(9600);
// ESP32의 핀을 입력으로 초기화
pinMode(SENSOR_PIN, INPUT);
}
void loop() {
// 입력 핀의 상태 읽기:
currentState = digitalRead(SENSOR_PIN);
if (lastState == LOW && currentState == HIGH)
Serial.println("The sensor is touched");
// 마지막 상태 저장
lastState = currentState;
}
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.