본문 바로가기

아두이노

데이터 로깅 시스템: 센서 데이터를 SD 카드에 기록.

반응형
  1. 이론 소개:
    • 데이터 로깅 시스템은 센서로부터 수집한 데이터를 기록하고 저장하는 시스템입니다. 이러한 시스템은 다양한 응용 분야에서 사용될 수 있으며, 환경 모니터링, 날씨 예보, 센서 데이터 수집 등 다양한 분야에서 활용됩니다. 이 프로젝트에서는 아두이노와 SD 카드 모듈을 사용하여 센서 데이터를 SD 카드에 저장하는 방법을 다룰 것입니다.
  2. 준비물:
    • 아두이노 보드: 아두이노 Uno 또는 비슷한 아두이노 호환 보드.
    • SD 카드 모듈: 아두이노와 SD 카드 간 데이터 통신을 담당하는 모듈.
    • 센서 모듈: 데이터를 수집할 센서 모듈 (예: 온도 및 습도 센서 DHT11 또는 DHT22).
    • SD 카드: 데이터 저장용 SD 카드.
    • 점퍼 와이어: 회로 연결을 위한 점퍼 와이어.
    • 빵판 (선택 사항): 회로를 구성하고 연결하기 위한 실험용 플랫폼.
    • 전원 공급 장치: 아두이노와 SD 카드 모듈에 전원을 공급하기 위한 외부 전원 공급 장치.
  3. 추천보드:
    • 아두이노 Uno 또는 아두이노 호환 보드가 이 프로젝트에 적합합니다.
  4. 회로 구성:
    • 회로 구성은 다음과 같습니다.
      • 아두이노와 SD 카드 모듈을 연결합니다.
      • 센서 모듈을 아두이노에 연결합니다.
      • SD 카드 모듈과 SD 카드를 연결합니다.
  5. 코딩내용:
    • 아래는 아두이노 코드의 상세 내용입니다. 코드는 센서에서 데이터를 읽어와 SD 카드에 저장합니다.

#include <SD.h>
#include <SPI.h>
#include <DHT.h>

#define DHTPIN 2 // 센서 데이터 핀
#define DHTTYPE DHT11 // 사용하는 센서 모델
#define CS_PIN 4 // SD 카드 모듈의 칩 선택 핀

DHT dht(DHTPIN, DHTTYPE);
File dataFile;

void setup() {
  Serial.begin(9600);

  // SD 카드 초기화
  if (!SD.begin(CS_PIN)) {
    Serial.println("SD 카드 초기화 실패");
    return;
  }
  
  dht.begin();
}

void loop() {
  float temperature = dht.readTemperature();
  float humidity = dht.readHumidity();

  if (isnan(temperature) || isnan(humidity)) {
    Serial.println("센서 데이터 읽기 실패");
  } else {
    // 데이터 파일 열기 (파일명: data.txt)
    dataFile = SD.open("data.txt", FILE_WRITE);
    
    if (dataFile) {
      dataFile.print("온도: ");
      dataFile.print(temperature);
      dataFile.print("°C, 습도: ");
      dataFile.print(humidity);
      dataFile.println("%");
      dataFile.close();
      Serial.println("데이터 저장 완료");
    } else {
      Serial.println("데이터 파일 열기 실패");
    }
  }

  delay(5000); // 5초마다 데이터를 저장
}

 

  1. 코드 업로드 및 테스트:
    • 코드를 아두이노 IDE에 복사하여 업로드합니다.
    • 센서에서 읽은 데이터가 SD 카드에 정상적으로 저장되는지 확인합니다.
  2. 토론 및 응용:
    • 이 프로젝트를 확장하여 다양한 센서를 추가하고 더 복잡한 데이터 로깅 시스템을 구축할 수 있습니다. 데이터를 웹 서버로 전송하거나 데이터베이스에 저장하는 방법을 연구할 수도 있습니다.
  3. 추가 자료 및 과제:
    • 추가 자료로는 SD 카드 라이브러리, SPI 통신 및 DHT 라이브러리와 관련된 자료를 참조하는 것이 도움이 될 것입니다.
    • 과제로는 데이터를 정기적으로 백업하거나 데이터 파일을 일정 크기 이상으로 증가시키지 않도록 하는 방법을 고려할 수 있습니다.

전문 용어 설명:

  • 데이터 로깅: 센서나 장치로부터 데이터를 수집하고 기록하는 과정 또는 시스템을 가리킵니다.
  • SD 카드 모듈: 아두이노와 SD 카드를 연결하고 데이터를 저장하기 위한 모듈로, SPI 통신을 사용합니다.
  • SPI (Serial Peripheral Interface): 시리얼 주변 장치 간의 통신을 위한 통신 프로토콜로, 아두이노와 SD 카드 모듈 간의 통신에 사용됩니다.
  • 데이터 파일: 센서 데이터나 정보를 텍스트 또는 바이너리 형식으로 저장하는 파일입니다.
  • 빵판: 전기 회로를 구성하고 연결하기 위한 실험용 플랫폼.
  • 전원 공급 장치: 전자 장치나 모듈에 전원을 공급하기 위한 장치로, 일반적으로 AC 어댑터나 배터리를 사용합니다.
반응형