To give some background: I am a seasoned software developer with experience to different degree in (Java, Python, JavaScript and even some C/C++), but I am new to IoT.

The project I am planning is a camera which takes four images simultaneous (4x ESP32 with cam) and sends them to a Raspberry Pi for further processing. For sending the images I want to use MQTT messages, as it's easy to use an I need it for other projects anyway.

I am looking at this Lilygo ttgo cam or this cam set ESP32 especially.

My question is mainly regarding connecting the four ESP32s to the Raspberry Pi. I could just use the Raspberry Pi as WiFi hotspot and the ESP32s as clients, but this takes time to dial in and is never as stable as a wired connection.

Things I thought about already, but I am not sure about:

  • Add a Ethernet shield to all the ESP32s (maybe with PoE) and use a little 5 port switch to connect them
  • Somehow use four times the USB directly to the Raspberry Pi with USBNET. I found it's possible on the Raspberry side, but could not find anything about the ESP32.

What are other not to pricy, easy and reliable ways to connect them to get a network connection?

I also consider to use 4x Raspberry Pi Zeros over USBNET (or RJ45 Ethernet) if this makes more sense.

Finally everything should be running off a battery. Hence energy consumption is also an issue...

Thanks for your input!

1 Answer 1


MQTT is designed to be low bandwidth and is used to publish text messages thus it is not the best choice for image transfer. You can still use it however you will have to encode the images as base64 then slice the base64 string for publish and join the slices at the receiving side then decode the string to get the images.

WIFI is good enough if the distance is not that far and there are no obstacles a long the path of the signal.

If you are planning to send live video feed MQTT is not suitable. I would suggest using RTSP which is very reliable. Refer to https://www.instructables.com/9-RTSP-Video-Streamer-Using-the-ESP32-CAM-Board/


Not the answer you're looking for? Browse other questions tagged or ask your own question.