산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

DHT11 & DHT22 온습도 센서 키트 - 라즈베리 파이 & 아두이노 호환

부품 및 소모품

부품 수량 비고
DHT11 온습도 센서 (4핀) 1 20~90% 습도, 0~50°C 측정
라즈베리 파이 2 모델 B 1 또는 호환 모델
아두이노 우노 1
수-수 점퍼 와이어 3
브레드보드 (일반) 1
4.7kΩ 저항 1 풀업 저항용
코블러 브레이크아웃 키트 1 라즈베리 파이 GPIO 연결용

앱 및 온라인 서비스

프로젝트 소개

소개

DHT11은 4핀(1핀 미사용) 온습도 센서로, 상대 습도 20~90%, 온도 0~50°C를 측정합니다. 3~5.5V DC로 동작하며 독자적인 원와이어(OneWire) 프로토콜로 통신합니다. 이 프로토콜은 매우 정밀한 타이밍이 필요하며, LOW/HIGH 비트는 신호가 HIGH인 지속 시간으로 인코딩됩니다. 전체 읽기 시간은 최대 23.4ms(시작 지연 18ms + 데이터 윈도우 최대 5.4ms)입니다.

배경

윈도우 10 IoT 코어 출시 초기, 라즈베리 파이 2와 DHT11로 C# 구현을 시도했으나 타이밍 문제로 실패했습니다. C#은 IoT 코어에서 충분히 빠르지 않았기 때문입니다. 마이크로소프트 포럼에서 같은 어려움을 겪는 개발자들과 논의하던 중, 마이크로소프트가 C++로 원와이어 프로토콜(DHT11 예제)을 지원하는 샘플을 공개한 것을 발견하고 이를 C# 라이브러리로 포팅하게 되었습니다.

라이브러리

이 라이브러리는 마이크로소프트가 공개한 샘플 코드를 리팩토링한 것으로, 원작자의 노고에 감사드립니다.

네임스페이스 Sensors.Dht에 Dht11 클래스를 제공합니다. 사용법은 간단합니다:

using Sensors.Dht;
GpioPin pin = GpioController.GetDefault().OpenPin(4, GpioSharingMode.Exclusive);
Dht11 dht11 = new Dht11(pin, GpioPinDriveMode.Input); // 풀업 저항 직접 추가 시 InputPullUp
DhtReading reading = await dht11.GetReadingAsync().AsTask(); // 기본 재시도 20회

DhtReading 구조체:

public value struct DhtReading {
    bool TimedOut;
    bool IsValid;
    double Temperature;
    double Humidity;
    int RetryCount;
}

관찰 사항

C++에서도 매번 읽기 성공하지 못해 재시도 옵션이 필요합니다(마이크로소프트 샘플에 포함). 라즈비안(리눅스)과 아두이노 우노에서의 성능 비교를 위해 각 플랫폼용 코드를 깃허브에 포함했습니다. 프로젝트 동영상에서 플랫폼별 출력 비교를 확인할 수 있습니다.

시작하기

라즈베리 파이 2 회로 조립

  1. T자형 코블러를 하프 사이즈 브레드보드 왼쪽 끝(E1, F1 ~ E20, F20)에 장착
  2. 4.7kΩ 저항을 A4와 3V3 사이에 연결
  3. 주황색 점퍼: B4 ↔ F28
  4. 빨간색 점퍼: F29 ↔ 3V3
  5. 검은색 점퍼: F30 ↔ GND
  6. DHT11 센서를 J30(-), J29(+), J28(s)에 꽂기
  7. 리본 케이블로 코블러와 라즈베리 파이 연결

아두이노 회로 조립

  1. 4.7kΩ 저항을 E12와 E13 사이에 연결
  2. 흰색 점퍼: D13 ↔ 아두이노 핀 5
  3. 빨간색 점퍼: D12 ↔ 아두이노 5V
  4. 검은색 점퍼: D11 ↔ 아두이노 GND
  5. DHT11 센서를 A11(-), A12(+), A13(s)에 꽂기
  6. USB 케이블로 아두이노와 컴퓨터 연결
DHT11 & DHT22 온습도 센서 키트 - 라즈베리 파이 & 아두이노 호환
라즈베리 파이 2 회로 구성
DHT11 & DHT22 온습도 센서 키트 - 라즈베리 파이 & 아두이노 호환
아두이노 우노 회로 구성

라즈베리 파이 애플리케이션 실행 (윈도우 10 IoT 코어)

  1. 비주얼 스튜디오에서 Debug, ARM 구성, Remote Machine 선택
  2. 프로젝트 속성 → Debug 탭에서 라즈베리 파이 IP 입력, 인증 사용 안 함 체크
  3. F5로 배포 및 실행 (최초 배포 시 수 분 소요)

아두이노 애플리케이션 실행

  1. 깃허브의 Dht11_Speed 스케치를 아두이노 IDE로 열기
  2. 업로드(Ctrl+U) 후 시리얼 모니터 열기(Ctrl+Shift+M)

라즈비안 애플리케이션 실행

  1. 깃허브의 Dht11.c를 라즈베리 파이로 복사 (WinSCP 권장)
  2. wiringPi 라이브러리 선행 설치 필요
  3. 컴파일: gcc -o Dht11_Speed Dht11_Speed.c -L/usr/local/lib -lwiringPi -std=c99 -lm
  4. 실행: sudo ./Dht11_Speed 1000 10 (1초 간격, 10회 샘플)

동영상

아래 동영상에서 각 플랫폼별 동작 시연을 확인하세요. 유튜브 시어터 모드 권장.

코드 및 회로도

제조공정

  1. 5달러 I2C 센서로 라즈베리 파이 온도 로거 만들기
  2. 라즈베리 파이와 TMP006 적외선 온도 센서: 파이썬 라이브러리 및 설정 가이드
  3. 라즈베리 파이와 파이썬으로 원격 온도 센서 만들기 – 단계별 가이드
  4. DS1820 원와이어 온도 센서를 라즈베리 파이 GPIO로 연결하는 방법
  5. DS18B20 원와이어 디지털 온도계를 라즈베리 파이에 연결하기 – 단계별 가이드
  6. 라즈베리 파이 & DS18B20으로 다중 센서 온도 & 조도 모니터링 시스템 구축
  7. MCP9808, InfluxDB, Grafana로 라즈베리 파이 홈 온도 모니터 구축하기
  8. 라즈베리 파이 3에 DHT11 센서 연결해 ThingsIo.ai 클라우드에 데이터 업로드하기
  9. 정밀 베어링 온도 센서/검출기(BTD): 원리, 설치, SKF 제품군
  10. 색상 민감 공정을 위한 정밀 적외선 온도 센싱