1) In the worst case you're transmitting one packet for each connection, this requires you to send two handshake packets. The TX time alone cannot be more than a few milliseconds per packet. Once every 5-15 minutes is negligible
2) MQTT uses TCP by default, unless you use one of its variants
3) Leaving RX on is inevitable if you want real time connection, this is likely a far larger draw than the handshake
4) You could also configure the keep alive tcp connection value on the server and reuse the same connection
I've build a solar station with an ESP32 using LoRa module. Even that wasn't much fun as I was forced to keep in light or even deep sleep as often as possible.
An option would be to use a Nordic NRF or STM32WB and use the BLE long range mode.
This submission was a blatant attempt to boost his blog and in turn his product's website; the whole thing looks to me like a scam.
The other items on the blog are clear keyword-of-the-day click-chasing and this is obviously ChatGPT output: https://khalsalabs.com/the-essence-of-paul-graham-essay-on-h...
One of the authors seems to enjoy using ChatGPT to respond to questions on Quora to spam links to his shitty blog site about dogs. Or this:
https://www.quora.com/What-is-the-difference-between-learnin...
The other guy has a lot of "look at my expensive stuff" and "the secret to success!" videos (and some videos about using AI to make videos...)
The company's website is a joke. Hilariously bad attempts at SEO in the title, the ad copy is littered with grammar mistakes, and so on. "Best canadian dog tracker"...what?
So the title is wrong/clickbait, the contents smell like AI generated garbage (although shorter than I would assume) and it means very little to anyone
That said, were you using TLS? I'd be curious to know how that impacts power consumption during HTTP calls.
If you use ESP-NOW then you can wake up send msg and sleep again in 35ms.
It's a layer 2 protocol.
Did you try reusing the http connection (one per ping)? How about putting all data in a single API call and let the server handle that?
Did you try compression? Not sure if compression makes sense, but a simple+fast compression like gzip could also be worth a try to reduce the actual bytes to put on the air; especially if your data is very verbose or repetitive. (Do that before connecting to wifi, even if that means not using http's compression).
I suppose you're talking http, not https. The latter will of course use much more energy.
Using UDP and the ensuring TCP-like qualities seems like a last resort solution.
Sorry if I misread your article and the suggestion were tried or are not feasible for you.
Hope you all enjoy!
The whole thing smells like a scam.
Undesirable thing is that I have left faucet running and the sewer stays too hot/cold for half an hour.
Everybody implementing their own protocol over UDP seems highly undesirable.
OTOH, UDP is totally fine depending on what you are doing, it's a very simple (NON-stream) protocol to boot.
They also have a python library [2] so you can do lots of stuff inside Jupyter.