DHT 센서 라인 (DHT11/22) 은 많은 전자 프로젝트에서 가장 일반적으로 사용되는 것 중 하나입니다. 가정 기상 스테이션에서 공장 자동화 시스템,온도/ 습도 센서로서의 단순성과 밀집성으로 인해더 정확하고 비싼 DHT22가 대체 될 수 있지만 (코드에 약간의 변경 사항), DHT11 센서 모듈이이이 프로젝트에 사용됩니다. 기본 3 핀 인터페이스로,이 프로젝트에 사용되는 DHT11 센서는 독립적인 4핀 센서 버전이 아니라, 3핀 모듈은 내장 콘덴시터와 풀업 저항을 가지고 있으며, 따라서 이 회로를 만들 때 추가 부품의 필요성을 제거합니다. 따라서 Arduino 보드와 인터페이스가 되면,DHT11 센서 모듈은 센서에서 마이크로 컨트롤러로 일련 데이터를 처리하고 공급하는 디지털 핀에 직접 연결할 수 있습니다.우리가 읽을 수 있도록
이 문제에서DIY PCBA 프로젝트, DHT11 센서에서 온도 및 습도 데이터는 0.96 "128 × 64 OLED ( 유기 광발광 다이오드) 디스플레이에 표시되어 눈에 띄게 읽을 수 있습니다.다른 디스플레이 유형에 비해 i2c OLED 디스플레이를 사용하는 장점은 Arduino 보드에 4 개의 유선 연결만 필요하며 다양한 라이브러리를 사용할 수 있다는 것입니다.OLED 디스플레이의 눈에 띄는 특징은 표시 할 수있는 텍스트, 그림 및 이미지의 명확성, 선명성 및 시각 품질입니다.
전체적으로, 이것은 아주 간단한 회로 프로젝트입니다. 그것은 단지 몇 가지 구성 요소와 몇 가지 기본적인 코딩 기술을 필요로 하기 때문에 절대적인 초보자에게 적합합니다.,이 프로젝트는 확실히 더 많은 기능을 추가하여 개선하고 업그레이드 할 수 있습니다. 무선 통신 (RF, LoRa,블루투스 PCB, Wi-Fi 등), RTC (실시간 시계) 데이터, 추가 센서 데이터 (높이, 대기 압력, 가스 농도 등) 및 기타 많은 기능.부품 구매가 필요합니다.:
아두이노 나노 (다른 아두이노 호환 보드는 작동)
USB 케이블 (아두이노 보드와 호환)
빵판
남성-남자 점퍼 와이어 (7)
0.96′′ 128×64 i2c OLED 디스플레이
DHT11 센서 모듈
배선
다른 개발 보드를 사용하는 경우, 다른 종류의 브로드 보드가 필요할 수 있습니다. 이 프로젝트를 위해, FS 기술은 Arduino 나노를 활용하고 있습니다..그러나 아두이노 유노가 사용된다면, 점퍼 와이어는 직접 보드 핀에 연결될 수 있으며, 브레이드보드의 필요성이 없어집니다. 보드 변경에도 불구하고,DHT11 센서 모듈과 Arduino 보드에 OLED 디스플레이의 배선이 일관성 유지또한, DHT11 온도 및 습도 센서 회로의 배선 도표는 아래에 제공됩니다.
DHT11 센서 모듈: 센서의 신호 (S) 핀을 D2에 연결하고, 긍정적인 (+) 핀을 +5v에 연결하고, 부정적인 (-) 핀을 GND에 연결한다.
OLED: SDA (시리즈 데이터) 를 A4, SCL/SCK (시리즈 시계) 를 A5, VDD/VCC (공급 전압) 을 +5v, GND를 GND로 연결합니다.
아두이노 보드를 USB 케이블을 통해 컴퓨터에 연결할 수 있습니다.
프로젝트 코드
#include
#include
#include
# 정의화면 너비128
# 정의화면 높이64
# 정의OLED_RESET4
Adafruit_SSD1306표시(화면 너비, 화면 높이);
#includeDHT.h
# 정의DHTPIN2
# 정의DHTTYPEDHT11
DHTdht(DHTPIN, DHTTYPE);
무효설정(){
dht.시작();
표시.시작(SSD1306_SWITCHCAPVCC, 0x3C);
표시.clearDisplay();
}
무효루프(){
표시.clearDisplay();
표시.setTextSize(1);
표시.setTextColor(SSD1306_WHITE);
표시.set커서(0,15);
표시.인쇄(온도:);
표시.set커서(80,15);
표시.인쇄(dht.읽기온도());
표시.set커서(110,15);
표시.인쇄(C);
표시.set커서(0,35);
표시.인쇄(습도:);
표시.set커서(80,35);
표시.인쇄(dht.읽기 습도());
표시.set커서(110,35);
표시.인쇄(%);
표시.표시();
지연(2000);
코드에 대해
i2c OLED 디스플레이로 작업하는 것의 장점 중 하나는 오픈소스 라이브러리 형태로 온라인에서 사용할 수 있는 엄청난 지원입니다.이것은 Arduino IDE에서 디스플레이를 프로그래밍하는 데 큰 도움이 될 수 있습니다이 프로젝트에서, the Adafruit SSD1306 and GFX libraries are the main two libraries that are utilized to interface the OLED display with the Arduino and since all the setup information is already configured in the library files, 기본 명령어는 IDE 내에서 사용되며, 디스플레이의 사용을 단순화합니다. 이 라이브러리를 다운로드하고 IDE에 설치하지 않은 경우컴파일 오류가 발생할 수 있으므로 Arduino IDE에 최신 라이브러리 버전이 설치되어 있는지 확인하십시오..
코드는 OLED 디스플레이를 설정하는 데 필요한 라이브러리를 정의하는 것으로 시작합니다. 와이어, Adafruit SSD1306 및 Adafruit GFX. 이들은 OLED가 Arduino와 작동하는 데 필요합니다.
두 번째 블록에서는 OLED 디스플레이와 관련된 여러 매개 변수를 정의하고 있으며, 그 중 하나는 화면 너비와 높이 (128 x 64 픽셀) 및 OLED 리셋 핀 (A4) 이다.
다음으로, DHT11 센서가 Arduino와 인터페이스를 위해 필요한 라이브러리가 정의되며, 특히 DHT 라이브러리가 있습니다.아두이노 보드에서 DHT 센서가 연결되는 디지털 핀 (디지털 핀 2 D2) 은 우리가 사용하는 특정 모델의 DHT 센서와 함께 추가로 정의됩니다DHT11 센서
이제, 빈 설정 섹션이 소개됩니다. 모든 아두이노 코드의 두 가지 필수 기능 중 하나입니다. 여기서 우리는 DHT11 센서를 시작합니다.시작()) 그리고 OLED 디스플레이와 빈 루프 섹션으로 진행하기 전에, OLED 디스플레이는 이전의 모든 시각적 (display.clearDisplay()) 에서 제거됩니다.
빈 루프 섹션의 경우, Arduino 보드에 전원이 있는 한 계속 반복되는 코드의 주요 부분입니다.주로 텍스트 크기를 설정하는 OLED 특수한 기능으로 구성됩니다., 텍스트 색상과 커서 (OLED에 텍스트를 인쇄하고 싶은 곳).주로 DHT11 센서가 읽은 온도 (셀리우스도) 및 습도 (%) 정보입니다.정의된 라이브러리에서 생성된 간단한 명령어들을 통해서만 우리는 디스플레이에 어떤 정보를든 쉽게 인쇄할 수 있습니다.
코드의 끝부분에 있는 지연 기능으로 OLED 디스플레이를 2000 밀리 초마다 센서에서 읽은 최신 데이터로 업데이트하도록 설정됩니다.당신은 얼마나 자주 당신이 센서에서 직접 업데이트 정보를 받고 싶은에 따라이 시기를 변경할 수 있습니다..
요약
이 프로젝트의 기본적 이해와 센서와 OLED 디스플레이를 연결하는 기본 원칙을이 프로젝트가 업그레이드되고 개선될 수 있는 많은 방법이 있습니다.가장 일반적으로, 이와 같은 설정은 더 많은 센서, 더 큰 디스플레이, 무선 기능, 케이스 등을 추가함으로써 훨씬 더 큰 기상 스테이션 프로젝트에 통합 될 수 있습니다.이 프로젝트에서 보여준 바와 같이사용 가능한 아두이노 라이브러리 몇 개에 익숙해지는 것만으로도미래 프로젝트는 원격 환경을 모니터링하거나 자율 시스템을 중앙에서 제어하기 위해 한 마이크로 컨트롤러 보드에서 다른 마이크로 컨트롤러 보드에 이러한 기상 데이터의 무선 전송을 포함 할 수 있습니다.그러나, 이와 같은 프로젝트는 절대적인 초보자에게 취미 전자제품을 소개하는 데 탁월하며,PCBA 제조업체전자제품의 다른 측면을 탐구하고 싶어할 수도 있습니다.