diff --git a/FactoryTest/Battery.h b/FactoryTest/Battery.h index ff72aef..b7ea47d 100644 --- a/FactoryTest/Battery.h +++ b/FactoryTest/Battery.h @@ -42,11 +42,12 @@ uint16_t _text_color; uint16_t ratecount = 100; uint16_t rateskip = 100; - int i_percent = -1; + float i_percent = -1; + float last_percent = -1; uint16_t statusColor = 0; void drawBatteryLines(); - int calcBatteryPercent(); + // float calcBatteryPercent(); uint16_t getBatteryColor(); void showBatteryPercent(); bool isLowBattery(); @@ -133,7 +134,7 @@ } if (rateskip == 1 || i_percent == -1) { - i_percent = calcBatteryPercent(); + i_percent = M5.Power.getBatteryLevel(); rateskip = ratecount; } // 電池図形内部背景塗りつぶし @@ -175,8 +176,7 @@ _sprite->setTextFont(1); _sprite->setTextColor(_text_color); _sprite->setTextSize(_showSize); - _sprite->print(i_percent); - _sprite->print("%"); + _sprite->printf("%4.1f%%", i_percent); } /** @@ -204,7 +204,7 @@ { // 低電圧状態(3.4V以下)だと1それ以外は0 float _bat_level = M5.Power.getBatteryLevel(); - if ( _bat_level < 10 ) + if ( _bat_level >= 20 ) { return false; } @@ -219,7 +219,7 @@ */ bool Battery::isUsingBattery() { - return M5.Power.isCharging(); + return (i_percent < 99.0f); // // プラスが充電、マイナスがバッテリー稼働 // float _ibat = M5.Power.getBatteryCurrent(); // if (_ibat < 0.0f) @@ -231,17 +231,3 @@ // return false; // } } -/** - * バッテリー残量%を計算する関数(戻り値は0~100) - */ -int Battery::calcBatteryPercent() -{ - return (int)M5.Power.getBatteryLevel(); - // float _vbat = M5.Power.getBatteryVoltage(); - // float percent = (_vbat - MIN_BATTERY_VOLTAGE) / (MAX_BATTERY_VOLTAGE - MIN_BATTERY_VOLTAGE); - // if (percent > 1.0f) - // percent = 1.0f; - // if (percent < 0.0f) - // percent = 0.0f; - // return roundf(percent * 100.0f); -} diff --git a/FactoryTest/FactoryTest.ino b/FactoryTest/FactoryTest.ino index d4aba78..05905bd 100644 --- a/FactoryTest/FactoryTest.ino +++ b/FactoryTest/FactoryTest.ino @@ -127,14 +127,16 @@ void powerOffOrDeepSleep() { if (M5.Power.isCharging()){ + Disbuff.fillRect(0, 0, 240, 135, TFT_RED); Disbuff.setCursor(12, 20); - Disbuff.setTextColor(TFT_BLACK); + Disbuff.setTextColor(TFT_WHITE); Disbuff.printf("Enter Deep Sleep"); Disbuff.pushSprite(0, 0); M5.delay(3000); esp_sleep_enable_timer_wakeup(7 * 86400 * 1000000ULL); // 24時間後に復帰 esp_deep_sleep_start(); } else { + Disbuff.fillRect(0, 0, 240, 135, TFT_GREEN); Disbuff.setCursor(12, 20); Disbuff.setTextColor(TFT_BLACK); Disbuff.printf("Power Off"); @@ -151,7 +153,7 @@ Disbuff.drawString("FactoryTest 2025", 10, 2, 1); Disbuff.setTextColor(TFT_WHITE); - // battery.batteryUpdate(); + battery.batteryUpdate(); // battery.showBattery(); Disbuff.pushSprite(0, 0); @@ -596,10 +598,10 @@ Disbuff.setTextColor(TFT_GREENYELLOW); Disbuff.setCursor(25, 50); Disbuff.printf("%02d:%02d:%02d", time.hours, time.minutes, time.seconds); - Disbuff.fillRect(0, 0, 240, 35, Disbuff.color565(20, 20, 20)); + Disbuff.fillRect(0, 0, 240, 37, Disbuff.color565(20, 20, 20)); Disbuff.setTextSize(2); Disbuff.setTextColor(TFT_WHITE); - Disbuff.drawString("BMP8563 RTC Time", 26, 15, 1); + Disbuff.drawString("BM8563 RTC Time", 26, 17, 1); Disbuff.setTextSize(2); Disbuff.setCursor(6, 90); Disbuff.setTextColor(TFT_YELLOW); @@ -1098,10 +1100,10 @@ { Disbuff.setTextColor(TFT_RED); } - Disbuff.printf("b%4.2f", M5.Power.getBatteryVoltage()); // バッテリー電圧を表示する + Disbuff.printf("b%4.2f", M5.Power.getBatteryLevel()); // バッテリー電圧を表示する Disbuff.setCursor(12, 37); - if (M5.Power.getBatteryVoltage() > 4.6) + if (M5.Power.getBatteryLevel() > 40) { Disbuff.setTextColor(TFT_GREEN); } @@ -1109,7 +1111,7 @@ { Disbuff.setTextColor(TFT_RED); } - Disbuff.printf("v%4.2f", M5.Power.getBatteryVoltage()); // 外部電源電圧(5V←の電圧) + Disbuff.printf("v%4.2f", M5.Power.getBatteryLevel()); // 外部電源電圧(5V←の電圧) digitalWrite(0, 0); digitalWrite(26, 0); @@ -1573,7 +1575,7 @@ M5.begin(cfg); M5.Display.setRotation(3); // 画面向きは横 - M5.Speaker.setVolume(30); + M5.Speaker.setVolume(45); M5.Speaker.tone(2000, 500); M5.Display.setBrightness(255); // M5.Display.setFont(&fonts::lgfxJapanGothic_16); diff --git a/FactoryTest/wifi.ino b/FactoryTest/wifi.ino index 2d62157..b8d87a7 100644 --- a/FactoryTest/wifi.ino +++ b/FactoryTest/wifi.ino @@ -52,18 +52,19 @@ WiFi.mode(WIFI_OFF); } -struct tm localTime; void ntp_setup() { configTime(9 * 3600, 0, ntpserver); // NTPサーバからLocalTimeへの時刻同期 - M5.delay(1000); - - while (localTime.tm_year < 80) + M5.delay(5000); + struct tm localTime; + getLocalTime(&localTime); + while (localTime.tm_hour == 0) { getLocalTime(&localTime); + // Serial.printf("%2d %2d %2d\n", localTime.tm_hour, localTime.tm_min, localTime.tm_sec); M5.Speaker.tone(1000, 200); - M5.delay(500); + M5.delay(1000); M5.Display.print("."); } M5.Speaker.tone(2000, 500);