ESP32 - 수위 센서 | ESP32 - Water Sensor
이 튜토리얼은 ESP32와 수분 센서를 사용하여 강우 감지, 물 새는 것 감지, 탱크 오버플로 감지 및 수위 측정하는 방법을 안내합니다.
준비물
1 | × | ESP-WROOM-32 Dev Module | 쿠팡 | Amazon | |
1 | × | USB Cable Type-C | 쿠팡 | Amazon | |
1 | × | Water level sensor | 쿠팡 | Amazon | |
1 | × | Breadboard | 쿠팡 | Amazon | |
1 | × | Jumper Wires | Amazon | |
1 | × | (Optional) DC Power Jack | 쿠팡 | Amazon | |
1 | × | (Recommended) Screw Terminal Expansion Board for ESP32 | 쿠팡 | Amazon |
물 수위 센서에 대하여
수위 센서 핀배열
물 수위 센서에는 3개의 핀이 포함됩니다:
- S (Signal) 핀: 이 핀은 물의 수위에 비례하는 아날로그 전압을 출력합니다. 이 핀은 ESP32의 아날로그 입력 핀에 연결되어야 합니다.
- + (VCC) 핀: 이 핀을 3.3V 혹은 5V에 연결하세요.
- - (GND) 핀: 이 핀을 GND에 연결하세요.
수위 센서가 작동하는 방식
단순히 말해서, 센서가 물에 더 많이 잠길수록 S 핀의 출력 전압이 높아집니다. 전압을 측정함으로써 우리는 물의 수위를 알 수 있습니다.
선연결
이론적으로, 우리는 센서의 VCC와 GND 핀을 각각 ESP32의 3.3V와 GND 핀에 연결함으로써 수분 센서에 전력을 공급할 수 있습니다.
그러나 그 방법은 실제로 권장되지 않습니다. 만약 우리가 수분 센서에 지속적으로 전력을 공급한다면, 수분 센서는 습한 환경에 의해 전기화학적으로 더 빠르게 부식됩니다 ⇒ 센서에서 값을 읽을 때만 수분 센서에 전력을 공급하는 것이 더 좋습니다. 이를 위해, 우리는 센서의 VCC 핀을 ESP32의 디지털 핀에 연결하고, 읽기 전에 ESP32의 핀을 HIGH로, 읽은 후에는 LOW로 프로그래밍할 수 있습니다.
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
ESP32 및 다른 구성 요소에 전원을 공급하는 방법에 대해 잘 알지 못하는 경우, 다음 튜토리얼에서 안내를 찾을 수 있습니다: ESP32 전원 공급 방법.
ESP32 코드 - 수위 센서에서 값 읽기
사용 방법
- ESP32를 처음 사용하는 경우, Arduino IDE에서 ESP32 환경 설정 방법을 참조하세요.
- 위의 코드를 복사하여 Arduino IDE에 붙여넣으세요.
- Arduino IDE에서 Upload 버튼을 클릭하여 ESP32 보드에 코드를 컴파일하고 업로드하세요.
- 센서를 물에 천천히 담그세요 (물이 담긴 유리 컵에).
- 시리얼 모니터에서 결과를 확인하세요. 결과는 아래와 같습니다: 센서가 아무것도 만지지 않았을 때 값은 0입니다.
※ NOTE THAT:
물 감지기는 완전히 잠기도록 설계되지 않았으며, PCB에 노출된 트레이스만이 물에 잠길 수 있습니다. 설치 시 주의하십시오.
물 샐피 감지하는 방법
물 새는 것, 강우, 그리고 탱크 넘침을 감지하기 위해 센서 값과 임계값을 비교하기만 하면 됩니다. 이 임계값은 본 튜토리얼의 교정 부분에서 결정됩니다.
물 샘을 감지하면 ESP32가 LED를 켜도록 합시다.
배선도
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
ESP32 코드 - 물 새는 감지
물의 수위를 측정하는 방법
아래 코드는 수위를 4단계로 나눕니다.
※ NOTE THAT:
- SENSOR_MIN과 SENSOR_MAX는 보정 과정에 의해 결정됩니다.
- 위의 매핑 방법은 정확하지 않습니다. 그러나 많은 응용 프로그램에서는 허용됩니다.
수위 센서 보정
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.