Arduino y python [consejo]

Hola, como dice el titulo estoy trabajando en un sistema que combina Arduino y Python(Raspberry pi) a través del modulo ethernet W5100, donde Arduino hace la función de TCP server y la raspberry pi de TCP client (para mayor comprensión adjunto una imagen), en resumen el sistema consta de lo siguiente:

Cada Arduino tiene conectado 2 sensores (MQ-135 y DHT-22)
Cada cierto tiempo la raspberry pi consulta estos datos y los envía al servidor principal (que tambien corre python)

Donde realmente necesito ayuda y un consejo es en el servidor principal, ya que, es donde el usuario final puede interactuar con el sistema, estaba pensando en crear una interfaz con tkinter, pero el tema se me complica un poco, ¿Qué me recomiendan ustedes?

¿Como están físicamente separados? Es decir ¿El cliente final donde se encuentra?
Yo montaría un servidor LAMP en alguno de los raspberry con un pequeño programa que inserte los datos en la base de datos y que sea la pagina web del Raspberry el que ofrezca la pagina al cliente final.

Como dice @PeterKantTropus el RPi debe ser el servidor porque tiene los recursos para tal cosa.
Los Arduinos deben periódicamente insertar datos en la DB (database).
Los arduinos pueden comunicarse con los RPi de muchas maneras.
Pudiste usar MQTT por ejemplo, montar un broker Mosquitto en la RPi, guardar los datos usando SQLite por ejemplo y mostrarlos con PHP, NodeRed.

Muchas gracias a ambos por sus respuestas, voy a considerar ambas, cualquier avance lo estaré publicando en este mismo post, por si le puede servir de ayuda a alguien.

Moderador:
Si claro, es lo que corresponde.
Si abres otro post sin cerrar este incurres en doble posteo o cross post y es sancionable.

Hola, espero no molestar he intentado realizar la conexión de los arduinos a través de Mqtt, pero nada funciona, mi consulta es ¿es necesario el Internet para realizar el envío de datos? Disculpen la ignorancia es mi primera vez implementando este tipo de tecnologías

MQTT requiere de un brocker que es como un servidor de mensajes MQTT. Ese brocker puede ser local (no necesitas Internet) o estar en la nube (si lo necesitas).