라즈베리 파이 SW-420 진동 센서

SW-420 진동 센서 모듈은 부착된 물체의 충격, 두드림, 흔들림을 감지할 수 있습니다. 누군가 문을 건드리면 반응하는 침입 경보기, 거칠게 다뤄졌는지 알려주는 소포, 비정상적인 흔들림을 알려야 하는 기계 같은 프로젝트에 유용합니다.

이 튜토리얼에서는 라즈베리 파이와 SW-420 진동 센서를 사용하여 진동을 감지하는 방법을 안내합니다. 다음 내용을 살펴보겠습니다:

이것이 동작하면, 진동이 감지될 때마다 LED를 켜거나, 부저를 울리거나, 릴레이로 제어되는 조명을 켜도록 코드를 확장할 수 있습니다.

준비물

1×라즈베리 파이 5 쿠팡 | 아마존
1×SW-420 Vibration Sensor Module 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) 라즈베리 파이용 스크루 터미널 블록 쉴드 쿠팡 | 아마존
1×(추천) 라즈베리 파이 프로토타이핑 베이스 플레이트 & 브레드보드 키트 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

SW-420 진동 센서에 대하여

SW-420 진동 센서 모듈은 충격과 흔들림에 반응합니다. 모듈 안에는 금속 접점 가까이에 놓인 작은 스프링 방식의 진동 스위치가 있습니다. 보드에 있는 LM393 비교기가 그 스위치를 감시하여 모든 흔들림을 깨끗한 디지털 신호로 바꾸고, 보드의 가변 저항으로 출력이 동작하기 전에 흔들림이 얼마나 강해야 하는지 설정할 수 있습니다.

핀아웃

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

  • VCC 핀: 전원(3.3V ~ 5V)에 연결해야 합니다
  • GND 핀: 접지(0V)에 연결해야 합니다
  • DO 핀: 출력 핀입니다. 모든 것이 정지해 있는 동안에는 LOW이고, 진동이나 충격이 감지되는 즉시 HIGH가 됩니다. 이 핀은 라즈베리 파이의 입력 핀에 연결해야 합니다.
sw-420 진동 센서 핀아웃
image source: diyables.io

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

  • 하나의 LED는 전원 상태를 표시합니다.
  • 다른 LED는 트리거 상태를 표시하며, DO 핀이 HIGH가 될 때마다 켜집니다.

작동 원리

센서의 출력 핀은 다음과 같이 동작합니다:

  • 모듈이 가만히 있는 동안에는 스프링 스위치가 열린 상태로 유지되고 출력 핀은 LOW를 읽습니다.
  • 진동이나 충격이 스프링 스위치를 흔들면 접점이 닿고 출력 핀은 HIGH가 됩니다.

배선도

라즈베리 파이 sw-420 진동 센서 배선도

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

배선 구성을 간단하고 체계적으로 만들기 위해, Raspberry Pi용 스크루 터미널 블록 실드 사용을 권장합니다. 이 실드는 아래와 같이 더욱 안정적이고 관리하기 쉬운 연결을 제공합니다:

라즈베리 파이용 스크루 터미널 블록 실드

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

  • GPIO.setup() 함수를 사용하여 라즈베리 파이 핀을 디지털 입력으로 설정합니다.
GPIO.setup(SENSOR_PIN, GPIO.IN)
  • GPIO.input() 함수를 사용하여 라즈베리 파이 핀의 현재 상태를 읽습니다.
vibration_state = GPIO.input(SENSOR_PIN)

라즈베리 파이 코드 - 진동 감지

빠른 단계

  • 파이에 Raspbian 또는 라즈베리 파이와 호환되는 다른 운영 체제가 설치되어 있는지 확인하세요.
  • 라즈베리 파이가 PC와 같은 로컬 네트워크에 연결되어 있는지 확인하세요.
  • 라이브러리를 설치해야 하는 경우 라즈베리 파이가 인터넷에 연결되어 있는지 확인하세요.
  • 라즈베리 파이를 처음 사용한다면 라즈베리 파이 - 소프트웨어 설치을 참고하세요.
  • Linux와 macOS에서는 내장 SSH 클라이언트를, Windows에서는 PuTTY를 사용하여 SSH로 PC를 라즈베리 파이에 연결하세요. SSH로 PC를 라즈베리 파이에 연결하는 방법을 참고하세요.
  • RPi.GPIO 라이브러리가 설치되어 있는지 확인하세요. 설치되어 있지 않다면 다음 명령으로 설치하세요:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • 파이썬 스크립트 파일 vibration_sensor.py를 만들고 다음 코드를 추가하세요:
/* * 이 라즈베리 파이 코드는 newbiely.kr 에서 개발되었습니다 * 이 라즈베리 파이 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/raspberry-pi/raspberry-pi-sw-420-vibration-sensor */ import RPi.GPIO as GPIO from time import sleep # Set the Raspberry Pi GPIO pin number where the SW-420 vibration sensor is connected SENSOR_PIN = 7 # Set the GPIO mode and configure the vibration sensor pin as INPUT GPIO.setmode(GPIO.BCM) GPIO.setup(SENSOR_PIN, GPIO.IN) # Initialize the previous state variable with the current state prev_vibration_state = GPIO.input(SENSOR_PIN) try: while True: # Read the current state of the vibration sensor vibration_state = GPIO.input(SENSOR_PIN) # Check for a state change (LOW to HIGH or HIGH to LOW) if vibration_state != prev_vibration_state: if vibration_state == GPIO.HIGH: print("Vibration detected!") else: print("Vibration stopped!") # Update the previous state variable prev_vibration_state = vibration_state # Add a small delay to prevent continuous readings sleep(0.1) except KeyboardInterrupt: # Clean up GPIO settings when Ctrl+C is pressed GPIO.cleanup() print("\nExiting the program.")
  • 파일을 저장하고 터미널에서 다음 명령을 실행하여 파이썬 스크립트를 실행하세요:
python3 vibration_sensor.py
  • SW-420 센서를 몇 번 두드리거나 흔들어 보세요.
  • 터미널에서 결과를 확인하세요.
PuTTY - Raspberry Pi
Vibration detected! Vibration stopped! Vibration detected! Vibration stopped!

스크립트는 터미널에서 Ctrl + C를 누를 때까지 무한 루프로 계속 실행됩니다.

여기서부터 진동이 감지될 때마다 LED를 깜빡이거나, 부저를 울리거나, 릴레이로 제어되는 조명을 켜도록 코드를 수정할 수 있습니다. 자세한 설명과 더 많은 정보는 이 가이드 끝에 있는 튜토리얼을 참고하세요.

문제 해결

SW-420 진동 센서가 예상대로 동작하지 않으면 다음 문제 해결 단계를 시도해 보세요:

  • 민감도 조절: 보드의 가변 저항을 돌려 출력이 동작하는 데 필요한 흔들림의 정도를 높이거나 낮추세요.
  • 주변 진동으로부터 분리: 모듈을 단단히 고정하고, 잘못된 트리거를 일으킬 수 있는 모터, 팬, 사람의 발걸음에서 멀리 두세요.
  • 배선 확인: VCC, GND, DO 핀이 올바르게 연결되어 있는지 확인하세요.
  • 전원 공급 확인: 일정한 측정값을 얻기 위해 전원 공급이 안정적이고 전기적 잡음이 없는지 확인하세요.

이 단계를 따르면 SW-420 진동 센서의 잠재적인 문제를 해결할 수 있을 것입니다.

동영상

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

함수 참조

댓글

관련 튜토리얼