Raspberry Pi SW520D 기울기 센서

SW520D 기울기 센서 모듈은 주변의 기울기 또는 방향 변화를 감지할 수 있습니다. 물체가 방해받을 때 활성화되는 알람이나 방향 변화에 반응하는 서보 모터와 같이 기울기에 반응하는 프로젝트를 만드는 데 사용할 수 있습니다.

이 튜토리얼은 Raspberry Pi와 SW520D 기울기 센서를 사용하여 기울기를 감지하는 방법을 안내합니다. 다루는 내용:

이후에 기울기가 감지될 때 LED나 조명(릴레이 사용)을 켜도록 코드를 수정하거나 서보 모터 회전을 제어하도록 구성할 수 있습니다.

필요한 하드웨어

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

SW520D 기울기 센서에 대하여

SW520D 기울기 센서 모듈은 주변의 기울기 또는 방향 변화를 감지할 수 있습니다. 모듈 내부에는 기울기 각도에 따라 두 전기 접점 사이를 굴러다니는 작은 금속 볼이 있습니다. 모듈은 간단한 디지털 신호(ON/OFF)를 출력합니다.

핀아웃

SW520D 기울기 센서에는 세 개의 핀이 있습니다:

  • VCC 핀: VCC(3.3V~5V)에 연결해야 합니다.
  • GND 핀: GND(0V)에 연결해야 합니다.
  • DO 핀: 출력 핀입니다: 센서가 수직일 때 HIGH, 기울어졌을 때 LOW가 됩니다. Raspberry Pi의 입력 핀에 연결해야 합니다.
sw520d 기울기 센서 핀아웃
image source: diyables.io

SW520D 기울기 센서 모듈에는 두 개의 LED 표시등이 있습니다:

  • 한 LED는 전원 상태를 나타냅니다.
  • 다른 LED는 기울기 상태를 나타냅니다: 센서가 수직일 때 켜지고 기울어졌을 때 꺼집니다.

작동 원리

센서의 출력 핀 동작 방식:

  • 센서가 수직일 때 금속 볼이 접점을 닫고, 출력 핀이 HIGH로 설정됩니다.
  • 센서가 기울어졌을 때 금속 볼이 접점을 열고, 출력 핀이 LOW로 설정됩니다.

배선도

라즈베리 파이 sw520d 기울기 센서 배선도

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

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

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

SW520D 기울기 센서 프로그래밍 방법

  • GPIO.setup() 함수를 사용하여 Raspberry Pi 핀을 디지털 입력 모드로 초기화합니다.
GPIO.setup(SENSOR_PIN, GPIO.IN)
  • GPIO.input() 함수를 사용하여 Raspberry Pi 핀의 상태를 읽습니다.
tilt_state = GPIO.input(SENSOR_PIN)

Raspberry Pi 코드 - 기울기 감지

빠른 시작

  • Raspberry Pi에 Raspbian 또는 기타 Raspberry Pi 호환 운영 체제가 설치되어 있는지 확인합니다.
  • Raspberry Pi가 PC와 동일한 로컬 네트워크에 연결되어 있는지 확인합니다.
  • 일부 라이브러리를 설치해야 하는 경우 Raspberry Pi가 인터넷에 연결되어 있는지 확인합니다.
  • Raspberry Pi를 처음 사용하는 경우 라즈베리 파이 - 소프트웨어 설치을 참조하세요.
  • 내장 SSH 클라이언트(Linux 및 macOS) 또는 Windows의 PuTTY를 사용하여 SSH로 PC에서 Raspberry Pi에 연결합니다. PC에서 SSH로 Raspberry Pi에 연결하는 방법을 참조하세요.
  • RPi.GPIO 라이브러리가 설치되어 있는지 확인합니다. 설치되어 있지 않으면 다음 명령어로 설치합니다:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Python 스크립트 파일 tilt_sensor.py를 만들고 다음 코드를 추가합니다:
/* * 이 라즈베리 파이 코드는 newbiely.kr 에서 개발되었습니다 * 이 라즈베리 파이 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/raspberry-pi/raspberry-pi-sw520d-tilt-sensor */ import RPi.GPIO as GPIO from time import sleep # Set the Raspberry Pi GPIO pin number where the SW520D tilt sensor is connected SENSOR_PIN = 7 # Set the GPIO mode and configure the tilt sensor pin as INPUT GPIO.setmode(GPIO.BCM) GPIO.setup(SENSOR_PIN, GPIO.IN) # Initialize the previous state variable with the current state prev_tilt_state = GPIO.input(SENSOR_PIN) try: while True: # Read the current state of the tilt sensor tilt_state = GPIO.input(SENSOR_PIN) # Check for a state change (HIGH to LOW or LOW to HIGH) if tilt_state != prev_tilt_state: if tilt_state == GPIO.LOW: print("Tilt detected!") else: print("Tilt disappeared!") # Update the previous state variable prev_tilt_state = tilt_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 tilt_sensor.py
  • SW520D 센서를 앞뒤로 기울입니다.
  • 터미널에서 결과를 확인합니다.
PuTTY - Raspberry Pi
Tilt detected! Tilt disappeared! Tilt detected! Tilt disappeared!

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

이제 코드를 수정하여 기울기가 감지될 때 LED나 조명을 켜도록 만들 수 있습니다. 서보 모터를 회전시키도록 프로그래밍할 수도 있습니다.

문제 해결

SW520D 기울기 센서의 기능에 문제가 있는 경우 다음 문제 해결 단계를 시도해보세요:

  • 방향 확인: SW520D는 장착 각도에 민감합니다. 신뢰할 수 있는 감지를 위해 올바른 수직 위치에 설치되어 있는지 확인하세요.
  • 진동 줄이기: 기울기 센서는 기계적 진동에도 반응할 수 있습니다. 오경보를 최소화하기 위해 안정적인 표면에 단단히 고정하세요.
  • 배선 확인: VCC, GND, DO 핀이 올바르게 연결되어 있는지 확인하세요.
  • 전원 공급 확인: 일관된 측정값을 위해 전원 공급이 안정적이고 전기 노이즈가 없는지 확인하세요.

이 단계를 따르면 SW520D 기울기 센서의 잠재적인 문제를 해결할 수 있습니다.

동영상

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

함수 참조

댓글

관련 튜토리얼