POC-メテオ
POC-メテオを使ってデータロガー付き天気ステーションを作りましょう。
データロガーをPOC-メテオと統合し、以前ご紹介したUSB天気測定を改良したバージョンのご紹介です。
前回の用例で問題だったのはコンピュータが電源オフまたは再起動中にデータが取れないことでした。実際、Windowsのアップデートは頻繁に行われているためこれは大きな問題です。データレコーディングをコンピュータからモジュール自体に移譲することでこの問題を解決します。
    long utc = stream.get_startTimeUTC();
    DateTime tstart = new DateTime(1970, 1, 1, 0, 0, 0).AddSeconds(utc);
    Stopwatch sw = new Stopwatch();
    DateTime tend = tstart.AddSeconds(stream.get_rowCount() * stream.get_dataSamplesInterval());
    List<String> names = stream.get_columnNames();
    int increment = 1;
    if (stream.get_dataSamplesInterval() == 1)
    {
        // we take only one mesure per minute
        increment = 60;
    }
    for (int row = 0; row < stream.get_rowCount(); row += increment)
    {
        long nbsec = unixtime + row * stream.get_dataSamplesInterval();
        DateTime t = new DateTime(1970, 1, 1, 0, 0, 0).AddSeconds(nbsec);
        TimeSpan delta = DateTime.Now - t;
        if (delta.TotalDays > 2)
        {
            continue;
        }
        DataRow rowData = table.NewRow();
        rowData["Time"] = t;
        for (int c = 0; c < stream.get_columnCount(); c++)
        {
            switch (names[c])
            {
                case "temperature":
                    rowData["Temperature"] = stream.get_data(row, c);
                    break;
                case "pressure":
                    rowData["Pressure"] = stream.get_data(row, c);
                    break;
                case "humidity":
                    rowData["Humidity"] = stream.get_data(row, c);
                    break;
                default:
                    continue;
            }
        }
        table.Rows.Add(rowData);
    }
}
 

 

 
    

