Теперь я хочу, чтобы другой ESP8266 подписался на тот же канал.
Возможно ли это?
Да - вы можете подтвердить, что настроили клиент публикации иброкер правильно, подключив автономный клиент MQTT, работающий на вашем компьютере.Затем попросите клиента MQTT подписаться на канал.
В вашем коде подписки есть как минимум одна потенциальная проблема.Подписывается только на тему самого первого подключения к брокеру.Соединение PubSubClient по умолчанию будет использовать Чистый сеанс - любые предыдущие подписки не сохраняются, когда клиент отключается и повторно подключается.
Так что, если подписчик теряет свое первоначальное соединение с посредником, он не будет подписан на тему впоследующие подключения.
Это можно исправить, переместив код подписки в функцию повторного подключения, как показано в фрагменте ниже.
if (client.connect(clientId.c_str(), mqtt_user, mqtt_password)) {
Serial.println("connected");
client.subscribe("s/us");
} else {
Я бы также рекомендовал вам вызвать setCallback()
допервое подключение в настройке.например, в setup()
client.setServer(mqtt_Server, mqtt_Port);
client.setCallback(callback);
reconnect();