라즈베리 파이 수위 센서
이 튜토리얼은 Raspberry Pi와 수위 센서를 사용하는 방법을 안내합니다. 자세히 알아볼 내용은 다음과 같습니다:
- 라즈베리 파이를 수위 센서에 연결하는 방법.
- 라즈베리 파이를 프로그래밍하여 수위 센서의 상태를 읽는 방법.
- 라즈베리 파이를 사용하여 물 누수, 강수량, 탱크 오버플로를 감지하고 수위 측정하는 방법.
- 수위 센서를 보정하는 방법.
Hardware Preparation
1 | × | Raspberry Pi 4 Model B | Amazon | |
1 | × | ADS1115 ADC Module | Amazon | |
1 | × | Water level sensor | 쿠팡 | Amazon | |
1 | × | Jumper Wires | 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 |
수위 센서에 대하여
수위 센서 핀아웃
수위 센서에는 3개의 핀이 있습니다.
- S (Signal) 핀: 이것은 아날로그 출력으로 Raspberry Pi의 아날로그 입력 중 하나에 연결해야 합니다.
- + (VCC) 핀: 센서에 전력을 공급하며, 3.3V - 5V 사이를 사용하는 것이 권장됩니다.
- - (GND) 핀: 이것은 접지 연결입니다.
※ NOTE THAT:
센서의 신호 핀은 VCC 핀에 제공된 전압에 따라 아날로그 출력을 생성합니다.
수위 센서의 작동 원리
요약하자면, 센서가 물에 잠기는 양이 증가함에 따라 신호 핀의 출력 전압이 증가합니다.
자세히 살펴봅시다.
센서에는 노출된 구리 트레이스가 열 개 있으며, 다섯 개는 전원 트레이스이고 다른 다섯 개는 감지 트레이스입니다. 이 트레이스는 평행으로 배열되어 있으며, 두 개의 전원 트레이스 사이마다 하나의 감지 트레이스가 있습니다. 잠수 시 물에 의해 연결되지 않는 한, 이 트레이스는 연결되지 않은 상태로 남아 있습니다.
이 흔적들은 가변 저항기로서 작용하며, 이는 전위차계와 유사하게 할 수 있으며 저항은 수위에 따라 달라집니다.
- 저항은 센서의 상단에서 물 표면까지의 거리로 결정됩니다.
- 저항은 존재하는 물의 양에 반비례합니다:
- 센서에 더 많은 물이 잠기면, 전도성이 증가하고 저항이 감소합니다.
- 센서에 덜 잠기면, 전도성이 감소하고 저항이 증가합니다.
- 센서의 출력 전압은 저항을 기반으로 합니다.
수위를 결정하는 것은 전압을 측정함으로써 수행될 수 있습니다.
Wiring Diagram
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
배선 구성을 간단하고 체계적으로 만들기 위해, Raspberry Pi용 스크루 터미널 블록 실드 사용을 권장합니다. 이 실드는 아래와 같이 더욱 안정적이고 관리하기 쉬운 연결을 제공합니다:
라즈베리 파이 코드 - 수위 센서에서 값 읽기
Detailed Instructions
- Raspberry Pi에 Raspbian 또는 다른 Raspberry Pi 호환 운영 체제가 설치되어 있는지 확인하십시오.
- Raspberry Pi가 PC와 같은 로컬 네트워크에 연결되어 있는지 확인하십시오.
- 라이브러리를 설치해야 하는 경우 Raspberry Pi가 인터넷에 연결되어 있는지 확인하십시오.
- Raspberry Pi를 처음 사용하는 경우, Raspberry Pi 설정 방법을 참조하십시오.
- Linux와 macOS의 기본 SSH 클라이언트 또는 Windows의 PuTTY를 사용하여 SSH를 통해 PC를 Raspberry Pi에 연결하십시오. SSH를 통해 PC를 Raspberry Pi에 연결하는 방법을 참조하십시오.
- RPi.GPIO 라이브러리가 설치되어 있는지 확인하십시오. 설치되어 있지 않으면 다음 명령을 사용하여 설치하십시오:
- 다음 명령어를 Raspberry Pi 터미널에서 실행하여 Adafruit_ADS1x15 라이브러리를 설치하세요:
- 파이썬 스크립트 파일 water_sensor.py를 만들고 다음 코드를 추가하십시오.
- 파일을 저장하고 터미널에서 다음 명령어를 실행하여 Python 스크립트를 실행하세요:
- 센서를 물이 담긴 유리잔에 부드럽게 넣으세요.
- 터미널의 출력을 확인하세요; 센서가 아무것과도 접촉하지 않을 때 출력은 0이어야 합니다.
스크립트는 터미널에서 Ctrl + C를 누를 때까지 무한 루프로 계속 실행됩니다.
※ NOTE THAT:
센서는 완전히 잠기지 않도록 설계되었습니다. 인쇄 회로 기판의 노출된 트레이스만 물과 접촉해야 합니다. 설치 시 주의하십시오.
물 누출 감지 방법
누수를 감지하고 강우 및 탱크 넘침을 감지하기 위해, 우리는 이 튜토리얼의 보정 부분에서 결정된 임계값과 판독값을 비교하기만 하면 됩니다.
특정 사례를 고려해 봅시다. 물이 감지되면 Raspberry Pi가 LED를 활성화합니다. 배선에 대한 자세한 내용은 Raspberry Pi에 LED 연결하기를 참조하세요.
라즈베리 파이 코드 - 물 누수 감지
Detailed Instructions
- 파이썬 스크립트 파일 water_sensor_led.py을 생성하고 다음 코드를 추가하세요:
- 파일을 저장하고 터미널에서 다음 명령을 실행하여 Python 스크립트를 실행하십시오:
- 센서를 물이 담긴 유리잔에 부드럽게 넣으세요.
- LED 상태 출력을 확인하세요.
수위 센서 교정
센서의 출력은 수위에만 영향을 받는 것이 아니라 물의 전도도에도 영향을 받습니다. 순수한 물은 전도성이 없지만, 미네랄과 불순물이 포함된 물은 전도성이 있습니다. 물의 전도도가 높을수록 센서의 민감도가 높아집니다. 또한, 출력 값은 센서의 VCC 핀에 공급되는 전압에도 의존합니다.
물 센서를 정확하게 읽기 위해서는 모니터링할 특정 유형의 물에 맞춰 센서를 보정할 것을 권장합니다.
보정 지침:
- 위에 제공된 스케치를 사용하여 센서 값을 읽습니다.
- 센서를 원하는 수준으로 물에 담가 임계값을 설정합니다.
- 센서가 터미널에 표시하는 값을 기록합니다.
- 이 값을 사용하여 동작을 유발하는 임계값으로 설정합니다.
시험은 또한 다음을 발견하는 데 사용할 수 있습니다:
- 센서가 액체에 잠기지 않았을 때의 MIN_ADC_VALUE 값
- 센서가 액체에 완전히 잠겼을 때의 MAX_ADC_VALUE 값
Video Tutorial
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.
스스로에게 도전하세요
- 물 누수가 감지되면:
- 이메일 보내기
- SMS 메시지 보내기
- 소리 알람 활성화