Hey guys - a have a suggestion re batteries. You can pick up a solar panel for about US60 cents at AliExpress:
https://www.aliexpress.com/item/ANBES-Solar-Panel-5V-6V-12V-Mini-Solar-System-DIY-For-Battery-Cell-Phone-Chargers-Portable/32848710253.html?spm=a2g0s.9042311.0.0.27424c4dACxKDX
Then one of these bad boy solar chargers for US1.40:
https://www.aliexpress.com/item/Mini-Solar-Lipo-Charger-Board-CN3065-Lithium-Battery-Charge-Chip-DIY-Outdoor-Application-Kit-Charging-Board/32877873848.html?spm=a2g0s.9042311.0.0.27424c4dACxKDX
I've bought both and tested them - they work brilliantly together.
The solar panel pushes out up to 6v at 1.5w. With any LiPo or Li-Ion attached, like a 18650 it will run for up to 8 years (I checked this with a friend who's an electronic engineer). The life basically comes down to the life of the battery itself and whether it likes to be topped-up or not (check out the differences between LiPo and Li-Ion). The solar panel is small and can be mounted anywhere. I've 3D printed a casing for mine, and it looks great. The solar charger contains a voltage regulator, so if you want you can remove the voltage regulator from whatever arduino you are using. I use an ESP8266-12F which costs US1.39 (
https://www.aliexpress.com/item/new-ESP8266-Remote-Serial-Port-WIFI-Transceiver-Wireless-Module-Esp-12F-AP-STA/32633529267.html?spm=a2g0s.9042311.0.0.27424c4d3dG84f) because it's the same as a Wemos D1 without the LED and voltage regulator so it uses hardly any power. It also means you can program it over the air (OTA) as it's got built in wifi.
I'm in Australia so there is plenty of sunshine to keep the battery charged. If you live somewhere with not so much sunlight, the solar charger contains a micro USB cable to manually charge the battery. You MAY have to do that once every year or two for a few hours.
So, battery problem solved!