Proyecto completo de domótica para vivienda de 3 plantas y jardín

Ahora te dire como seguir. Te daré unas librerías para que estudies/ensayes y verás que fácil es todo.

Pubsubclient library permite a un Arduino/ESP8266 comunicarse con un Broker MQTT usando telegramas.
Arduino Client for MQTT

Este es el hardware compatible. Yo te indiqué el más cómodo que es el ESP pero mira todos los que puedes usar

  • Arduino Ethernet
  • Arduino Ethernet Shield
  • Arduino YUN – use the included YunClient in place of EthernetClient, and be sure to do a Bridge.begin() first
  • Arduino WiFi Shield - si quieres enviar paquetes mayores a 90 bytes debes hacer cambios en MQTT_MAX_TRANSFER_SIZE del header PubSubClient.h.
  • Sparkfun WiFly Shield – when used with this library
  • Intel Galileo/Edison
  • ESP8266

O sea que el panorama esta abierto, y esto es importante porque me encanta el ESP8266 pero solo tiene un AD y a menos que uses el ESP32 que ya tiene varios, tendras que volver a un Arduino con algun shield y es bueno saberlo.

Acá tienes una buena guía MQTT Tutorial for Raspberry Pi, Arduino, and ESP8266

y este un ejemplo con leds Multiple MQTT Topics with Arduino PubSubClient, pero si buscas Google Arduino pubsubclient encontrarás muchas mas.
Este es un ejemplo con un NANO y un ESP01 MQTT USING ARDUINO NANO AND ESP8266-WifiEsp and PubSubClient library

Lee la guia y cuando lo hagas debatimos sobre algunos conceptos involucrados.