설정 방법
- 습도가 높거나 수분의 양이 많을수록 값이 내려간다.
이 코드는 아두이노와 토양 습도 센서를 사용하여 토양의 습도를 측정하고, 그 값을 Serial Monitor에 출력하는 예제입니다. 토양 습도 센서는 토양의 습기 수준에 따라 아날로그 값을 출력하며, 아두이노는 이를 analogRead()
를 통해 읽어옵니다. 일반적으로 값이 낮을수록 습도가 높고, 값이 높을수록 습도가 낮다는 것을 의미합니다.
코드 설명
- 상수 정의
const int sensorPin = A0;
sensorPin
: 토양 습도 센서가 연결된 아날로그 핀 번호(A0)를 상수로 정의합니다.
setup()
함수
void setup() {
Serial.begin(9600);
}
Serial.begin(9600);
: 아두이노와 컴퓨터 간의 시리얼 통신을 시작하며, 초당 9600bps의 속도로 Serial Monitor에 데이터를 출력할 수 있게 합니다.
loop()
함수
void loop() {
int sensorValue = analogRead(sensorPin);
Serial.print("Soil Moisture Value: ");
Serial.println(sensorValue);
delay(1000);
}
-
sensorValue = analogRead(sensorPin);
:sensorPin
에서 아날로그 값을 읽어와서sensorValue
변수에 저장합니다. 이 값은 토양 습도에 따라 0에서 1023 사이의 값으로 표시됩니다.Serial.print("Soil Moisture Value: ");
: Serial Monitor에 “Soil Moisture Value: “라는 텍스트를 출력하여 다음에 출력될 값이 토양 습도임을 나타냅니다.Serial.println(sensorValue);
:sensorValue
의 값을 Serial Monitor에 출력하고, 줄을 바꿉니다.delay(1000);
: 1초 동안 대기한 후 습도 값을 다시 측정합니다.
동작 원리
- 토양 습도 센서 동작:
- 토양 습도 센서는 물과의 전기 전도도를 이용해 토양의 습기를 측정합니다. 습도가 높을수록 전도도가 높아지고, 습도가 낮을수록 전도도가 낮아집니다.
- 토양이 습하면 센서는 낮은 값을 출력하고, 건조할수록 높은 값을 출력합니다. 아두이노는 이 아날로그 출력을 읽어 토양의 습기를 수치화합니다.
- 아두이노와의 상호작용:
- 아두이노는
analogRead()
함수를 사용하여 센서에서 읽은 아날로그 값을sensorValue
에 저장합니다. - 이 값을 Serial Monitor에 출력하여 사용자가 현재 토양의 습도 상태를 확인할 수 있습니다.
- 아두이노는
- 출력 예시:
- 토양이 습하면 낮은 값(예: 300 이하)이 출력되고, 건조하면 높은 값(예: 700 이상)이 출력됩니다. Serial Monitor에는
Soil Moisture Value: [값]
형식으로 1초마다 측정된 값이 표시됩니다.
- 토양이 습하면 낮은 값(예: 300 이하)이 출력되고, 건조하면 높은 값(예: 700 이상)이 출력됩니다. Serial Monitor에는
// Define the pin for the analog output
const int sensorPin = A0;
void setup() {
// Start serial communication
Serial.begin(9600);
}
void loop() {
// Read the analog value from the sensor
int sensorValue = analogRead(sensorPin);
// Print the value to the Serial Monitor
Serial.print("Soil Moisture Value: ");
Serial.println(sensorValue);
// Wait for 1 second
delay(1000);
}
이 코드를 통해 사용자는 토양의 습도를 실시간으로 모니터링할 수 있으며, 값이 일정 수준 이하로 떨어지면 물을 공급하는 시스템을 추가하여 자동 급수 시스템을 구현할 수 있습니다.