So I am running a Arduino UNO (clone) with some sensors, LCD and a double relay inside a freestanding and unheated garage. The whole thing is connected to WiFi using an ESP-01S which I am powering from the UNO's 3.3V rail, sending POST requests on set intervals. After an initial period of testing this all seemed to work flawlessly, so I had a custom PCB printed, made a case, etc.
All was good for several months, however now temperatures are dropping I noticed that the server stopped receiving POST requests when temperatures are below (more or less) -2C. It turns out the ESP-01S is unable to successfully establish a HTTP connection. Resetting works for a couple of transmissions before leaving me in the cold again.
Could this be related to the a higher power consumption of the ESP-01S at lower temperatures? And if so: how come? I know using the 3.3V rail of the UNO to power the module can be a bit of a gamble. Do I need to rethink the way I am powering the module (which I would like to avoid), or does anyone have other suggestions?
Hardly a surprise, operation at less than 0 degrees is not guaranteed on most commercial specifications. Given this is a clone board then it is likely the chip came from the reject bin. You need to monitor the temperature and turn on a small heater for a time when it drops below zero.
If you can confirm that 'only' the ESP-01 is affected by the low temperature, you could use the ESP's power consumption to it's benefit, by using a LM1117 3.3v to-220 package, and mount that so the heatsink is close to the ESP. Keep in mind you don't want to mount it in the face of the antenna.
Which is not a wise idea but so far it was working.
Are you using batteries to power the thingy? LiPo?
I run 2 ESP32's outside 24/7 from +103F down to -10F (so far, the lowest recorded). Right now, my weather station with 2 ESP32's is buried under the snow and works great.
Thinking about it, if it is the power (or lack thereof) that is causing the issue, i figured it can only really be the electrolitic capacitors that are not functioning properly at lower temperatures. The regulators should work fine. If it is the ESP's CPU, then my earlier reply should be option.
I did encounter some problem before with my setup with low temperature. I have a 3.3V linear regulator that drops down my USB power of 5V to 3.3V.
During the first few freezing days of the year, I noticed it stopped working. I realized it was on a reboot loop (I had it in a way that if the ESP01 can't connect to the Internet, just reboot and try again). Tried different 5V AC/DC adapters (I bought from Mouser so not the cheap kind) but none of that worked. Finally decided to use a 9V adapter instead and that worked.
Yes, I was aware but many people reported doing so successfully so I figured it'd see how it went before making the final implementation. However I didn't think about possible problems at low T.
Powering it using a USB cable, and the reason for that is related to me thinking it's something with the Arduino power rails: when I power the Arduino using the DC barrel plug I also had some connectivity problems with the ESP-01S (as in: it would not establish a WiFi connection at all).
I have a second UNO running a different project, I could swap them and see if the other unit works with the barrel plug, and what happens when I put the thing in the freezer (garage is not cold right now). I also have some more ESP-01S's lingering around, but the one I'm using for this project is soldered onto a PCB so swapping that is a bit more effort.
The ESP32 has a 3.3V weak voltage regulator that runs off of 5V.
I supply 3.3V directly from a 3.3V LDO 1.5A linear regulator filtered by an electrolytic and a ceramic cap fed directly into the 3.3V pins. An ESp32 may want 250mA for a WiFi transmit and is very sensitive to a voltage drop during transmit.
Yep, that is why i am suspecting the capacitor (the electrolytic in particular) not functioning at an optimum for the OP. (ESP32 & ESP8266 are similar in their power requirements)
The onboard regulators on an UNO, are not very powerful, and the 3.3v rail gets it's power from the 5v rail. There is nothing really that should draw a lot more power at low temps, and the regulators should perform the same (if not better) at lower tamps. Only the capacitor could be an issue really.
So anyway as a solution, you could try adding a fair size capacitor, and if that doesn't work, switch to a to-220 package 3.3v regulator. Also powering it through USB, one would need to know how long the power lead is, and how much of that 5v is left over when it gets to it's destination. Also here an extra capacitor on the 5v rail, could reduce the problem significantly.
I suppose you are on the right track (I didn't think about the capacitors, but makes sense). So I just took a breadboard power supply, used that to power the 3.3V circuit on my PCB and put the whole thing in the freezer. 30 minutes later still going strong at around -27C. Out of curiosity I disassembled the project running another UNO, and will hook that up without the breadboard power supply and see if that can stand the heat in the freezer better than this copy.
Update: I replaced the UNO clone and put the whole thing in the freezer again, now powering the 3.3V circuit identical to the original setup using the UNO rail. Has been working without problems at -28C for over an hour.