아두이노 나노 - 수분 센서 | Arduino Nano - Water Sensor

이 튜토리얼은 Arduino Nano와 물 센서를 사용하는 방법을 안내합니다. 우리는 배울 것입니다:

이것은 물 새는 것, 강우, 탱크 넘침 등을 감지하는 애플리케이션에 적용할 수 있습니다.

준비물

1×Arduino Nano Amazon
1×USB A to Mini-B USB cable 쿠팡 | Amazon
1×Water level sensor 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Optional) 9V Power Adapter for Arduino Nano Amazon
1×(Recommended) Screw Terminal Expansion Board for Arduino Nano 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

수위 센서에 대하여

수위 센서 핀배열

수위 센서에는 3개의 핀이 있습니다:

  • S (시그널) 핀은 아두이노 나노의 아날로그 입력 중 하나에 연결될 아날로그 출력입니다.
  • + (VCC) 핀은 센서에 전원을 공급하며, 3.3V - 5V 사이의 전압을 사용하는 것이 권장됩니다.
  • - (GND) 핀은 접지 연결입니다.
water sensor pinout

물 수위 센서의 작동 월리

간단히 말해서, 센서가 잠겨 있는 물의 양이 많을수록 신호 핀의 전압이 높아질 것입니다.

자세히 살펴보자.

이 섹션에는 압도될 수 있는 고급 정보가 포함되어 있습니다. 내용에 대해 확신이 없다면 건너뛰어 다음 섹션으로 이동하십시오.

센서에는 10개의 노출된 구리 트랙 세트가 있습니다:

  • 그 중 다섯 개는 파워 트랙입니다.
  • 다른 다섯 개는 센스 트랙입니다.

트랙은 매 두 개의 전력 트랙 사이에 하나의 감각 트랙이 평행하게 배치됩니다. 잠긴 상태에서 물에 의해 연결되지 않는 한, 트랙은 서로 연결되어 있지 않습니다.

이 흔적들은 가변 저항기처럼 작용하며, 수위에 따라 저항이 변하는 포텐쇼미터와 유사합니다:

  • 저항값은 센서 상단부터 물 표면까지의 거리에 의해 결정됩니다.
  • 저항값은 물의 양에 반비례합니다:
  • 물이 많을 때, 전도성이 향상되고 저항값은 낮아집니다.
  • 물이 적을 때, 전도성이 감소하고 저항값은 증가합니다.
  • 센서는 저항에 기반한 출력 전압을 생성합니다.

수위를 결정하는 것은 전압을 측정함으로써 할 수 있다.

선연결

이론적으로 센서의 VCCGND 핀은 센서에 전력을 공급하기 위해 아두이노 나노의 5v 및 GND 핀에 연결될 수 있습니다.

그러나 실제로 이러한 방식을 취하는 것은 권장되지 않습니다. 습한 환경에서 센서에 지속적으로 전력이 공급되면 전기화학적으로 더 빨리 부식되어 수명이 단축됩니다.

이를 피하기 위해, 센서를 항상 켜진 상태로 두지 않고 값 읽을 때만 켜는 것을 제안합니다. 이는 센서의 VCC 핀을 아두이노 나노의 디지털 핀에 연결하고, 읽기 전에 아두이노의 핀을 HIGH로 설정한 다음에 LOW로 설정함으로써 수행할 수 있습니다.

Arduino Nano water sensor wiring diagram

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

아두이노 나노 코드 - 수분 센서에서 값 읽기

/* * 이 Arduino Nano 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano/arduino-nano-water-sensor */ #define POWER_PIN 4 // 아두이노 나노 핀이 수분 센서의 전원 핀에 연결됨 #define SIGNAL_PIN A0 // 아두이노 나노 핀이 수분 센서의 신호 핀에 연결됨 int value = 0; // 수분 센서 값 저장 변수 void setup() { Serial.begin(9600); pinMode(POWER_PIN, OUTPUT); // D7 핀을 출력으로 구성 digitalWrite(POWER_PIN, LOW); // 센서 끄기 } void loop() { digitalWrite(POWER_PIN, HIGH); // 수분 센서 켜기 delay(10); // 10밀리초 기다리기 value = analogRead(SIGNAL_PIN); // 센서에서 아날로그 값 읽기 digitalWrite(POWER_PIN, LOW); // 수분 센서 끄기 Serial.print("Water sensor value: "); Serial.println(value); delay(1000); }

사용 방법

  • 위의 코드를 복사하고 Arduino IDE에서 열십시오.
  • Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino Nano로 전송합니다.
  • 센서를 물잔에 조심스럽게 내려놓습니다.
  • 결과를 확인하기 위해 시리얼 모니터를 확인하십시오; 센서가 아무것도 닿지 않았을 때 결과는 0이어야 합니다.
COM6
Send
Water sensor value: 0 Water sensor value: 0 Water sensor value: 0 Water sensor value: 25 Water sensor value: 97 Water sensor value: 284 Water sensor value: 428 Water sensor value: 435 Water sensor value: 441 Water sensor value: 455 Water sensor value: 467 Water sensor value: 521 Water sensor value: 528 Water sensor value: 553
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

센서는 완전히 물에 잠기면 안 됩니다. PCB의 노출된 트레이스만 물과 접촉해야 합니다. 설치할 때 주의해 주세요.

누수 감지 방법

물 새는 것, 강수량, 그리고 탱크 넘침을 식별하기 위해서, 이 튜토리얼의 보정 섹션에서 결정된 임계값과 읽기 값만을 비교하면 됩니다.

특정 사례를 살펴봅시다. 물이 감지되면 Arduino Nano는 LED를 활성화할 것입니다.

배선도

Arduino Nano Water Sensor LED wiring diagram

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

아두이노 나노 코드 - 물 샐피 감지하기

/* * 이 Arduino Nano 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano/arduino-nano-water-sensor */ #define LED_PIN 9 // 아두이노 나노 핀이 LED에 연결됨 #define POWER_PIN 4 // 아두이노 나노 핀이 수분 센서의 전원 핀에 연결됨 #define SIGNAL_PIN A0 // 아두이노 나노 핀이 수분 센서의 신호 핀에 연결됨 #define THRESHOLD 300 int value = 0; // 센서 값 저장을 위한 변수 void setup() { Serial.begin(9600); pinMode(LED_PIN, OUTPUT); // D2 핀을 출력으로 설정 pinMode(POWER_PIN, OUTPUT); // D7 핀을 출력으로 설정 digitalWrite(POWER_PIN, LOW); // 센서를 끔 digitalWrite(LED_PIN, LOW); // LED를 끔 } void loop() { digitalWrite(POWER_PIN, HIGH); // 센서를 켬 delay(10); // 10밀리초 기다림 value = analogRead(SIGNAL_PIN); // 센서에서 아날로그 값 읽기 digitalWrite(POWER_PIN, LOW); // 센서를 끔 if (value > THRESHOLD) { Serial.print("The water is detected"); digitalWrite(LED_PIN, HIGH); // LED를 켬 } else { digitalWrite(LED_PIN, LOW); // LED를 끔 } }

물의 수위를 측정하는 방법

최대 수위를 다양한 레벨로 나누어 현재 레벨을 측정하고자 한다면, 아래 코드에 있는 기술을 활용할 수 있습니다. 최대 수위는 센서의 높이와 동일하다는 것을 유의하세요. 아래 코드는 최대 높이를 4개 레벨로 나눕니다.

/* * 이 Arduino Nano 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano/arduino-nano-water-sensor */ #define POWER_PIN 4 // 아두이노 나노 핀이 연결된 물 센서의 전원 핀 #define SIGNAL_PIN A0 // 아두이노 나노 핀이 물 센서의 신호 핀에 연결됨 #define SENSOR_MIN 0 #define SENSOR_MAX 521 int value = 0; // 센서 값 저장 변수 int level = 0; // 물 수위 저장 변수 void setup() { Serial.begin(9600); pinMode(POWER_PIN, OUTPUT); // D7 핀을 출력으로 설정 digitalWrite(POWER_PIN, LOW); // 센서를 끕니다 } void loop() { digitalWrite(POWER_PIN, HIGH); // 센서를 켭니다 delay(10); // 10밀리초 기다립니다 value = analogRead(SIGNAL_PIN); // 센서에서 아날로그 값을 읽습니다 digitalWrite(POWER_PIN, LOW); // 센서를 끕니다 level = map(value, SENSOR_MIN, SENSOR_MAX, 0, 4); // 4 레벨 Serial.print("Water level: "); Serial.println(level); delay(1000); }

※ NOTE THAT:

  • SENSOR_MIN 및 SENSOR_MAX는 보정을 통해 결정됩니다.
  • 언급된 매핑 방법은 정확하지 않지만, 많은 응용 프로그램에 적합합니다.
  • 더 정확하게 만들고 싶다면, 각 레벨에 대한 임계값을 측정할 수 있습니다. 자세한 정보는 매뉴얼의 보정 섹션을 참조하십시오.

수위 센서 교정

센서의 출력은 수위와 물의 전도성 모두에 의해 영향을 받습니다. 순수한 물은 전도성이 없지만, 미네랄과 불순물이 있는 물은 전도성이 있습니다. 물의 전도성이 높을수록 센서는 더 민감해집니다. 또한, 출력 값은 센서의 VCC 핀에 공급된 전압에도 영향을 받습니다.

물 센서의 정확성을 보장하기 위해, 모니터링될 특정 유형의 물에 대해 센서를 보정하는 것이 좋습니다.

응답을 활성화하기 위한 한계를 설정하기 전에, 실험을 수행하여 센서에서 얻은 진정한 값을 평가하는 것이 필요하다.

시험 지침:

  • 센서 값을 읽을 때 위에 제공된 스케치를 참고하세요.
  • 원하는 임계값 수준에서 물속에 센서를 배치하세요.
  • 센서가 시리얼 모니터에 표시하는 값을 기록하세요.
  • 이 값을 활용하여 특정 동작을 활성화하는 임계값으로 사용하세요.

이 테스트를 완료하려면 실험이 필요할 수도 있습니다. 다양한 접근법을 시도할 준비가 되어 있어야 합니다. 여러 전략으로 실험할 준비를 하세요. 인내심을 가지고 포기하지 마세요. 인내심을 가지고 항복하지 마세요.

이 테스트는 다음을 밝혀내는 데 사용할 수 있습니다:

  • 센서가 액체에 잠기지 않았을 때의 SENSOR_MIN 값
  • 센서가 물에 완전히 잠겼을 때의 SENSOR_MAX 값
  • 물이 쏟아졌을 때를 인지하는 임계값
  • 당신의 등급 척도 각 레벨에 대한 임계값

동영상

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

도전하세요

  • 물 샘 감지 시:
  • 이메일 보내기
  • SMS 메시지 보내기
  • 소리 알람 울리기

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!