Record SPS30 in SD

Dependencies:   mbed SPS30 SDFileSystem

main.cpp

Committer:
imadaemi
Date:
2021-01-29
Revision:
0:89ada12b9a15

File content as of revision 0:89ada12b9a15:

//21.01.06_0しか出ないけど,動作確認済み
//21.01.20_値がでるようになった.動作確認済み
//21.01.28_SDと統合

//自動ファンクリーニングは毎回すること
//起動後,有効な値がとれるまでの待機時間が必要
//サンプリング間隔は1sごと

#include "mbed.h"
#include "sps30.h"
#include "SDFileSystem.h"

Serial pc(USBTX, USBRX, 115200);
Sps30 sps(D4, D5, 100000);
//SDFileSystem sd_file_system(A6,A5,A4,A3,"sd");
SDFileSystem sd_file_system(D11,D12,D13,D10,"sd");

int main(){
    pc.printf("Hello PC!\r\n");

/*****SD準備******************/

    mkdir("/sd/mydir", 0777);
    
    FILE *fp = fopen("/sd/mydir/spstest.txt", "w");
    if(fp == NULL) {
        error("Could not open file for write\r\n");
    }
     
/*****初期設定*****************/
    while(1){
        wait(1.0f);
//        pc.printf("%d\r\n",sps.InitSPS30());
        if(sps.InitSPS30() == 1){
            pc.printf("SPS30 is Ready!!\r\n");
            break;
        }else{
            pc.printf("waiting...\r\n");
            pc.printf("%d\r\n", sps.InitSPS30());
        }
    }
    
/*****手動ファンクリーニング*****//*****注:毎回すること!!!*******/
/*
    sps.StartFanClean();
    pc.printf("Fan Cleaning!\r\n");
*/

/*****計測*********************/
    while(1){
        wait(1.0f);//サンプリング間隔は1sごと
        if(sps.PollSPS30() == 3){
        pc.printf("%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t\r\n", sps.mass_1p0_f, sps.mass_2p5_f, sps.mass_4p0_f, sps.mass_10p0_f, sps.num_0p5_f, sps.num_1p0_f, sps.num_2p5_f, sps.num_4p0_f, sps.num_10p0_f, sps.typ_pm_size_f); 
        fprintf(fp, "%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t\r\n", sps.mass_1p0_f, sps.mass_2p5_f, sps.mass_4p0_f, sps.mass_10p0_f, sps.num_0p5_f, sps.num_1p0_f, sps.num_2p5_f, sps.num_4p0_f, sps.num_10p0_f, sps.typ_pm_size_f);
        
        }else{
        pc.printf("%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t\r\n", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
        fprintf(fp, "%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t%f\t\r\n", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
        }
    }
    fclose(fp);
}