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

라즈베리 파이용 콤팩트 DHT 온습도 브레이크아웃: ATtiny85와 DHT22/DHT11

하드웨어 구성요소: Atmel ATTiny85 × 1 DHT22 온도 센서 × 1 DHT11 온습도 센서 × 1 SparkFun Tiny AVR Programmer × 1 Adafruit 4.7K Ω 저항 × 3 Adafruit 10K Ω 저항 × 1 Adafruit 100 Ω 저항 × 1 Adafruit 확산형 파란색 3mm LED × 1 Adafruit 택타일 버튼 스위치 × 1 Adafruit 브레이크어웨이 0.1″ 36핀 스트립 수 헤더 1개 @ 길이 6, 1개 @ 길이 2 (총 8핀) × 1 범용 점퍼 (0.1″) × 1 Arduino UNO & Genuino UNO 선택 사항 – 디버깅 및 테스트용. × 1 소프트웨어 앱 및 온라인 서비스: Microsoft Visual Studio 2015 Microsoft Windows 10 IoT Core Arduino IDE

이야기

소개

DHT11과 DHT22는 매우 저렴한 비용으로 정확도가 높아 인기 있는 온습도 센서입니다. 하지만 독자적인 원와이어 프로토콜로 작동해 정밀한 타이밍이 필요합니다. 이 센서들은 비실시간 운영체제를 실행하는 보드에서 읽기 어렵다는 것이 입증되었습니다.

한동안 전 "DHT11/DHT22 온도 센서"라는 제목의 글을 올려 C#에서 Microsoft C++ 샘플 코드를 사용해 이 센서들을 읽는 방법을 시연했습니다. 라이브러리는 판독값을 얻었지만 더 신뢰성 있게 만들기 위해 재시도 로직을 추가해야 했습니다. 이는 대부분 성공적이었지만 일부 사람들은 일관되게 작동시키는 데 어려움을 겪었습니다.

Windows 10 IoT Core를 실행하는 라즈베리 파이에서 이 센서들을 사용하는 데 대한 관심이 높은 것을 보고, 저렴한 비용을 유지하면서 매우 신뢰할 수 있는 센서 읽기 방법을 제공하는 두 번째 옵션을 만들기로 결정했습니다.

개요

여기서 제시하는 접근법은 DHT 센서를 저렴한 ATtiny85에 연결하고 I2C 슬레이브 장치로 설정하는 것입니다. 이는 TinyWireS 라이브러리를 사용하고 장치와 상호작용하기 위해 읽고 쓸 수 있는 레지스터 세트를 생성해 달성합니다.

이 장치는 다음 기능을 지원합니다:

소스 코드

이 프로젝트에는 세 가지 코드 세트가 있습니다. 보드용 메인 펌웨어, 아두이노 우노에 연결해 보드를 테스트하고 시연하는 아두이노 마스터 스케치, 라즈베리 파이에서 장치 사용법을 보여주는 Windows 10 IoT 코드 애플리케이션. 모든 코드는 링크된 GitHub 저장소에서 확인 가능합니다.

장치/회로

회로는 작고 몇 가지 저렴한 부품만 사용합니다. ATtiny85는 여러 공급업체에서 구입 가능합니다. 여러 개 구비해 두면 여러 용도로 유용합니다.

회로에는 다른 회로나 라즈베리 파이에 직접 연결할 수 있는 6핀 헤더가 있습니다. 핀 정의는 다음과 같습니다:

온보드 LED를 활성화(점퍼 추가) 또는 비활성화(점퍼 제거)하는 2핀 헤더도 있습니다.

더 큰 프로젝트에 활용할 경우 DHT Tiny 회로를 프로젝트 기존 회로에 병합하거나 내장할 수 있습니다. 이 경우 헤더 핀과 LED는 선택 사항입니다.

별도 보드에 회로를 구성하고 몇 가닥 와레나 연결 케이블로 라즈베리 파이에 연결할 수도 있습니다.

ATtiny85 프로그래밍

DHT_Tiny_Breakout.ino 스케치를 AVR 프로그래머로 ATtiny85에 로드하세요. 프로그래머가 없다면 아두이노 우노(또는 유사 보드)를 사용하세요. 아래 기사 중 하나 이상을 참고하세요.

저는 SparkFun Tiny AVR Programmer로 ATtiny85를 로드합니다.

칩을 16MHz로 실행 중입니다. 방법에 대한 지침은 제 기사 ATtiny @ 16MHz를 참조하세요.

ATtiny85 사용 시 슬레이브 스케치에 TinyWireS 라이브러리가 라이브러리 폴더에 설치되어 있어야 합니다. 이 라이브러리는 https://github.com/rambo/TinyWire에서 다운로드 가능합니다.

브레드보드에 회로 구성

첫 단계는 DHT Tiny를 브레드보드에서 작동시키는 것입니다. 하프 사이즈 브레드보드에 프로젝트에 포함된 회로도와 브레드보드 다이어그램을 따라 회로를 구성하세요.

도움을 위한 몇 가지 팁:

아래는 제 DHT Tiny 브레드보드 버전 이미지들입니다.

아두이노 우노 연결

빠른 테스트, 시연, 또는 라즈베리 파이에서 작동 안 될 때 아두이노 우노(또는 유사 장치)에 DHT Tiny를 연결할 수 있습니다.

DHT_Tiny_Master.ino 스케치를 로드하고 실행하세요. 이 스케치는 시리얼 모니터에 출력을 표시합니다.

두 보드 간 I2C 연결 시 SDA와 SCL 라인에 풀업 저항이 중요합니다. 이 회로에는 핀과 5V 사이에 두 개의 4.7K Ω 저항이 연결되어 있습니다.

아래는 아두이노 우노에 연결된 DHT Tiny 브레드보드 이미지들입니다.

라즈베리 파이 연결

빠른 테스트, 시연, 또는 라즈베리 파이에서 작동 안 될 때 아두이노 우노(또는 유사 장치)에 DHT Tiny를 연결할 수 있습니다.

두 보드 간 I2C 연결 시 SDA와 SCL 라인에 풀업 저항이 중요합니다. 이 회로에는 핀과 3V3 사이에 두 개의 4.7K Ω 저항이 연결되어 있습니다.

매우 중요! DHT Tiny 보드는 라즈베리 파이의 5V 핀으로 전원 공급되지만 풀업 저항은 라즈베리 파이의 3V3 핀(핀 1과 17)에 연결해야 합니다.

아래는 라즈베리 파이 3에 연결된 DHT Tiny 브레드보드 이미지들입니다.

Windows 10 애플리케이션 실행

프로젝트 하단의 GitHub 저장소 링크에서 코드를 받아 압축을 풀고 컴퓨터에 저장하세요. Visual Studio 2015에서 유니버설 애플리케이션 소스 코드를 열고 파이에 배포해 관리자 콘솔에서 실행하거나 Visual Studio에서 디버그 모드로 실행하세요.

Visual Studio로 Windows 10 IoT Core 애플리케이션 코드를 처음 실행하는 경우 다음 Microsoft 기사들을 참고하세요:

아래 비디오 시연을 보면 라즈베리 파이 3에서 DHT Tiny에 연결된 애플리케이션이 실행되는 것을 볼 수 있습니다.

애플리케이션 하이라이트

Windows 10 UWP 애플리케이션은 DHT Tiny의 모든 기능을 보여주는 시연 애플리케이션입니다. 코드는 장치에서 현재 온도, 습도 및 기타 레지스터 값을 표시합니다. UI는 장치 주소를 포함한 장치 구성 변경 방법도 제공합니다.

DHT Tiny 라이브러리

샘플 코드는 DHT Tiny와 상호작용하기 위해 작성된 라이브러리를 사용합니다. 이 라이브러리는 바로 사용 가능하며 모든 애플리케이션에 직접 포함할 수 있습니다.

NuGet에서 라이브러리 받기

프로젝트에 직접 포함하고 싶지 않다면 아래 명령으로 NuGet에서 DHT Tiny 라이브러리를 다운로드하세요. Visual Studio에서 패키지 관리자 콘솔을 열고 명령을 입력하세요.

PM> Install-Package IoT.DhtTiny

I2C 버스에서 장치 검색

DHT Tiny 라이브러리에는 I2C 버스에서 DHT Tiny 장치를 검색하고 주소 목록을 반환하는 메서드가 포함되어 있습니다. 이 목록으로 발견된 장치 중 하나 이상을 초기화할 수 있습니다. 장치 주소를 변경했는데 무엇으로 설정했는지 기억나지 않을 때 특히 유용합니다. 콜백 메서드는 선택 사항입니다.

// ***
// *** I2C 버스에서 DHT Tiny 장치 열거
// ***
IEnumerable<byte> address = await DhtTiny.FindAllDhtTinyAsync(this.FindAllDhtTinyCallback);
// ***
// *** 콜백 메서드
// ***
private void FindAllDhtTinyCallback(I2cScanEventArgs e) {
    int percentComplete = (int)((double)e.CurrentIndex / (double)e.Total * 100.0d);
    this.Status = string.Format("Locating devices [0x{0:X2}] [{1}%] [Found = {2:##0}]...", e.CurrentAddress, percentComplete, e.Items.Count());
}

라즈베리 파이용 DHT Tiny 브레이크아웃 회로도

소프트웨어 시연

이 비디오는 브레드보드에 연결된 DHT Tiny와 라즈베리 파이 3에서 실행되는 유니버설 애플리케이션을 모두 보여줍니다.

[비디오 추후 공개]

최종 장치 만들기

가장 쉽고 비용 효율적인 보드 제작 방법은 Adafruit의 Perma-Proto Quarter-sized Breadboard PCB 같은 PCB 프로토타입 보드를 사용하는 것입니다. 아래 이미지는 이 프로토타입 보드를 사용한 브레이크아웃을 보여줍니다. 드레멜로 보드의 전원 레일 부분을 제거했습니다.

더 보기: 라즈베리 파이용 DHT Tiny 브레이크아웃

제조공정

  1. 라즈베리 파이와 DS18B20을 이용한 전문적인 온도 모니터링
  2. 라즈베리 파이 2와 ADS-WS1로 야외 기상 관측소 구축하기
  3. 내장 ADC 없는 라즈베리 파이에서 아날로그 센서 측정하기
  4. HC-SR04 초음파 센서를 라즈베리 파이에 연결하기 – 실전 가이드
  5. 라즈베리 파이의 잠재력을 100% 끌어내는 필수 액세서리
  6. MCP3008 ADC로 라즈베리 파이에서 아날로그 센서 읽기
  7. SIGHT: 시각장애인을 돕는 스마트 안경
  8. 라즈베리 파이용 SparkFun Qwiic HAT 완전 연결 가이드
  9. 라즈베리 파이 3 모델 B+에 Windows 10 IoT Core 설치 - 단계별 가이드
  10. MonkMakes RRB2 키트로 나만의 라즈베리 파이 로봇 만들기 - 상세 가이드