아두이노 DHT11 이더넷 실드 온습도 데이터 로거
부품 및 소모품
| 부품 |
수량 |
| DHT11 온습도 센서 (4핀) |
1 |
| 아두이노 우노 (Arduino UNO) |
1 |
| 아두이노 이더넷 W5100 실드 |
1 |
| 점퍼 와이어 |
1세트 |
| 9V 배터리 |
1 |
| 브레드보드 |
1 |
| 9V 배터리 클립 |
1 |
앱 및 온라인 서비스
프로젝트 개요
프로젝트 목적
아두이노 초보자가 LED 제어 같은 기초 단계를 넘어 실제로 유용한 온습도 데이터 로거를 제작하는 프로젝트입니다. 회로는 간단하지만 초보자 수준에서는 코드가 다소 까다로울 수 있습니다.
구현 방법
- 아두이노 우노에 이더넷 실드 장착 후 회로 구성
- SD 카드 포맷 후 이더넷 실드에 삽입
- 아래 코드 업로드
- 자동으로
DATALOGGER.TXT 파일이 SD 카드에 생성되며 온습도 기록 시작
- 전원 차단 시 중단, 복구 시 자동 재개
장시간(1-2시간 이상) 측정 시 배터리 소모 방지를 위해 벽면 어댑터(벽돌 어댑터) 같은 영구 전원 사용을 권장합니다.
코드: Temp_and_Humid.ino
/* SD 카드 데이터 로거
아두이노 IDE 예제의 SD 카드 데이터 로거에 DHT11 센서 코드 추가
주의: 57번째 줄 analogPin < 3을 analogPin < 1로 변경 필요
*/
#include
#include
#include
dht DHT;
#define DHT11_PIN A0
const int chipSelect = 4;
void setup() {
Serial.begin(9600);
while (!Serial) { ; }
Serial.print("Initializing SD card...");
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
return;
}
Serial.println("card initialized.");
}
void loop() {
String dataString = "";
for (int analogPin = 0; analogPin < 1; analogPin++) {
int chk = DHT.read11(DHT11_PIN);
dataString += String(chk);
if (analogPin < 2) {
dataString += ",";
}
}
File dataFile = SD.open("datalog.txt", FILE_WRITE);
if (dataFile) {
dataFile.println(DHT.temperature);
dataFile.println(DHT.humidity);
dataFile.close();
Serial.print("Temperature = ");
Serial.println(DHT.temperature);
Serial.print("Humidity = ");
Serial.println(DHT.humidity);
delay(600000); // 10분 간격
} else {
Serial.println("error opening datalog.txt");
}
}
회로도
주의사항
- DHT 라이브러리 별도 설치 필요 (
#include )
- SD 카드 라이브러리는 아두이노 IDE 기본 내장
- 이더넷 실드의 CS 핀은 4번 사용
- 로그 간격은
delay(600000)로 10분 설정 (필요시 조정)