У меня есть этот код, который был совместным с некоторыми другими хорошими парнями,
здесь похоже на github MQTT RELAY DRIVER CODE
проблема, которую мы иметь для того, чтобы включить каждый канал, нам нужно изменить сохраненное здесь значение
setLatchChannelOn (2); // с номером ID канала 1-16,
мы создаем MQTT topi c like / house / switchboard / 12 / relay / + / command // + номер реле
любая помощь оценивается
// TODO: This should be more generic and awesome
String tmpBuf = topic;
Serial.println(tmpBuf);
Serial.println(String(mqttTopicPrefix).length());
//if (strcmp(topic, "relay1") == 0) {
if (true) {
Serial.println("Matched");
if ((char)payload[0] == '1')
{
setLatchChannelOn(2);
Serial.println("Relay 2 triggered ON");
client.publish(mqttStatusTopic, '1');
}
else if ((char)payload[0] == '0')
{
setLatchChannelOff(2);
Serial.println("Relay 2 triggered OFF");
client.publish(mqttStatusTopic, '0');
}
}
}