どうも、社員Yです。
今回は実際にArduinoを使用して作ったプログラムを前回の画像の装置に入れて動かしたデータを公開します。
プログラムは下記になります。
- #include
- #include
- #include
- #include
- #include
- DS3232RTC myRTC;
- File dataFile;
- #define INA219_ADDRESS (0x40) // INA219 I2C address
- Adafruit_INA219 ina219;
- const int chipSelect = 4; // Arduino UNOでは10、Arduino MEGAでは53
- const int donepin = 9; // TPL5110のDoneにつなぐピン
- void setup() {
- Serial.begin(9600);
- Wire.begin();
- myRTC.begin();
- // Initialize RTC
- setSyncProvider(myRTC.get);
- if(timeStatus() != timeSet)
- Serial.println("Unable to sync with the RTC");
- else
- Serial.println("RTC has set the system time");
- // Initialize INA219
- ina219.begin();
- ina219.setCalibration_16V_400mA(); // 測定レンジの設定
- //ina219.setCalibration_32V_1A();
- //ina219.setCalibration_32V_2A();
- // Initialize SD card
- if (!SD.begin(chipSelect)) {
- Serial.println("Card failed, or not present");
- // don't do anything more:
- return;
- }
- Serial.println("card initialized.");
- pinMode(donepin, OUTPUT);
- digitalWrite(donepin, LOW);
- }
- void loop() {
- // Read voltage and current from INA219
- float voltage = ina219.getBusVoltage_V();
- float current = ina219.getCurrent_mA();
- float power = ina219.getPower_mW();
- File dataFile = SD.open("datalog.csv", FILE_WRITE);
- dataFile.print(year(), DEC);
- dataFile.print('/');
- dataFile.print(month(), DEC);
- dataFile.print('/');
- dataFile.print(day(), DEC);
- dataFile.print(' ');
- dataFile.print(hour(), DEC);
- dataFile.print(':');
- dataFile.print(minute(), DEC);
- dataFile.print(':');
- dataFile.print(second(), DEC);
- dataFile.print(",");
- dataFile.print(current, 4);
- dataFile.print(",");
- dataFile.print(voltage, 4);
- dataFile.print(",");
- dataFile.println(power, 4);
- dataFile.close();
- digitalWrite(donepin, HIGH); //ここでTPL5110に信号HIGHを送ると電源が切れる
- delay(100); //デフォルト100 atmega用に数値大きく
- digitalWrite(donepin, LOW); //これは不要かもしれないが、切れなかったときに再試行するためLOWに戻しておく
- delay(100); //デフォルト100 atmega用に数値大きく
- }
実際に取得できたデータの一部
取得データを見ると日付にバグが、電圧値と電力値がが異常なのがわかります。
これには理由があるんです。
その理由はまた明日、使用機器一覧を乗せて説明をします。
※コメント投稿者のブログIDはブログ作成者のみに通知されます