정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

SD카드에 센서 측정값 저장
전우석 | 2015-08-22

예전에 SD카드에 센서로 측정한 값을 어떻게 저장해야 하는지 여쭤봤을때 튜토리얼을 참고하라고 말씀하셔서 최대한 참고하는 방향으로 진행해왔습니다.

하지만 튜토리얼을 봐도 어떻게해야 측정값을 저장할 수 있는지 이해가 안됬습니다..

일단 센서가 작동하도록 아래와 같은 예문을 작성해서 측정이 되는것을 확인하였는데, 아래 예문으로 측정한 값을 어떻게 해야 SD에 저장할 수 있는지를 모르겠습니다.

예문 어느부분에 무엇을 추가해야할까요?

 

#include "Barometer.h"
#include 
float temperature;
float pressure;
float altitude;
Barometer myBarometer;

int ad_conv(byte channel, byte num);
int calc_RH10(int adval);
int calc_TC10(int adval);
void display(int x);

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

}


void loop()
{
  temperature = myBarometer.bmp085GetTemperature(myBarometer.bmp085ReadUT()); //Get the temperature, bmp085ReadUT MUST be called first
   pressure = myBarometer.bmp085GetPressure(myBarometer.bmp085ReadUP());//Get the temperature
   altitude = myBarometer.calcAltitude(pressure); //Uncompensated caculation - in Meters

  Serial.print("Temperature: ");
  Serial.print(temperature, 2); //display 2 decimal places
  Serial.println("deg C");

  Serial.print("Pressure: ");
  Serial.print(pressure, 0); //whole number only.
  Serial.println(" Pa");
  
  Serial.print("Altitude: ");
  Serial.print(altitude, 2); //display 2 decimal places
  Serial.println(" m");
  
  int adval, RH10, TC10;

  adval = ad_conv(0, 32); // 32 samples on Channel 0
  RH10 = calc_RH10(adval);
  display(RH10);
  Serial.print("% ");

  adval = ad_conv(1, 32);
  TC10 = calc_TC10(adval);
  display(TC10);
  Serial.println();

  delay(5000);

}

int ad_conv(byte channel, byte num)
{
  long sum = 0;
  byte n;

  for (n = 0; n < num; n++)
  {
    sum = sum + analogRead(channel);
  }
  return (sum / num);
}

int calc_RH10(int adval)
{
  int RH10;

  RH10 = adval + 6 * adval / 10 + 3 * adval / 100; // 1.63 * adval

  return (RH10);
}

int calc_TC10(int adval)
{
  int TC10;

  TC10 = adval + 2 * adval / 10 + adval / 100 - 380;
  TC10 = TC10 - 320;
  TC10 = TC10 / 1.8;





  return (TC10);
}

void display(int x)
{
  int whole, fract;

  whole = x / 10;
  fract = x % 10;

  Serial.print(whole, DEC);
  Serial.print(".");
  Serial.print(fract, DEC);

}

 

이전글   |    미치겠습니다. 왜 업로드가 안되죠 2015-08-21
다음글   |    SD카드에 기록한 값이 세로로 나옵니다. 2015-08-22