Sensor module for temperature, air pressure, and humidity

Dependencies:   DHT11 LM75B mpl115a2

Dependents:   WeatherPredictor

SensorModule.cpp

Committer:
yukari_hinata
Date:
2015-02-13
Revision:
0:98946a466ef8
Child:
1:3d6d2ff7ff8a

File content as of revision 0:98946a466ef8:

#include "SensorModule.hpp"

// コンストラクタ
SensorModule::SensorModule(int n_sample)
{
    // サンプリング回数, ログファイル名の初期化
    this->n_sample = n_sample;
    this->temperture_sensor = new AnalogIn(p15);
    this->humidity_sensor   = new DHT11(p10);

}

// デストラクタ
SensorModule::~SensorModule(void)
{
    delete temperture_sensor;
    delete humidity_sensor;
}

// 全センサーからn_sample回読み出し, 平均値で更新する.
void SensorModule::read_all_sensor(void)
{
    register float sum_temp = 0, sum_humid = 0, sum_pres = 0;

    // AnalogInを用いる場合は,n_samle回センサーから読み出す.
    for (int count = 0; count < n_sample; count++ ) {
        // LM61CIZの温度読み取り
        sum_temp  += (temperture_sensor->read()-(0.6/3.3))/(0.01/3.3);
        wait(0.1);
    }

    new_temperture = sum_temp / n_sample;
    new_pressure   = sum_pres / n_sample;

    // 更新.
    
    // DHT11の湿度読み取り
    if (humidity_sensor->readData() != DHT11::OK) {
        fprintf( stderr, "Error in Humidity Sensor \r\n");
    } else {
        new_humidity = float(humidity_sensor->readHumidity());
    }

}