« ガイガーカウンタ GC10(2)放射線量モニター「GC10 Monitor」 | トップページ | ガイガーカウンタ GC10(4)空間放射線量の自動ツイート »

2020年3月18日 (水)

ガイガーカウンタ GC10(3)放射線量データロガー

Sdcardshield_rtc_gc10

 ガイガーカウンター GC10をSDカードシールドを載せたArduinoにつないで,放射線量を10分おきに24時間記録(2020/03/17 17:30~2020/03/18 17:50)してみました@岐阜市。
RTCモジュールDS3231も乗っけて,時刻・CPM値・μSv値の3つをSDカードに書き込むことにします。

Gc10_datalogger

スケッチはこちら

/*
* GC10+SDカードシールド付Arduino+RTCモジュール で放射線量データロガー
*/

#include <SPI.h>
#include <SD.h>
#include <Wire.h>
#include <RtcDS3231.h>
RtcDS3231<TwoWire>
Rtc(Wire);
const int chipSelect = 4;

void setup() {
  Serial.begin(9600);
  Serial.print("Initializing SD card...");
    if (!SD.begin(chipSelect)) {
    Serial.println("Card failed, or not present");
    while (1);
    }
  Serial.println("card initialized.");
  Wire.begin();
  Rtc.Begin() ;
  // DS3231の日時を「それなりの値」に設定する場合に、以下の2行をコメントアウト
  // RtcDateTime compiled = RtcDateTime(__DATE__, __TIME__) ;
  // Rtc.SetDateTime(compiled) ;
 }

void loop() {
  String cpm = "" ;
  String dataString = "";
  char buff[12] ;
    if (Serial.available()) {
    cpm="";
    cpm = Serial.readStringUntil('\r');
    Serial.flush();
    cpm.trim(); 
    delay(1000);
  }
    if (int(millis()/1000%600) == 0){ //10分ごとに記録
    RtcDateTime dt = Rtc.GetDateTime() ;
    sprintf(buff, " %02u:%02u:%02u", dt.Hour(), dt.Minute(), dt.Second()) ;
    dataString += String(buff);
    dataString += ",";
    dataString += String(cpm);
    dataString += ",";
    dataString += String(cpm.toFloat()/165); //gms=165として,μSvに換算
    File dataFile = SD.open("datalog.csv", FILE_WRITE);
      if (dataFile) {
      dataFile.println(dataString);
      dataFile.close();
      Serial.println(dataString);
      }
    }
}

 SDカードに記録された datalog.csv をExcelで開いてグラフを作るとこんな感じ↓ です。GC10 Monitor風にしてみました(^^)

Gc10_graph

| |

« ガイガーカウンタ GC10(2)放射線量モニター「GC10 Monitor」 | トップページ | ガイガーカウンタ GC10(4)空間放射線量の自動ツイート »

Arduino」カテゴリの記事

高校物理」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« ガイガーカウンタ GC10(2)放射線量モニター「GC10 Monitor」 | トップページ | ガイガーカウンタ GC10(4)空間放射線量の自動ツイート »