Veo que no leíste esto
Por favor si haces un esquema en Fritzzing no tires lineas de lado a lado haciendo diagonales.. a los electrónicos nos cuesta leer eso como un esquema. Espero me comprendas.
se dibuja en forma ortogonal. Para la próxima ta vez...
Voy al código y veo esto:
delay(5000);
Debes aprender a no usar esas cosas.. en un ambiente de red cosas como esas detienen el procesador y generan todo tipo de problemas.
usa millis() crea una máquina de estados.