제조공정
<메인 클래스="사이트 메인" id="메인">
이 Arduino 튜토리얼에서는 Arduino 보드로 온도와 습도를 측정하기 위해 DHT11 또는 DHT22 센서를 사용하는 방법을 배웁니다. 자세한 내용은 다음 동영상을 보거나 아래에 작성된 튜토리얼을 참조하세요.
이 센서는 매우 저렴하지만 여전히 우수한 성능을 제공하기 때문에 전자 애호가들에게 매우 인기가 있습니다. 다음은 이 두 센서의 주요 사양과 차이점입니다.
DHT22는 분명히 더 나은 사양을 가진 더 비싼 버전입니다. 온도 측정 범위는 섭씨 -40 ~ +125도(섭씨 +-0.5도)이고 DHT11 온도 범위는 섭씨 0 ~ 50도(섭씨 +-2도)입니다. 또한 DHT22 센서는 2-5% 정확도로 0 ~ 100%의 더 나은 습도 측정 범위를 가지며 DHT11 습도 범위는 5% 정확도로 20 ~ 80%입니다.
<그림 클래스="aligncenter">DHT11이 DHT22보다 나은 두 가지 사양이 있습니다. DHT11의 경우 1Hz 또는 1초에 한 번 읽기인 반면 DHT22 샘플링 속도는 0.5Hz 또는 2초에 한 번 읽기이고 DHT11은 본체 크기가 더 작습니다. 두 센서의 작동 전압은 3~5V이며 측정 시 사용되는 최대 전류는 2.5mA입니다.
다음 사이트에서 이러한 구성요소를 얻을 수 있습니다.
이제 이 센서가 실제로 어떻게 작동하는지 봅시다. 습도 감지 부품, NTC 온도 센서(또는 서미스터) 및 센서 후면의 IC로 구성됩니다.
<그림 클래스="aligncenter">습도 측정을 위해 두 전극 사이에 수분 유지 기판이 있는 습도 감지 구성요소를 사용합니다. 따라서 습도가 변하면 기판의 전도도가 변하거나 이러한 전극 사이의 저항이 변합니다. 이 저항 변화는 IC에 의해 측정되고 처리되어 마이크로컨트롤러에서 읽을 준비가 됩니다.
<그림 클래스="aligncenter">반면에 온도를 측정하기 위해 이러한 센서는 NTC 온도 센서 또는 서미스터를 사용합니다.
서미스터는 실제로 온도 변화에 따라 저항이 변하는 가변 저항기입니다. 이 센서는 온도의 작은 변화로 더 큰 저항 변화를 제공하기 위해 세라믹이나 폴리머와 같은 반도체 재료를 소결하여 만듭니다.
<그림 클래스="aligncenter">"NTC"라는 용어는 "음의 온도 계수"를 의미하며, 이는 온도가 증가함에 따라 저항이 감소함을 의미합니다.
DHTxx 센서에는 VCC, GND, 데이터 핀 및 사용하지 않는 연결되지 않은 핀의 4개 핀이 있습니다. 데이터 라인을 높게 유지하고 센서와 Arduino 보드 간의 통신을 활성화하려면 5K ~ 10K Ohms의 풀업 저항이 필요합니다. 풀업 저항이 내장된 브레이크아웃 보드와 함께 제공되는 이러한 센서 버전이 있으며 핀이 3개뿐입니다.
<그림 클래스="aligncenter">DHTXX 센서에는 데이터 전송에 사용되는 자체 단일 와이어 프로토콜이 있습니다. 이 프로토콜은 정확한 타이밍이 필요하며 센서에서 데이터를 가져오기 위한 타이밍 다이어그램은 센서의 데이터시트에서 찾을 수 있습니다. 그러나 모든 것을 처리하는 DHT 라이브러리를 사용할 것이기 때문에 이러한 타이밍 다이어그램에 대해 크게 걱정할 필요가 없습니다.
관련 튜토리얼:Arduino 기반 무선 기상 관측소 구축 방법 알아보기
먼저 Arduino 공식 웹사이트에서 찾을 수 있는 DHT 라이브러리를 포함하고 센서가 연결된 핀 번호를 정의하고 DHT 객체를 생성해야 합니다. 설정 섹션에서 직렬 모니터를 사용하여 결과를 인쇄할 것이기 때문에 직렬 통신을 시작해야 합니다. read22() 함수를 사용하여 센서에서 데이터를 읽고 온도와 습도 값을 t 및 h 변수에 넣습니다. DHT11 센서를 사용하는 경우 read11() 함수가 필요합니다. 마지막으로 직렬 모니터에 온도와 습도 값을 인쇄합니다.
/* DHT11/ DHT22 Sensor Temperature and Humidity Tutorial
* Program made by Dejan Nedelkovski,
* www.HowToMechatronics.com
*/
/*
* You can find the DHT Library from Arduino official website
* https://playground.arduino.cc/Main/DHTLib
*/
#include <dht.h>
#define dataPin 8 // Defines pin number to which the sensor is connected
dht DHT; // Creats a DHT object
void setup() {
Serial.begin(9600);
}
void loop() {
int readData = DHT.read22(dataPin); // Reads the data from the sensor
float t = DHT.temperature; // Gets the values of the temperature
float h = DHT.humidity; // Gets the values of the humidity
// Printing the results on the serial monitor
Serial.print("Temperature = ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(" Humidity = ");
Serial.print(h);
Serial.println(" % ");
delay(2000); // Delays 2 secods, as the DHT22 sampling rate is 0.5Hz
}
Code language: Arduino (arduino)
이 코드를 Arduino 보드에 업로드한 후 센서의 온도 및 습도 결과를 직렬 모니터에서 볼 수 있습니다.
또한 결과를 LCD에 표시하는 예도 만들었습니다. 다음은 해당 예시의 소스 코드입니다.
/* DHT11/ DHT22 Sensor Temperature and Humidity Tutorial
* Program made by Dejan Nedelkovski,
* www.HowToMechatronics.com
*/
/*
* You can find the DHT Library from Arduino official website
* https://playground.arduino.cc/Main/DHTLib
*/
#include <LiquidCrystal.h> // includes the LiquidCrystal Library
#include <dht.h>
#define dataPin 8
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
dht DHT;
void setup() {
lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
}
void loop() {
int readData = DHT.read22(dataPin);
float t = DHT.temperature;
float h = DHT.humidity;
lcd.setCursor(0,0); // Sets the location at which subsequent text written to the LCD will be displayed
lcd.print("Temp.: "); // Prints string "Temp." on the LCD
lcd.print(t); // Prints the temperature value from the sensor
lcd.print(" C");
lcd.setCursor(0,1);
lcd.print("Humi.: ");
lcd.print(h);
lcd.print(" %");
delay(2000);
}
Code language: Arduino (arduino)
아래 댓글 섹션에서 언제든지 질문하세요.
제조공정
이 Arduino 및 Matlab 자습서에서는 Matlab GUI(그래픽 사용자 인터페이스)를 사용하여 Arduino 보드를 제어하는 방법을 배웁니다. LED를 켜고 끄기 위한 두 개의 버튼과 광전지(광 종속 저항)의 아날로그 입력을 플롯하기 위한 축이 있는 Matlab GUI를 만들 것입니다. 이것은 따라하기 쉬운 단계별 비디오 자습서입니다. 또한 동영상 아래에서 이 튜토리얼에 필요한 구성요소와 동영상의 예제 소스 코드를 찾을 수 있습니다. 이 튜토리얼에 필요한 구성요소 구성요소는 아래 사이트에서 얻을 수 있습니다.
Arduino 자습서 시리즈의 두 번째 Arduino 자습서에 오신 것을 환영합니다. 이 튜토리얼에서는 디지털 입력 및 출력 핀이 작동하는 방식을 배우고 버튼과 LED를 사용하여 몇 가지 예를 만들 것입니다. 또한 PWM(Pulse Width Modulation)이 무엇인지 배우고 PWM을 사용하여 LED 밝기를 제어하는 예를 만듭니다. 이것은 따라하기 쉬운 단계별 비디오 자습서입니다. 또한 동영상 아래에서 이 튜토리얼에 필요한 부품과 동영상의 예제 소스 코드를 찾을 수 있습니다. 이 가이드에 필요한 구성요소 Ardui