반응형
[아두이노] 온습도 센서 사용법
아두이노를 사용하여 온도/습도를 확인할 수 있는 방법입니다.
다음의 회로도를 참고하여 아두이노와 점프선으로 연결을 해주시면 됩니다.
빨간선 : +5V
검정선 : GND
파란선 : Data (2번핀)
위와 같이 색상에 맞게 연결을 해주시면 됩니다.
아두이노에서 온습도 센서를 사용하기 위해서는 라이브러리가 필요합니다.
DHT라는 라이브러리입니다.
아두이노 IDE에서
스케치 → 라이브러리 포함하기 → 라이브러리 관리에 들어가 줍니다.
여기서 dht를 검색해 주시고 아래 빨간 테두리에 있는 항목을 다운받아 줍니다.
다음으로
파일 → 예제 → DHT sensor library → DHTtester로 파일을 열어줍니다.
#define DHTTYPE DHT22를 DHT11로 바꿔주셔야해요.
열기 귀찮으신 분들을 위해 코드를 첨부해 드립니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | // Example testing sketch for various DHT humidity/temperature sensors // Written by ladyada, public domain #include "DHT.h" #define DHTPIN 2 // what digital pin we're connected to // Uncomment whatever type you're using! #define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 //#define DHTTYPE DHT21 // DHT 21 (AM2301) // Connect pin 1 (on the left) of the sensor to +5V // NOTE: If using a board with 3.3V logic like an Arduino Due connect pin 1 // to 3.3V instead of 5V! // Connect pin 2 of the sensor to whatever your DHTPIN is // Connect pin 4 (on the right) of the sensor to GROUND // Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor // Initialize DHT sensor. // Note that older versions of this library took an optional third parameter to // tweak the timings for faster processors. This parameter is no longer needed // as the current DHT reading algorithm adjusts itself to work on faster procs. DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); Serial.println("DHTxx test!"); dht.begin(); } void loop() { // Wait a few seconds between measurements. delay(2000); // Reading temperature or humidity takes about 250 milliseconds! // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) float h = dht.readHumidity(); // Read temperature as Celsius (the default) float t = dht.readTemperature(); // Read temperature as Fahrenheit (isFahrenheit = true) float f = dht.readTemperature(true); // Check if any reads failed and exit early (to try again). if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("Failed to read from DHT sensor!"); return; } // Compute heat index in Fahrenheit (the default) float hif = dht.computeHeatIndex(f, h); // Compute heat index in Celsius (isFahreheit = false) float hic = dht.computeHeatIndex(t, h, false); Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.print(" *C "); Serial.print(f); Serial.print(" *F\t"); Serial.print("Heat index: "); Serial.print(hic); Serial.print(" *C "); Serial.print(hif); Serial.println(" *F"); } | cs |
데이터 핀을 2번으로 했기 때문에
DHT 설정을 DHT11을 사용하여 pin2번에서 데이터를 받도록 합니다.
각 루프를 돌면서 습도와 온도를 읽어옵니다.
hif는 화씨
hic는 섭씨입니다.
실행 결과입니다.
저는 화씨가 필요없어서 화씨는 코드상에서 없앴습니다.
이렇게 쉽게 아두이노와 온습도 센서를 연결하는 방법에 대해 알아보았습니다.
반응형
최근댓글