라즈베리 파이 도어 센서
문 센서는 보안 시스템에서 흔히 사용하는 기능입니다. 이 장치는 문과 창문과 같은 입구를 감지하고 모니터링하는 데 사용됩니다. 이 장치는 접촉 센서, 출입 센서 또는 창문 센서라고도 불립니다.
이 튜토리얼은 라즈베리 파이를 도어 센서와 함께 사용하는 방법을 안내합니다. 자세히 살펴볼 내용은 다음과 같습니다:
- 라즈베리 파이를 도어 센서에 연결하는 방법.
- 라즈베리 파이를 프로그래밍하여 도어 센서의 상태를 읽는 방법.
- 라즈베리 파이를 프로그래밍하여 문이 열려 있는지 닫혀 있는지 확인하는 방법.
Hardware Preparation
1 | × | Raspberry Pi 4 Model B | Amazon | |
1 | × | Door Sensor | 쿠팡 | Amazon | |
1 | × | (추천) Screw Terminal Block Shield for Raspberry Pi | 쿠팡 | Amazon | |
1 | × | (추천) USB-C Power Cable with On/Off Switch for Raspberry Pi 4B | Amazon | |
1 | × | (추천) Plastic Case and Cooling Fan for Raspberry Pi 4B | Amazon | |
1 | × | (추천) HDMI Touch Screen Monitor for Raspberry Pi | Amazon |
도어 센서에 관하여
도어 센서 핀아웃
문 센서는 두 부분으로 구성됩니다.
- 두 핀이 있는 리드 스위치
- 자석
일반적인 스위치/버튼과 마찬가지로, 리드 스위치의 두 핀을 구별할 필요가 없습니다.
작동 방식
자석은 움직이는 요소인 문/창문에 부착되고, 리드 스위치는 고정된 요소인 문틀에 부착됩니다. 문이 닫히면 두 구성 요소가 접촉합니다:
- 자석이 리드 스위치에 가까워지면 리드 스위치 회로가 닫힙니다.
- 자석이 리드 스위치에서 멀어지면 리드 스위치 회로가 열립니다.
※ NOTE THAT:
리드 스위치는 핀에 LOW 또는 HIGH 값을 제공하지 않습니다. 스위치는 닫혀 있거나 열려 있습니다. 라즈베리 파이와 연결된 핀의 값은 LOW, HIGH 또는 플로팅(예측할 수 없는) 값일 수 있습니다. 플로팅 값을 방지하려면 라즈베리 파이 핀에 풀업 또는 풀다운 저항을 사용해야 합니다.
리드 스위치의 한 핀을 GND에 연결하고 리드 스위치의 다른 핀을 풀업 저항기(내부 또는 외부)가 있는 Raspberry Pi 입력 핀에 연결하면:
- 자석이 리드 스위치에 가까울 때, Raspberry Pi 입력 핀의 값은 LOW입니다.
- 자석이 리드 스위치에서 멀리 있을 때, Raspberry Pi 입력 핀의 값은 HIGH입니다.
문 상태를 확인하려면 라즈베리 파이의 입력 핀 상태를 확인하기만 하면 됩니다.
- 상태가 LOW이면, 문이 닫혀 있습니다
- 상태가 HIGH이면, 문이 열려 있습니다
문 열림/문 닫힘 이벤트를 감지하기 위해, 우리는 Raspberry Pi 입력 핀의 상태 변화를 모니터링할 수 있습니다.
- 상태가 LOW에서 HIGH로 전환되면 문 열림 이벤트가 감지됩니다.
- 상태가 HIGH에서 LOW로 전환되면 문 닫힘 이벤트가 감지됩니다.
Wiring Diagram
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
배선 구성을 간단하고 체계적으로 만들기 위해, Raspberry Pi용 스크루 터미널 블록 실드 사용을 권장합니다. 이 실드는 아래와 같이 더욱 안정적이고 관리하기 쉬운 연결을 제공합니다:
도어 센서를 위한 프로그래밍 방법
- GPIO.setup() 함수를 이용하여 Raspberry Pi 핀을 디지털 입력 모드로 초기화합니다. 예를 들어, 다음 코드는 핀 13을 입력으로 초기화하는 데 사용할 수 있습니다:
- Raspberry Pi 핀의 상태를 확인하기 위해 GPIO.input() 함수를 사용합니다.
라즈베리 파이 코드 - 문 열림 및 닫힘 상태 확인
Detailed Instructions
- 라즈비안 또는 기타 Raspberry Pi 호환 운영 체제가 Pi에 설치되어 있는지 확인하십시오.
- Raspberry Pi가 PC와 동일한 로컬 네트워크에 연결되어 있는지 확인하십시오.
- 일부 라이브러리를 설치해야 하는 경우 Raspberry Pi가 인터넷에 연결되어 있는지 확인하십시오.
- Raspberry Pi를 처음 사용하는 경우, Raspberry Pi 설정 방법을 참조하십시오.
- Linux와 macOS에서는 내장된 SSH 클라이언트를 사용하고, Windows에서는 PuTTY를 사용하여 SSH를 통해 PC를 Raspberry Pi에 연결하십시오. PC를 Raspberry Pi에 SSH로 연결하는 방법을 참조하십시오.
- RPi.GPIO 라이브러리가 설치되어 있는지 확인하십시오. 설치되어 있지 않다면, 다음 명령어를 사용하여 설치하십시오:
- door_sensor.py 파일을 만들고 다음 코드를 추가하세요:
- 파일을 저장하고 터미널에서 다음 명령어를 실행하여 Python 스크립트를 실행하세요:
- 자석을 리드 스위치에 가까이 가져갔다가 멀리 이동합니다.
- 터미널에서 결과를 확인합니다.
스크립트는 터미널에서 Ctrl + C를 누를 때까지 무한 루프에서 계속 실행됩니다.
코드가 현재 문 상태를 계속 출력하는 것을 알 수 있습니다. 문 상태가 변경될 때만 출력되도록 하려면 다음 세션을 확인하세요.
라즈베리 파이 코드 - 문 열림 및 문 닫힘 이벤트 감지
- Python 스크립트 파일 door_sensor_events.py를 생성하고 다음 코드를 추가하세요:
- 파일을 저장하고 터미널에서 다음 명령어를 실행하여 Python 스크립트를 실행하세요:
- 자석을 리드 스위치 근처로 가져간 다음 멀리 이동하세요.
- 터미널에서 결과를 확인하세요.
- 문 상태가 변경될 때만 문 상태가 출력되는 것을 볼 수 있습니다.
Video Tutorial
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.