아두이노:온습도센서: 두 판 사이의 차이

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동
잔글 (→‎연결)
잔글 (→‎연결)
24번째 줄: 24번째 줄:
* 측정 범위: 0~99.9%RH, -40~80℃
* 측정 범위: 0~99.9%RH, -40~80℃
* 반복 정밀도: ±0.1%RH, ±0.1℃
* 반복 정밀도: ±0.1%RH, ±0.1℃
|<syntaxhighlight lang="c++">
|라이브러리에서 DHT sensor library를 설치한 후 작동된다.<syntaxhighlight lang="c++" line="1">
#include "DHT.h"
#include "DHT.h"
#define DHTPIN 2    // what pin we're connected to
#define DHTTYPE DHT22  // DHT 22  (AM2302)


int maxHum = 60;
#define DHTPIN 2      // DHT 센서의 데이터 핀을 연결한 아두이노 핀 번호
int maxTemp = 40;
#define DHTTYPE DHT22  // DHT22 센서를 사용
 
DHT dht(DHTPIN, DHTTYPE);
DHT dht(DHTPIN, DHTTYPE);
 
void setup() {
void setup() {
   Serial.begin(9600);  
   Serial.begin(9600);
   dht.begin();
   dht.begin();
}
}
 
void loop() {
void loop() {
  // Wait a few seconds between measurements.
   delay(2000);  // 센서 읽기 간격을 2초로 설정
   delay(1000);
 
   
  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
   float h = dht.readHumidity();
   float h = dht.readHumidity();
  // Read temperature as Celsius
   float t = dht.readTemperature();
   float t = dht.readTemperature();
    
   float f = dht.readTemperature(true);  // 화씨 온도 읽기
  // Check if any reads failed and exit early (to try again).
 
   if (isnan(h) || isnan(t)) {
   if (isnan(h) || isnan(t) || isnan(f)) {
     Serial.println("Failed to read from DHT sensor!");
     Serial.println("센서에서 데이터를 읽을 수 없습니다!");
     return;
     return;
   }
   }
 


   Serial.print("Humidity: ");  
   Serial.print("습도: ");
   Serial.print(h);
   Serial.print(h);
   Serial.print(" %t");
   Serial.print(" %\t");
   Serial.print("Temperature: ");  
   Serial.print("온도: ");
   Serial.print(t);
   Serial.print(t);
   Serial.println(" *C ");
   Serial.print(" *C ");
  Serial.print(f);
  Serial.println(" *F");
}
}
</syntaxhighlight>
</syntaxhighlight>

2024년 7월 23일 (화) 14:36 판

아두이노 관련 정보를 모으기 위한 틀. 틀:아두이노

  1. 아두이노:개요
  2. 아두이노:하드웨어
    1. 아두이노:우노보드
  3. 아두이노:코드
    1. 아두이노:기초 문법
    2. 아두이노:라이브러리
    3. 아두이노:컴퓨터에서 보드로
    4. 아두이노:안드로이드에서 보드로
  4. 아두이노:핀 사용
    1. 아두이노:전원공급
  5. 아두이노:시리얼 통신
    1. 아두이노:엑셀기록
    2. 아두이노:파이썬과 통신
  6. 아두이노:편의함수
  7. 센서 사용
    1. 아두이노:모션센서
    2. 아두이노:온습도센서
    3. 아두이노:조도센서
    4. 아두이노:pH미터 만들기(Gravity 아날로그 pH센서)
  8. 아두이노:LCD 사용
  9. 아두이노:스위치 사용
  10. 아두이노:릴레이
  11. 아두이노:WIFI
  12. 아두이노:해결되지 않은 다양한 의문들
  13. 수업용 간단 실습
    1. 아두이노:LED
    2. 아두이노:초음파센서
  14. 분류:아두이노 프로젝트

온도와 습도를 측정하기 위한 센서


사용법

연결

종류 설명 연결예시
DHT11 많이들 쓰는 건데... 온도 분해능이 1도라 권장하진 못하겠다.
  • 온도 사양 : 분해능  1℃ / 정확도 ±2℃ / 측정 범위 0~50℃
  • 습도 사양: 분해능 1%RH / 정확도 ±5%RH(0~50℃) / 측정범위 20~90% RH (25℃)
링크
DHT22 DHT11보다 2배는 비싸지만 이걸 권장하고 싶다.

아두이노용으로 3핀으로 납땜하여 나오는 걸 사면 사용이 편하다.

  • 정확성: ±2%RH, ±0.5℃
  • 측정 범위: 0~99.9%RH, -40~80℃
  • 반복 정밀도: ±0.1%RH, ±0.1℃
라이브러리에서 DHT sensor library를 설치한 후 작동된다.
#include "DHT.h"

#define DHTPIN 2       // DHT 센서의 데이터 핀을 연결한 아두이노 핀 번호
#define DHTTYPE DHT22  // DHT22 센서를 사용

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  dht.begin();
}

void loop() {
  delay(2000);  // 센서 읽기 간격을 2초로 설정

  float h = dht.readHumidity();
  float t = dht.readTemperature();
  float f = dht.readTemperature(true);  // 화씨 온도 읽기

  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("센서에서 데이터를 읽을 수 없습니다!");
    return;
  }

  Serial.print("습도: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("온도: ");
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print(f);
  Serial.println(" *F");
}

코드

코드는 위 링크 참고하자.

해볼 만한 과제

  • 과학적 원리에 대해 조사 발표.
  • 위 코드를 해석, 발표.
  • 이것으로 할 수 있는 활동은 어떤 것들이 있을까?