ESP8266 터치 센서
이 튜토리얼은 ESP8266을 사용하여 용량성 터치 센서를 사용하는 방법을 알려줍니다. 자세히 말하자면, 우리는 다음을 배울 것입니다:
- 터치 센서가 어떻게 작동하는지
- 터치 센서를 ESP8266에 연결하는 방법
- ESP8266이 터치 센서의 상태를 읽을 수 있도록 프로그래밍하는 방법
- ESP8266이 터치/비터치 이벤트를 감지하도록 프로그래밍하는 방법
준비물
| 1 | × | ESP8266 NodeMCU | 쿠팡 | 아마존 | |
| 1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
| 1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
| 1 | × | 터치 센서 (Touch Sensor) | 쿠팡 | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | (추천) ESP8266용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) ESP8266 Type-C용 전원 분배기 | 쿠팡 | 아마존 |
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
터치 센서에 관하여
정전 용량식 터치 센서, 또는 터치 버튼이나 터치 스위치라고도 알려져 있으며, 터치 가능한 램프와 같은 장치를 제어하는 데 일반적으로 사용됩니다. 버튼과 같은 목적을 가지고 있지만, 많은 현대 장치에서는 그 매끄러운 외관 때문에 버튼 대신 사용됩니다.
터치 센서 핀배열
터치 센서에는 세 개의 핀이 있습니다:
- GND 핀: 이것은 접지 전압(0V)에 연결되어야 합니다.
- VCC 핀: 이것은 VCC 전압(5V 또는 3.3V)에 연결되어야 합니다.
- SIGNAL 핀: 이것은 출력 핀입니다. 만지지 않았을 때는 LOW 상태가 되고 만졌을 때는 HIGH 상태가 됩니다. 이 핀은 ESP8266 입력 핀에 연결되어야 합니다.

작동 원리
- 센서와 상호작용이 없을 때, 센서의 SIGNAL 핀은 LOW 상태에 있습니다.
- 하지만, 센서가 터치되면, 센서의 SIGNAL 핀은 HIGH 상태에 있습니다.
ESP8266 - 터치 센서
터치 센서의 SIGNAL 핀은 ESP8266의 입력 핀에 연결됩니다. ESP8266의 핀 상태를 검사함으로써 터치 센서가 터치되었는지를 판별할 수 있습니다.
터치 센서 프로그래밍 방법
pinMode() 함수를 사용하여 ESP8266 핀을 디지털 입력 모드로 설정하세요. 예를 들어:
pinMode(D7, INPUT);
digitalRead() 함수를 통해 ESP8266 핀의 상태를 읽으세요.
int inputState = digitalRead(D7);
※ 주의:
흔히 사용되는 두 가지 시나리오가 있습니다:
- 첫 번째: 입력 상태가 HIGH일 경우 하나의 동작을 수행합니다. 입력 상태가 LOW인 경우 반대의 동작을 실행합니다.
- 두 번째: 입력 상태가 LOW에서 HIGH로 (또는 HIGH에서 LOW로) 변할 경우 동작을 수행합니다.
어플리케이션의 목적에 따라 이 중 하나를 선택합니다. 예를 들어, 터치 센서를 사용해서 LED를 제어하고 싶은 경우:
- 목표가 센서에 손을 대면 LED가 켜지고 손을 대지 않으면 꺼지게 하는 것이라면, 첫 번째 시나리오를 사용해야 합니다.
- 목표가 센서에 손을 대는 것마다 LED를 켜고 끄는 것으로 전환하게 하는 것이라면, 두 번째 시나리오를 사용해야 합니다.
터치 센서 - ESP8266 코드
튜토리얼은 두 가지 샘플 코드를 제공합니다:
- ESP8266은 터치 센서에서 값을 읽고 시리얼 모니터에 출력합니다.
- ESP8266은 센서가 터치되었는지 아니면 놓아졌는지를 감지합니다.
ESP8266이 터치 센서에서 값을 읽고 시리얼 모니터에 출력합니다.
/*
* 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다
* 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/esp8266/esp8266-touch-sensor
*/
#define SENSOR_PIN D7 // ESP8266 NodeMCU 입력 핀이 센서의 SIGNAL 핀에 연결됩니다.
void setup() {
// 시리얼 통신을 시작하여 시리얼 모니터와 통신합니다.
Serial.begin(9600);
// ESP8266 NodeMCU의 핀을 입력으로 초기화합니다.
pinMode(SENSOR_PIN, INPUT);
}
void loop() {
// 입력 핀의 상태를 읽습니다:
int state = digitalRead(SENSOR_PIN);
// 시리얼 모니터에 상태를 출력합니다.
Serial.println(state);
}
사용 방법
Arduino IDE에서 ESP8266을 시작하는 방법은 다음과 같습니다:
- ESP8266을 Arduino IDE에서 설정하는 방법에 대해 처음이라면 ESP8266 - 소프트웨어 설치을 확인하세요.
- 다이어그램에 표시된 대로 구성 요소를 연결하세요.
- USB 케이블을 사용하여 ESP8266 보드를 컴퓨터에 연결하세요.
- 컴퓨터에서 Arduino IDE를 엽니다.
- 올바른 ESP8266 보드(예: NodeMCU 1.0 (ESP-12E Module))와 해당 COM 포트를 선택하세요.
- 코드를 복사하여 Arduino IDE에서 엽니다.
- IDE에서 Upload 버튼을 클릭하여 코드를 ESP8266에 전송합니다.
- 센서에 손가락을 대었다가 떼세요.
- 시리얼 모니터에서 출력을 확인하세요.
8
Serial.println("Hello World!");
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
0
0
0
1
1
1
1
1
1
0
0
ESP8266이 센서의 접촉 또는 해제를 감지합니다
/*
* 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다
* 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/esp8266/esp8266-touch-sensor
*/
#define SENSOR_PIN D7 // ESP8266 NodeMCU 입력 핀이 센서의 SIGNAL 핀에 연결됩니다.
int prev_state = LOW; // 입력 핀의 이전 상태
int touch_state; // 입력 핀에서의 현재 읽기
void setup() {
// 시리얼 모니터와 통신하기 위해 시리얼을 초기화합니다.
Serial.begin(9600);
// ESP8266 NodeMCU의 핀을 입력으로 초기화합니다.
pinMode(SENSOR_PIN, INPUT);
}
void loop() {
// 입력 핀의 상태를 읽습니다:
touch_state = digitalRead(SENSOR_PIN);
if(prev_state == LOW && touch_state == HIGH)
Serial.println("The sensor is touched");
else if(prev_state == HIGH && touch_state == LOW)
Serial.println("The sensor is released");
// 마지막 상태를 저장합니다
prev_state = touch_state;
}
사용 방법
- 코드를 복사하고 Arduino IDE로 열어주세요.
- Arduino IDE에서 Upload 버튼을 클릭하여 코드를 컴파일하고 ESP8266에 업로드하세요.
- 센서에 손가락을 계속 대고 있어주세요.
- 시리얼 모니터에서 결과를 확인하세요.
8
Serial.println("Hello World!");
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
The sensor is touched
- 센서에서 손가락을 떼세요.
- 결과를 시리얼 모니터에서 확인하세요.
8
Serial.println("Hello World!");
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
The sensor is touched
The sensor is released
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.
