ESP8266 SW-420 진동 센서

SW-420 진동 센서 모듈은 부착된 물체의 흔들림, 두드림, 충격에 반응합니다. 간단한 도난 또는 무단 조작 경보기, 거칠게 다뤄졌는지 보고하는 택배 상자, 비정상적으로 흔들리기 시작하면 경고가 필요한 기계 같은 프로젝트에 적합합니다.

이 튜토리얼에서는 ESP8266과 SW-420 진동 센서로 진동을 감지하는 방법을 알려드립니다. 다음 내용을 살펴봅니다:

ESP8266 NodeMCU nodemcu sw-420 진동 센서

여기서부터 코드를 쉽게 확장하여, 진동이 감지될 때마다 부저를 울리거나, LED를 깜빡이거나, 알림을 보낼 수 있습니다.

필요한 하드웨어

1×Micro USB Cable 아마존
1×ESP8266 NodeMCU 쿠팡 | 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×SW-420 Vibration Sensor Module 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) ESP8266용 스크루 터미널 확장 보드 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

SW-420 진동 센서에 대하여

SW-420 진동 센서 모듈은 부착된 물체에 가해지는 흔들림, 두드림, 충격을 감지하도록 만들어졌습니다. 금속 케이스 안에는 작은 스프링 방식의 스위치가 금속 접점 가까이에 놓여 있습니다. 보드의 LM393 비교기가 그 스위치를 감시하다가 어떤 흔들림이든 깔끔한 디지털 신호로 바꾸어 주며, 보드의 작은 가변저항으로 동작하기까지 얼마나 흔들려야 하는지를 조정할 수 있습니다.

SW-420 진동 센서 핀아웃

SW-420 진동 센서에는 세 개의 핀이 있습니다:

  • VCC 핀: VCC(3.3V ~ 5V)에 연결해야 합니다
  • GND 핀: GND(0V)에 연결해야 합니다
  • DO 핀: 출력 핀입니다. 모든 것이 정지해 있을 때는 LOW이고, 진동이나 충격이 감지되는 순간 HIGH가 됩니다. 이 핀은 ESP8266의 입력 핀에 연결해야 합니다.
sw-420 진동 센서 핀아웃
image source: diyables.io

SW-420 진동 센서 모듈에는 LED 표시등이 두 개 있습니다:

  • 한 LED는 전원 상태를 표시합니다.
  • 다른 LED는 DO 핀이 HIGH가 될 때마다, 즉 진동이 감지될 때마다 켜집니다.

작동 원리

센서는 다음과 같이 동작합니다:

  • 모듈이 정지해 있는 동안에는 내부 스프링 스위치가 열린 상태를 유지하고 DO 핀은 LOW를 유지합니다.
  • 모듈이 흔들리거나, 두드려지거나, 부딪히는 순간 스프링 스위치가 접점에 닿고 LM393 비교기가 DO 핀을 HIGH로 만듭니다.
  • 보드의 가변저항을 시계 방향이나 반시계 방향으로 돌리면, 출력이 전환되기 위해 필요한 충격의 세기를 높이거나 낮출 수 있습니다.

배선도

  • ESP8266과 SW-420 진동 센서 간의 배선도
ESP8266 NodeMCU sw-420 진동 센서 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

ESP8266 핀배열 및 ESP8266 전원을 켜는 방법에 대해 더 많이 보십시오.

SW-420 진동 센서 프로그래밍 방법

  • pinMode() 함수를 사용하여 ESP8266 핀을 디지털 입력 모드로 초기화합니다. 예를 들어 D7 핀
pinMode(D7, INPUT);
  • digitalRead() 함수를 사용하여 ESP8266 핀의 상태를 읽습니다.
int vibrationState = digitalRead(D7);

ESP8266 코드 - 진동 감지

/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-sw-420-vibration-sensor */ #define SENSOR_PIN D7 // The ESP8266 pin D7 connected to the DO pin of the SW-420 vibration sensor int last_state = LOW; // The last reading from the input pin, LOW means idle (no vibration) int cur_state; // The current reading from the input pin void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP8266's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the ESP8266's input pin cur_state = digitalRead(SENSOR_PIN); if (last_state == LOW && cur_state == HIGH) Serial.println("vibration detected"); else if (last_state == HIGH && cur_state == LOW) Serial.println("vibration stopped"); // save the current state for the next comparison last_state = cur_state; }

빠른 단계

Arduino IDE에서 ESP8266을 시작하려면 다음 단계를 따르세요:

  • ESP8266을 처음 사용한다면 ESP8266 - 소프트웨어 설치 튜토리얼을 확인하세요.
  • 배선도와 같이 부품을 배선하세요.
  • USB 케이블로 ESP8266 보드를 컴퓨터에 연결하세요.
  • 컴퓨터에서 Arduino IDE를 여세요.
  • 올바른 ESP8266 보드(예: NodeMCU 1.0 (ESP-12E Module))와 해당 COM 포트를 선택하세요.
  • 위의 코드를 복사하여 Arduino IDE에서 여세요
  • Arduino IDE의 Upload 버튼을 클릭하여 코드를 ESP8266에 업로드하세요
  • SW-420 센서를 두드리거나 흔들어 보세요
  • 시리얼 모니터에서 결과를 확인하세요.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
vibration detected vibration stopped vibration detected vibration stopped
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2

여기서부터 스케치를 확장하여, 진동이 감지될 때마다 ESP8266이 부저를 울리거나, LED를 켜거나, 알림을 보내게 할 수 있습니다. 자세한 안내와 추가 정보는 이 가이드 끝에 있는 튜토리얼을 참고하세요.

문제 해결

SW-420 진동 센서가 올바르게 동작하지 않는 문제가 있다면, 다음 문제 해결 단계를 시도해 보세요:

  • 감도 조정: 센서가 너무 쉽게 동작하거나 전혀 동작하지 않으면, 보드의 가변저항을 돌려 감도를 높이거나 낮추세요.
  • 주변 진동으로부터 분리: 오동작을 일으킬 수 있는 모터, 팬, 또는 계속 배경 진동이 있는 곳에서 모듈을 멀리 설치하세요.
  • 배선 확인: VCC, GND, DO 핀이 올바르게 연결되어 있는지 확인하세요.
  • 전원 확인: 일관된 읽기 값을 위해 전원이 깨끗하고 안정적인지 확인하세요.

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

댓글

관련 튜토리얼