본문 바로가기

아두이노

온도 센서와 초음파 센서를 결합하여 환경 데이터 수집

반응형

온도 센서와 초음파 센서를 결합하여 환경 데이터를 수집하는 아두이노 프로젝트를 구성하는 방법을 설명하겠습니다. 이 프로젝트에서는 온도 센서로 주변 환경의 온도를 측정하고, 초음파 센서로 주변 물체와의 거리를 측정합니다. 이 데이터를 아두이노를 통해 수집하고 분석할 수 있습니다.

1. 이론 소개

  • 온도 센서: 주변 환경의 온도를 측정합니다. 일반적으로 사용되는 온도 센서로는 DHT11, DHT22, LM35 등이 있습니다.
  • 초음파 센서: 사운드 웨이브를 이용하여 물체와의 거리를 측정합니다. 일반적으로 사용되는 초음파 센서로는 HC-SR04가 있습니다.

2. 준비물

  • 아두이노 보드 (Uno, Mega 등)
  • 온도 센서 (DHT11, DHT22, LM35 등)
  • 초음파 센서 (HC-SR04)
  • 점퍼 와이어
  • 브레드보드

3. 비슷한 센서 모델

  • 온도: DS18B20 (방수 기능이 있어 다양한 환경에 적합)
  • 초음파: Parallax Ping)))™ 센서 (좀 더 정밀한 측정 가능)

4. 추천 보드 및 간단한 설명

  • 아두이노 Uno: 다용도로 사용하기 좋고 초보자에게 친숙
  • 아두이노 Mega: 더 많은 I/O 핀을 제공, 복잡한 프로젝트에 적합

5. 회로 구성

  • 온도 센서와 초음파 센서를 각각 아두이노의 아날로그 및 디지털 핀에 연결
  • 필요한 전원 및 그라운드 연결

6. 코딩 내용(주석 포함)

#include <DHT.h>

#define DHTPIN A0  // DHT 센서 핀
#define DHTTYPE DHT11  // DHT 타입
DHT dht(DHTPIN, DHTTYPE);

#define TRIG_PIN 9
#define ECHO_PIN 10
#define MAX_DISTANCE 200

void setup() {
  Serial.begin(9600);
  dht.begin();
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
}

void loop() {
  // 온도 데이터 읽기
  float temp = dht.readTemperature();
  Serial.print("Temperature: ");
  Serial.print(temp);
  Serial.println(" C");

  // 초음파 센서 거리 측정
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  long duration = pulseIn(ECHO_PIN, HIGH);
  long distance = duration * 0.034 / 2;
  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");

  delay(1000);
}

 

 

7. 코딩 내용 설명

이 코드는 DHT 라이브러리를 사용하여 온도를 읽고, 초음파 센서를 통해 거리를 측정합니다. 읽은 데이터는 시리얼 모니터를 통해 출력됩니다.

8. 코드 업로드 및 테스트

  1. 아두이노 IDE에 코드를 입력하고 업로드
  2. 시리얼 모니터를 통해 온도와 거리 데이터 확인

9. 응용 업그레이드

  • Wi-Fi 모듈을 추가하여 인터넷을 통한 원격 모니터링
  • 여러 센서를 조합하여 더 많은 환경 데이터 수집
  • 데이터 로깅 기능 추가

10. 전문용어 및 설명

  • DHT: 디지털 온습도 센서
  • HC-SR04: 초음파를 이용한 거리 측정 센서

11. 기타

온도와 초음파 센서의 정확도는 환경에 따라 달라질 수 있으므로, 여러 조건에서 테스트하는 것이 좋습니다.

 

 

반응형