안녕하세요 오늘은 토양수분감지센서 [토양습도감지센서-soil Moisture Sensor]에 대해서 알아보도록 하겠습니다.
간단소개
1. 토양수분감지센서를 이용해서 흙의 수분을 측정
2. 측정된 값을 OLED를 이용하여 값을 표시
핵심부품
- 아두이노 토양습도감지 센서 모듈 - 토양 수분감지 센서 모듈 [HS-Soil Moisture Sensor ]
VCC : 아두이노의 5V에 연결
GND : 아두이노의 GND에 연결
AO : 아두이노의 analog 핀에 연결하여 DO 핀 보다 상세하게 값을 알 수 있습니다.
DO: 아두이노의 Digital 핀에 연결로 0, 1 값을 통해서 토양수분의 유무만 체크합니다.
- OLED
OLED는 이전글을 참고하시면 됩니다.
부품목록
브레드보드
회로도
소스코드
/*
제목 : 토양 수분센서로 수분량을 측정하고 OELD로 표시하기
내용 : 토양 수분센서로 토양에 있는 수분량을 측정하고, 측정 값을 OELD에 표시하기
*/
#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);
// 토양 수분센서를 A0번 핀으로 설정
int soil = A0;
//OLED는 별도로 핀을 지정할 필요 없이 A4, A5로 사용
void setup() {
// 토양 수분센서의 동작 상태를 확인하기 위하여 시리얼 통신을 설정합니다.
// (전송속도 9600bps)
// 메뉴 Tool -> Serial Monitor 클릭
Serial.begin(9600);
}
void loop() {
// 측정된 값은 실제 수분량을 나타내는 것이 아니라, 0~1023 범위로 환산된 저항값을 의미
int value = analogRead(soil);
// 토양 수분센서로부터 측정된 값를 시리얼 모니터에 출력
Serial.print("sensor value : ");
Serial.println(value);
// 수분센서로부터 측정된 값을 OLED에 표시
OLEDShow(value);
// 1초 동안 대기합니다.
delay(1000);
}
void OLEDShow(int sensor){
//기존 센서 값은 int형(숫자)이므로 OLED에 표시하기 위해서 String으로 변환
String strVal = String(sensor);
u8g.firstPage();
do{
u8g.setFont(u8g_font_unifont);
u8g.setPrintPos(0,30); //초기 위치 설정
u8g.print("Baessi Blog"); //초기 위치 설정에 따른 text 출력
u8g.setPrintPos(0,50);
u8g.print("value: ");
u8g.setPrintPos(50,50);
u8g.print(strVal);
}while(u8g.nextPage());
}
구현영상
이상입니다 감사합니다.
'프로그래밍 > 아두이노[Arduino]&라즈베리파이[Raspberry Pi]' 카테고리의 다른 글
라즈베리파이 B+ 에 OS 설치하기[라즈비안 설치] (0) | 2019.12.17 |
---|---|
[아두이노] OLED[0.96인치(128*64)]에 원하는 그림 출력-NodeMCU포함 (0) | 2019.05.13 |
[아두이노] OLED 사용해보기 [OLED에 텍스트 표시, 예제 실습] (3) | 2019.05.01 |
[아두이노] 조이스틱[joystick] 모듈을 사용하여 LED제어하기 (4) | 2019.04.29 |
[아두이노] 전압센서 모듈을 이용하여 LCD에 센서값 표시하기 (0) | 2019.04.29 |