Best way for multiple ESP32s to chat

My project had 5 ESP32 chatting on the WIFI passing sensor data and adjusting relays. Right now, I'm using HTTPClient to receive information into each ESP.

Is there a better and consistent way to do this?

They are passing Json documents around in the process.

It depends.
What do you mean with "better and consistent"?
What is not working in the current setup?
Where do you encounter inconsistancies?
Why do you need statefull point to point connections?
Why aren't you using stateless broadcasts?

In other words - you need a better description of

  • what your applications are doing,
  • how the data is flowing
  • what do you want to achieve.

Just 8 questions to be answered.

Have you considered ESP-NOW?


I use MQTT, a Raspberry Pi 4, and a Python program to do the ESP32 talkie thingie.

Another +1 for ESP-NOW

Right now, I'm sending Json from 4 EPS32s to a central ESP32 using the HTTPServer via POST. I'm concerned about data not getting through.

I did point-to-point TCP at one time, but that was more headache that it was worth.

I don't want to use any service that requires the internet as my internet is not so reliable at times. (Comcast. Go figure.)

I don't have a Raspberry and funds aren't plentiful at this point.

I've looked at ESP-NOW and the write ups I've encountered appeared to make it as through 4 units talking to the central wouldn't work. (The central feeds a Due with a touch screen.)

Take a look at Getting Started with ESP-NOW (ESP32 with Arduino IDE) | Random Nerd Tutorials

Thanks for the link.

I re-read the documentation. The issue is that it wasn't using WiFi and range. Two of the ESP32s will probably 50 feet or so away from the others.

(In one of the tutorials I read, it was said the reliability drops off drastically after about 25ft.)