제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 3 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
| ||||
| ||||
| ||||
| ||||
| ||||
|
소개
배경
DHT11은 20% - 90% 상대 습도 및 0 - 50°C를 측정할 수 있는 4핀(1핀은 사용되지 않음) 온도 및 습도 센서입니다. 이 센서는 3~5.5V DC에서 작동할 수 있으며 고유한 OneWire 프로토콜을 사용하여 통신합니다. 이 프로토콜은 센서에서 데이터를 가져오기 위해 매우 정확한 타이밍이 필요합니다. LOW 및 HIGH 비트는 신호가 HIGH인 시간 길이만큼 와이어에 코딩됩니다. 판독하는 데 걸리는 총 시간은 최대 23.4ms입니다. 여기에는 데이터 전송을 시작하는 데 필요한 18ms 지연과 데이터에 대해 최대 5.4ms의 기간이 포함됩니다. 개별 신호는 짧게는 20μs, 길게는 80μs일 수 있습니다.
Windows 10 IoT Core를 처음 사용할 수 있게 되었을 때 저는 Raspberry Pi 2와 DHT11 센서를 잡고 C#에서 사용해 보았습니다. 나는 그것이 작동하지 않을 것이라는 것을 빨리 발견했다. Windows 10 IoT Core의 C# 문제는 속도가 충분히 빠르지 않다는 것입니다(적어도 지금 당장은 아님).
나는 Microsoft 포럼에 글을 올렸고 같은 어려움을 겪고 있는 다른 개발자들과 몇 차례 교류를 했습니다. 나는 결국 Windows 10 IoT Core의 OneWire 프로토콜에 대한 Microsoft 응답을 발견했습니다.
잠시 후 다음과 같은 내 게시물에 대한 답변을 받았습니다.
글쎄요, 그것은 훌륭할 것입니다. 그리고 곧 출시될 기능에 대해 정말 기대가 큽니다. 하지만 누가 기다릴 수 있겠습니까? 최근에 Microsoft에서 샘플 센서로 DHT11을 사용하고 Windows 10 IoT Core에서 C++를 사용하여 OneWire 프로토콜을 지원하는 방법에 대한 샘플을 게시한 것을 보았습니다. 이것을 C#으로 가져올 수 있는 기회라고 생각했습니다.
이 프로젝트는 해당 샘플을 C#에서 사용할 수 있는 라이브러리로 바꾸는 것입니다. 이 인기 있는 센서를 Windows 10 IoT Core에서 유용하게 만드는 데 도움을 주기 위해 라이브러리를 작성한 사람에게 감사드리며, 이 라이브러리를 통해 더욱 유용하게 사용되기를 바랍니다.
라이브러리
내가 만든 라이브러리는 원래 Microsoft에서 게시한 코드를 단순하게 리팩토링한 것이므로 센서 판독을 위해 수행한 작업에 대한 공로를 인정하지 않습니다.
라이브러리는 Dht11이라는 간단한 클래스를 제공합니다. 네임스페이스 Sensors.Dht . C#에서 새 개체를 만드는 것은 간단합니다.
먼저 DHT11 센서 핀이 연결된 GPIO 핀을 엽니다.
Sensors.Dht;GpioPin 핀 사용 =GpioController.GetDefault().OpenPin(4, GpioSharingMode.Exclusive);
그런 다음 이 핀을 Dht11의 생성자에 전달합니다. 클래스를 만들고 GPIO 핀 드라이브 모드를 지정합니다. 이를 통해 고유한 풀업 저항을 추가할지 여부를 결정할 수 있습니다.
Dht11 dht11 =새로운 Dht11(_pin, GpioPinDriveMode.Input);
기기에서 판독값을 얻으려면 GetReadingAsync를 사용하세요. 방법.
DhtReading 읽기 =await dht11.GetReadingAsync().AsTask();
최대 재시도 값을 지정할 수 있는 과부하가 있습니다. 기본값은 20입니다. 이것은 포기하고 실패한 판독값을 반환하기 전에 센서 판독을 시도하는 횟수를 지정합니다.
DhtReading 구조는 다음과 같이 정의됩니다.
공개 값 구조체 DhtReading{ bool TimedOut; bool 유효함; 이중 온도; 이중 습도; int RetryCount;};
관찰
센서가 C++에서 작동하더라도 매번 판독값을 얻지는 못합니다. 따라서 클래스에 재시도 옵션이 필요합니다(실제로 Microsoft 샘플의 일부임). 이것을 다른 플랫폼과 비교하여 성능을 확인하는 것이 가장 좋을 것이라고 생각했습니다. Raspbian과 Arduino Uno를 실행하는 Raspberry Pi 2에서 코드를 시도했습니다. 두 가지 모두에 사용한 코드는 GitHub 저장소에 포함되어 있습니다.
이 프로젝트에 포함된 비디오는 이러한 각 플랫폼의 출력을 보여주고 비교할 것입니다.
시작하기
Raspberry Pi 2용 회로 조립
이 가이드를 사용하여 페이지 하단 근처에 있는 다이어그램을 가이드로 사용하여 회로를 조립하십시오(와이어 색상은 선택 사항이며 회로를 구성할 때 쉽게 따라갈 수 있도록 선택되었습니다).피> <울>
Arduino용 회로 조립
이 가이드를 사용하여 페이지 하단 근처에 있는 다이어그램을 가이드로 사용하여 회로를 조립하십시오(와이어 색상은 선택 사항이며 회로를 구성할 때 쉽게 따라갈 수 있도록 선택되었습니다).피> <울>
아래는 내가 만든 회로의 사진입니다.
그림> 그림> 그림> 그림> 그림> 그림> 그림> 그림>
Raspberry Pi용 애플리케이션 시작
디버그, ARM 구성 및 원격 시스템을 선택합니다. 이제 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 디버그 태그를 클릭합니다. 그런 다음 원격 머신 필드에 Raspberry Pi 2 IP 주소를 입력하고 인증 사용을 선택 취소합니다.
F5 키를 누릅니다. . 애플리케이션이 기기에 배포되며 처음에는 몇 분이 소요될 수 있습니다.
Arduino용 애플리케이션 시작
이 프로젝트의 스케치는 GitHub에서 Dht11_Speed라는 파일로 제공됩니다. . Arduino IDE를 시작하고 스케치를 엽니다. 스케치를 Arduino에 업로드합니다(Ctrl U
) 그런 다음 직렬 모니터를 시작합니다(Ctrl Shift M
). )
이 작업을 수행하는 방법이 확실하지 않거나 이 환경이 처음인 경우 아래 비디오에서 이 작업을 수행하는 방법을 보여줍니다.
Raspbian용 애플리케이션 시작
Raspberry Pi용 C 코드는 이 프로젝트의 GitHub에서 Dht11.c라는 파일에서 사용할 수 있습니다. . 소스를 Raspberry Pi에 복사한 다음 거기에서 컴파일해야 합니다. WinSCP를 사용하여 파일을 복사하는 것을 좋아합니다. 이 응용 프로그램이 없으면 지금 다운로드하여 설치하는 것이 좋습니다. 소스 코드는 응용 프로그램을 컴파일하기 전에 설치해야 하는 와이어링파이를 사용합니다.
Raspberry Pi에서 코드를 컴파일하는 명령은 다음과 같습니다.
gcc -oDht11_Speed Dht11_Speed.c -L/usr/local/lib -lwiringPi -std=c99 -lm
응용 프로그램을 실행하려면 다음 명령을 입력하십시오.
sudo ./Dht11_Speed 1000 10
여기서 1000은 1000ms(1초)의 지연을 지정하고 10은 읽을 샘플 수입니다.
이 비디오는 코드를 복사하는 방법과 Raspbian을 실행하는 Raspberry Pi에서 컴파일하는 방법을 자세히 보여줍니다. Raspberry Pi에 Raspbian을 로드하는 방법을 배우려면 https://www.raspberrypi.org/downloads/raspbian/으로 이동하십시오.
동영상
아래 동영상은 애플리케이션 데모입니다.
최고의 품질을 위해 극장 모드를 사용하여 YouTube에서 이 비디오를 보십시오.
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">제조공정
이 Arduino 튜토리얼에서는 Arduino 보드로 온도와 습도를 측정하기 위해 DHT11 또는 DHT22 센서를 사용하는 방법을 배웁니다. 자세한 내용은 다음 동영상을 보거나 아래에 작성된 튜토리얼을 참조하세요. 개요 이 센서는 매우 저렴하지만 여전히 우수한 성능을 제공하기 때문에 전자 애호가들에게 매우 인기가 있습니다. 다음은 이 두 센서의 주요 사양과 차이점입니다. DHT22는 분명히 더 나은 사양을 가진 더 비싼 버전입니다. 온도 측정 범위는 섭씨 -40 ~ +125도(섭씨 +-0.5도)이고 DHT11 온도 범위는 섭
온도의 강도와 공기 중 수증기의 양은 항상 상관관계가 있습니다. 동시에 측정하려면 온습도 센서(DHT11)가 필요합니다. 디지털 상대 습도 및 온도 센서는 온도 및 습도를 측정하는 매우 정확한 구성 요소입니다. 이 기사는 센서에 대해 더 알고 싶어하는 열성팬을 위한 DHT11 데이터시트입니다. 더 많은 노력을 기울이고 직접 조립하려는 사람들을 위해 PCB 조립은 작업량을 줄여줍니다. 명확하고 정교하며 간결한 방식으로 자세히 알아보고 지식을 얻으십시오. 1. 그렇다면 DHT11은 무엇입니까? DHT11은 다양한 응용 분야에서 유용