Hi guys, Im currently working on a handheld tyre datalogger for using in motorsports.
Its powered by an ESP32 Uno and has a 2.8" TFT touch screen, and will include the following modules:
1x I2C pressure sensor from Honeywell
-1x AMG8833 8x8 IR array
-1x DS1820 (for ambiant temp)
-1x RTC time module
-1x voltage divider with NTC (for tire temperature probe)
possibly 1x I2C analog to digital converter (if the non linearity of the esp ADC gives me problems)
-1x SPI SD card reader (included in TFT display)
looking for at least a few hours contant usage, at least a day on standby.
What would be the best option?
Would a 9v block with a diode based reg be OK, or too small?
A bunch of AA's?
Or some kind of Lithium rechargable option?
One thing im not sure about is the ESP32 UNO, from what I can find it accepts 5-12v, but if everything runs on 3.3v is there any reason why I couldnt just connect the 3.3v pin to a regulated supply? Or am I forced to use the onboard reg with an input voltage of =>5v?
To begin to answer your question you need to measure how much current that lot draws, without that knowledge we are doing little more than guessing.
My first guess is a 9V block battery won't be nearly enough.
If you use a linear regulator you are just wasting power as heat. If you supply a 5V regulator with 9V then 4/9 of the available energy ends up as heat in the regulator.
Yes, you can power a 3V3 device with 3V3 to that pin.
Use switching regulators, they waste a lot less of the available power.
What's a ESP32 Uno? I know ESPRESSIF makes a ESP8266 and a ESP32. The ESP32 comes in several models with the big difference being one is a WROOM and one is a WROVER. I know Arduino makes a UNO. But I did not know about the ESP32 Uno.
I found that using a LDO, like a MCP1700, works very well to cutting the power consumption of the ESP32 over suing the built in regulator. Give the regulator a good dose of output filtering. I got my ESP32, not Uno, to run on a 3300mAh battery for 4 nights and 4 days before I recharged the battery.
ESP32 gots deepSleep and lightSleep modes to reduce power consumption. Heck there is even a 2nd processor, the ULP, that can run whiles the main processor is asleep, keeping track of when to wake the main processor. Variable values can be saved across deepSleeps in, what's call, RTC FAST RAM. Note, under the Arduino IDE you only get 2K of RTC_SLOW and RTC_FAST ram, not 8K.