본문 바로가기

메이커 이야기/아두이노

[수위 측정] 아두이노 수위센서 사용방법

반응형

수위 센서를 사용하여 높이 측정하기

 - 수위센서가 사실 뭐 정확하지는 않지만, 이런 원리의 센서도 있다는 식으로 알면 좋을 것 같습니다 ^^

 

 사용 부품

1) 아두이노 UNO

2) 수위센서

 

 

회로 연결

 

 

 적용 코드

int level;

int temp;

// 전역변수를 사용하면 함수마다 초기화해야하는 번거로움을 줄일 수 있다.

 

void setup() {

  // put your setup code here, to run once:

  Serial.begin(9600);

  level = map(analogRead(A0),0,200,0,4);

  Serial.println(level);

}

 

bool is_diff();

void loop() {

  // put your main code here, to run repeatedly:

  printWhenDiff();

}

 

void printWhenDiff(){

  temp = map(analogRead(A0),0,200,0,4);

  if(!is_diff()){ // 직전 기록과 차이가 없으면 출력하지 않음

    delay(1000);

    return;

  }

  Serial.println(temp);

  level = temp;

  delay(100);

}

bool is_diff(){ // 직전의 기록과 차이가 있는지 확인하는 함수

  if(level!=temp){

    return true;

  }

  return false;

}

 

 

코드 뜯어보기

 

void is_diff() : 직전의 수위 기록(level) 지금(temp) 다르면 true 반환하는 함수

 

void printWhenDiff() : is_diff 함수가 true 경우( 수위 기록이 바뀌면 ) 현재 기록을 출력하는 함수

 

 

수위 센서 뜯어보기

 

접촉식 수위 센서는 물이 닿기 이전에는 도체로 구성된 금속판에 전류가 흐르지 않다가, 물이 닿게 되면 전류가 흐르는 원리를 이용한다.

이때, 물의 접촉면적이 넓을수록 저항 값이 적어지는 원리로 센서를 수직으로 설치하게 되면, 저항 값이 높이에 반비례 하는 원리를 이용하여 수위를 측정할 수 있다.

 

 

프로젝트로 응용??

피에조 부저, LED 이용한 수위 알람 프로젝트

 

개발 개요

수위의 변동을 체크하고 수위가 높을 , 수위가 낮을 때를 LED Piezo Buzzer 경고하는 회로

 

사용 예정 부품

아두이노 Uno  x 1

수위 센서  x 1

Piezo Buzzer  x 1

 

 

프로젝트 활용

 

어플을 통해 원격으로 물의 높이를 측정하고 싶을 때에는 아래와 같은 예제로 구현이 가능합니다.

 

https://kgu0724.tistory.com/148

 

[Blynk] 수위 측정 모니터링 어플 만들기 (NodeMCU)

수위 센서 데이터 출력하기 ○ 사용 부품 1) nodeMCU x 1 2) 수위 센서 x 1 ○ 적용 회로 ○ 적용 코드 #define BLYNK_PRINT Serial #include #include char auth[] = ""..

kgu0724.tistory.com

 

반응형