IoT의 이해
전병현 교수
6주차 2강. CDS 조도 센서와
온습도 감지 센서 제어
학습내용
학습목표
1. CDS 조도 센서 2. 온습도 감지 센서
1. CDS 조도 센서를 제어할 수 있다.
2. 온습도 감지 센서를 제어할 수 있다.
이미지
준비물 브레드 보드(1개) 아두이노 보드(1개)
이미지
준비물 조도센서
(1개) LED(1개) 10KΩ 저항(1개)
220Ω 저항(1개)
1. CDS 조도 센서(1)
◉ 실습 준비물
1. CDS 조도 센서(2)
◉ 회로도 구성(1)
• LED(+)에 9번 핀, LED(-)는 220Ω 저항을 연결 후 GND에 연결
• 조도 센서는 한 쪽은 A0와 10KΩ 저항에 연결 후 GND 연결
•출처 : AUTODESK - TINKERCAD. https://www.tinkercad.com
1 2
1. CDS 조도 센서(3)
◉ 회로도 구성(2)
•출처 : AUTODESK - TINKERCAD. https://www.tinkercad.com
1 2
1. CDS 조도 센서(4)
◉ 회로도 구성(3)
3
•출처 : AUTODESK - TINKERCAD. https://www.tinkercad.com
5V전원공급/GND/INPUT OUTPUT
1. CDS 조도 센서(5)
◉ 회로도 구성(4)
•출처 : AUTODESK - TINKERCAD. https://www.tinkercad.com
1. CDS 조도 센서(6)
◉ 실습 소스(1)
int CDSPin = A0;
// CDS 아날로그 값 읽기int sensorValue = 0;
// 센서 값 출력void setup() {
pinMode(9, OUTPUT);
// 9핀 OUTPUT으로 지정Serial.begin(9600);
// 시리얼 통신 시작}
void loop() {
sensorValue = analogRead(CDSPin);
// CDS값 읽어서 sensroValue에 저장
1. CDS 조도 센서(7)
◉ 실습 소스(2)
Serial.println(sensorValue);
// sensorValue값 프린트if (sensorValue < 800) {
// CDS값이 800보다 작으면digitalWrite(9, HIGH);
// 9번 LED ON}
else {
// 그렇지 않으면digitalWrite(9, LOW);
// 9번 LED OFF}
}
이미지
준비물 아두이노 보드(1개)
이미지
준비물 온습도 센서(1개) 점프선 소량
2. 온습도 감지 센서
◉ 실습 준비물
2. 온습도 감지 센서(2)
◉ 회로도 구성
•출처 : Fritzing. http://fritzing.org
2. 온습도 감지 센서(3)
◉ 실습 소스(1)
#include <DHT.h> // 라이브러리 추가
#include <DHT_U.h>
#define DHTPIN 2 // dht11 핀 지정
#define DHTTYPE DHT11 // 사용할 dht 타입 지정 DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600); // 시리얼 통신 시작 dht.begin(); // dht 통신 시작 }
void loop() {
float humidity = dht.readHumidity(); // 습도 float temperature = dht.readTemperature(); // 온도
2. 온습도 감지 센서(4)
◉ 실습 소스(2)
if (isnan(humidity) || isnan(temperature) ) { // 습온도 센서 동작 체크 Serial.println("Failed to read from DHT sensor!");
return;
} // 습온도 센서 동작 체크 끝
Serial.print((int)temperature); // 온도 시리얼모니터에 출력 Serial.print(" *C, ");
Serial.print((int)humidity); // 습도 시리얼 모니터에 출력 Serial.println(" %");
delay(2000);
}
①
②
시리얼모니터
2. 온습도 감지 센서(5)
◉ 결과 확인
• 시리얼 모니터에 온도와 습도가 출력되는 것을 확인
학습하기가 끝났습니다.
다음페이지 버튼을 클릭하여
평가문항을 풀어보세요. 프로그램 실습
※ 자료실에서 프로그램 소스 코드를 다운로드 받으세요.
실습
1. CDS 조도 센서(1)
1. 실습 준비물 : 아두이노 보드(1개), 브레드 보드(1개), 조도 센서(1개) , LED(1개), 10kΩ 저항(1개), 220Ω 저항(1개)
2. 조도 센서가 감지한 빛의 밝기에 따라서 LED에 불이 들어온다.
◉ 실습 준비물
실습
1. CDS 조도 센서(2)
1. LED(+)와 디지털 9번 핀을 연결한다.
2. 조도 센서와 A0를 연결을 하고, 10kΩ 저항과 GND를 연결한다.
3. sensorValue = analogRead(CDSPin) : CDS값 읽어서 sensroValue에 저장
◉ 실습 소스(1)
실습
1. CDS 조도 센서(3)
4. Serial.println(sensorValue) : sensorValue 값 프린트 5. if (sensorValue < 800) : CDS값이 800보다 작으면
6. digitalWrite(9, HIGH) : 9번 LED ON, LOW : LED OFF
◉ 실습 소스(2)
실습
1. CDS 조도 센서(4)
1. 조도 센서에 감지되는 센서 값이 800이하면 LED에 불이 들어온다.
◉ 실행하기
실습
2. 온습도 감지 센서(1)
1. 실습 준비물 : 아두이노 보드(1개), 브레드 보드(1개), 온습도 센서(1개) 2. 온습도 감지 센서에 의해 온도와 습도를 시리얼 모니터로 출력한다.
◉ 실습 준비물
실습
2. 온습도 감지 센서(2)
1. 아두이노 보드 디지털 2번 핀과 온습도 센서 1번 핀을 연결한다.
2. #include <DHT.h> : 라이브러리 추가 및 #define DHTPIN 2 : dht11 핀 지정 3. float humidity = dht.readHumidity() : 습도 값을 읽어 옴
4. float temperature = dht.readTemperature() : 온도 값을 읽어 옴
◉ 실습 소스(1)
실습
2. 온습도 감지 센서(3)
4. if (isnan(humidity) || isnan(temperature) ) : 온습도 센서 동작 체크 5. Serial.print((int)temperature) : 온도를 시리얼 모니터에 출력
6. Serial.print((int)humidity) : 습도를 시리얼 모니터에 출력
◉ 실습 소스(2)
실습
2. 온습도 감지 센서(4)
1. 시리얼 모니터로 온도와 습도 결과 값이 출력된다.
◉ 실행하기
실습점검
1. 실습에 필요한 보드와 준비물이 준비가 되었나요?
2. CDS 조도 센서를 활용할 수 있나요?
3. 온습도 센서를 활용할 수 있나요?
예 예 예
아니오 아니오 아니오 실습 재미있게 해보셨나요?
‘CDS 조도 센서와 온습도 감지 센서’
에 대해 실습한 내용과
자신의 실습 결과물을 비교해 보세요.
실습점검
1. CDS 조도 센서
- 회로도 구성이 잘 되었는지 확인
- 라이브러리 등록이 잘 되었는지 확인
- sensorValue = analogRead(CDSPin) 값이 정상 발생 되는지를 확인 2. 온습도 감지 센서
- 회로도 구성이 잘 되었는지 확인
- 라이브러리 등록이 잘 되었는지 확인
- float humidity = dht.readHumidity 값이 정상 발생 되는지 확인
- float temperature = dht.readTemperature 값이 정상 발생 되는지 확인
◉ 교수자 실습 Tip
다음시간에는…
에 대해 학습해 보겠습니다.
참고문헌