NodeMCU To Arduino uno ether code issue

Hi all,

Long story short I've managed to blow up my ESP8266 NodeMCU, 8V supplied to vin port & suddenly pop. So I've trying to convert my code to Arduino UNO with ether shield.

The code runs MQTT client linking 5 relays 4 with manual tactile switches & MQTT, 1 purely MQTT controlled & a Dallas DS18B20. I've managed to get the code to run on the Arduino but it does not connect to MQTT Broker.

Could someone check over my code & see what going on ?.

Working ESP -> // ################################################################################### //

// ################### LIBRARY INCLUDE ############################################### //
#include <ArduinoOTA.h> // OVER THE AIR UPDATE
#include <WiFiUdp.h> // SEND DATA TO UDP
#include <ESP8266WiFi.h> // ESP WIFI CHIP
#include <ESP8266mDNS.h> // MULTICAST DNS
#include <PubSubClient.h> // MQTT CLIENT
#include <OneWire.h>
#include <DallasTemperature.h>
// ################################################################################### //
// ################### DEFINE PINOUT FOR NODEMCU ##################################### //
// Digital Relay Connections
#define RelayPin1 D1 // D1-GPIO05
#define RelayPin2 D2 // D2-GPIO04
#define RelayPin3 D5 // D5-GPIO14
#define RelayPin4 D6 // D6-GPIO12
#define RelayPin5 D7 // D7-GPIO13
// Digital Switch Connections
#define SwitchPin1 D3 // D3-GPIO0
#define SwitchPin2 10 // SD3-GPIO10
#define SwitchPin3 3 // RX-GPIO03
#define SwitchPin4 1 // TX-GPIO01
// WiFi Status LED Pin
#define wifiLed D4 // D4-GPIO02
// Dallas DS18B20
#define oneWireBus D8 //
// ################################################################################### //
// ################### DEFINE MQTT SUBS / PUBS & BUFFER ############################## //
// MQTT Ssubscriptions -[recieve]
#define sub1 "/SDGWBED/LIGHTING/RLSS01" // MQTT SUBSCRIPTION TO BROKER
#define sub2 "/SDGWBED/LIGHTING/RLS0S2" // MQTT SUBSCRIPTION TO BROKER
#define sub3 "/SDGWBED/LIGHTING/RLS0S3" // MQTT SUBSCRIPTION TO BROKER
#define sub4 "/SDGWBED/LIGHTING/RLS0S4" // MQTT SUBSCRIPTION TO BROKER
#define sub5 "/SDGWBED/HEATING/RCS01" // MQTT SUBSCRIPTION TO BROKER
#define sub6 "/SDGWBED/HEATING/TSS01" // MQTT SUBSCRIPTION TO BROKER
//#define sub7 "/DEBUG/SDGWBED/ESP-MRSJD-01" // MQTT SUBSCRIPTION TO BROKER
// MQTT Publications -[send]
#define pub1 "/SDGWBED/LIGHTING/RLSP01" // MQTT PUBLICATION TO BROKER
#define pub2 "/SDGWBED/LIGHTING/RLSP02" // MQTT PUBLICATION TO BROKER
#define pub3 "/SDGWBED/LIGHTING/RLSP03" // MQTT PUBLICATION TO BROKER
#define pub4 "/SDGWBED/LIGHTING/RLSP04" // MQTT PUBLICATION TO BROKER
#define pub5 "/SDGWBED/HEATING/RCP01" // MQTT PUBLICATION TO BROKER
#define pub6 "/SDGWBED/HEATING/TSP01" // MQTT PUBLICATION TO BROKER
//#define pub7 "/DEBUG/SDGWBED/ESP-MRSJD-01" // MQTT SUBSCRIPTION TO BROKER
// MQTT Message Buffer Size
#define MSG_BUFFER_SIZE (80)
// ################################################################################### //
// ################### ESPWIFI / SERIAL / MQTT CONFIGURATION ######################### //
// WiFi Configuration
const char ssid = "?"; // Enter your WiFi SSID
const char password = "
"; // Enter WiFi password
// MQTT Broker Configuration
const char mqtt_broker = ""; // [mqtt_broker]
const char mqtt_clientID = "
"; // [mqtt_clientID]
const char mqtt_username = ""; // [mqtt_username]
const char mqtt_password = "
"; // [mqtt_password]
const int mqtt_port = **********; // [mqtt_port]
// MQTT Client Configuration
WiFiClient espClient;
PubSubClient client(espClient);
unsigned long lastMsg = 0;
char msg[MSG_BUFFER_SIZE];
int value = 0;
// USB Serial Baud rate
const int baud = 921600;
// Relay Initial State
int toggleState_1 = 0; // toggle state for relay 1
int toggleState_2 = 0; // toggle state for relay 2
int toggleState_3 = 0; // toggle state for relay 3
int toggleState_4 = 0; // toggle state for relay 4
int toggleState_5 = 0; // toggle state for relay 5
// Dallas DS18B20
OneWire oneWire(oneWireBus); // communicate with any OneWire devices
DallasTemperature sensors(&oneWire); // Pass oneWire reference to Dallas
float temp = 0;
int inPin = D8;
// ################################################################################### //
// ################### INITIAL WIFI SETUP ############################################ //
// WIFI INITIALISATION
void initWiFi() {
WiFi.mode(WIFI_STA); // Set wifi to Station Mode
WiFi.begin(ssid, password);
Serial.println(".");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
}
Serial.println(WiFi.localIP());
// WIFI AUTO RECONNECT
WiFi.setAutoReconnect(true);
WiFi.persistent(true);
}
// ################################################################################### //
// ################### RUN SETUP CODE ################################################ //0
void setup() {
//Serial.begin(baud);
// OTA HOST / SECURITY CONFIGURATION
ArduinoOTA.setPort(8266); // Set OTA Port
ArduinoOTA.setHostname("ESP-MRSJD-01"); // Set OTA Host
ArduinoOTA.setPasswordHash("45556ddd398e09523b13d623138dd433"); // Set OTA [Secure MD5 password]
ArduinoOTA.onStart( {
String type;
if (ArduinoOTA.getCommand() == U_FLASH) {
type = "sketch";
} else { // U_FS
type = "filesystem";
}
// NOTE: if updating FS this would be the place to unmount FS using FS.end()
Serial.println("Start updating " + type);
});
ArduinoOTA.onEnd( {
Serial.println("\nEnd");
});
ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
});
ArduinoOTA.onError([](ota_error_t error) {
Serial.printf("Error[%u]: ", error);
if (error == OTA_AUTH_ERROR) {
Serial.println("Auth Failed");
} else if (error == OTA_BEGIN_ERROR) {
Serial.println("Begin Failed");
} else if (error == OTA_CONNECT_ERROR) {
Serial.println("Connect Failed");
} else if (error == OTA_RECEIVE_ERROR) {
Serial.println("Receive Failed");
} else if (error == OTA_END_ERROR) {
Serial.println("End Failed");
}
});
ArduinoOTA.begin();
Serial.println("Ready");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
// SET ESP PIN MODE
pinMode(wifiLed, OUTPUT);
pinMode(RelayPin1, OUTPUT);
pinMode(RelayPin2, OUTPUT);
pinMode(RelayPin3, OUTPUT);
pinMode(RelayPin4, OUTPUT);
pinMode(RelayPin5, OUTPUT);

pinMode(SwitchPin1, INPUT_PULLUP);
pinMode(SwitchPin2, INPUT_PULLUP);
pinMode(SwitchPin3, INPUT_PULLUP);
pinMode(SwitchPin4, INPUT_PULLUP);

// DEACTIVATION OF ALL RELAYS DURING START
digitalWrite(RelayPin1, HIGH);
digitalWrite(RelayPin2, HIGH);
digitalWrite(RelayPin3, HIGH);
digitalWrite(RelayPin4, HIGH);
digitalWrite(RelayPin5, HIGH);
// WIFI / BROKER SETUP
digitalWrite(wifiLed, LOW);
initWiFi();
client.setServer(mqtt_broker, mqtt_port);
client.setCallback(callback);
// Dallas DS18B20
pinMode(inPin, INPUT);
sensors.begin(); // Start DS18B20 sensor
}
// ################################################################################### //
// ################### MAIN LOOPING CODE ############################################# //
void reconnect() {
// MQTT RECONNECT LOOP & SUBSCRIBE
while (!client.connected()) {
if (client.connect(mqtt_clientID, mqtt_username, mqtt_password)) {
delay(1000);
// ... and resubscribe
client.subscribe(sub1);
client.subscribe(sub2);
client.subscribe(sub3);
client.subscribe(sub4);
client.subscribe(sub5);
client.subscribe(sub6);
//client.subscribe(sub7);
}
else {
Serial.println("Could not connect to broker...");
Serial.print(client.state());
Serial.println("Will Retry in 5 Seconds");
delay(5000);
}
}
}
void callback(char* topic, byte* payload, unsigned int length) {
// MQTT CONTROL CODE
Serial.print("Message arrived [");
Serial.print(topic);
Serial.print("] ");
// MQTT CONTROL CODE RELAY 01
if (strstr(topic, sub1))
{
for (int i = 1; i < length; i++) {
Serial.print((char)payload[i]);
}
Serial.println();
if ((char)payload[0] == '0') {
digitalWrite(RelayPin1, LOW);
toggleState_1 = 0;
client.publish(pub1, "Relay 01 Status - Activated");
} else {
digitalWrite(RelayPin1, HIGH);
toggleState_1 = 1;
client.publish(pub1, "Relay 01 Status - Deactivated");
}
}
// MQTT CONTROL CODE RELAY 02
else if ( strstr(topic, sub2))
{
for (int i = 1; i < length; i++) {
Serial.print((char)payload[i]);
}
Serial.println();
if ((char)payload[0] == '0') {
digitalWrite(RelayPin2, LOW);
toggleState_2 = 0;
client.publish(pub2, "Relay 02 Status - Activated");
} else {
digitalWrite(RelayPin2, HIGH);
toggleState_2 = 1;
client.publish(pub2, "Relay 02 Status - Deactivated");
}
}
// MQTT CONTROL CODE RELAY 03
else if ( strstr(topic, sub3))
{
for (int i = 1; i < length; i++) {
Serial.print((char)payload[i]);
}
Serial.println();
if ((char)payload[0] == '0') {
digitalWrite(RelayPin3, LOW);
toggleState_3 = 0;
client.publish(pub3, "Relay 03 Status - Activated");
} else {
digitalWrite(RelayPin3, HIGH);
toggleState_3 = 1;
client.publish(pub3, "Relay 03 Status - Deactivated");
}
}
// MQTT CONTROL CODE RELAY 04
else if ( strstr(topic, sub4))
{
for (int i = 1; i < length; i++) {
Serial.print((char)payload[i]);
}
Serial.println();
if ((char)payload[0] == '0') {
digitalWrite(RelayPin4, LOW);
toggleState_4 = 0;
client.publish(pub4, "Relay 04 Status - Activated");
} else {
digitalWrite(RelayPin4, HIGH);
toggleState_4 = 1;
client.publish(pub4, "Relay 04 Status - Deactivated");
}
}
// MQTT CONTROL CODE RELAY 05
else if ( strstr(topic, sub5))
{
for (int i = 1; i < length; i++) {
Serial.print((char)payload[i]);
}
Serial.println();
if ((char)payload[0] == '0') {
digitalWrite(RelayPin5, LOW);
toggleState_5 = 0;
client.publish(pub5, "Relay 05 Status - Heating valve opening");
} else {
digitalWrite(RelayPin5, HIGH);
toggleState_5 = 1;
client.publish(pub5, "Relay 05 Status - Heating valve closing");
}
}
// UBSUBSCRIBE
else
{
Serial.println("Broker connection lost... All topics unsubscribed");
}
}
void manual_control(){
// MANUAL RELAY CONTROL CODE
// MQTT CONTROL CODE RELAY 01
if (digitalRead(SwitchPin1) == LOW){
delay(200);
if(toggleState_1 == 1){
digitalWrite(RelayPin1, LOW); // MANUAL DEACTIVATE RELAY 2
toggleState_1 = 0; // TOGGLE RELAY STATE
client.publish(pub1, "Relay 01 Status - Activated"); // PUBLISH TO TOPIC 1
Serial.println("Relay 01 Status - Activated");
}
else{
digitalWrite(RelayPin1, HIGH); // MANUAL DEACTIVATE RELAY 1
toggleState_1 = 1; // TOGGLE RELAY STATE
client.publish(pub1, "Relay 01 Status - Deactivated"); // PUBLISH TO TOPIC 1
Serial.println("Relay 01 Status - Deactivated");
}
}
// MQTT CONTROL CODE RELAY 02
else if (digitalRead(SwitchPin2) == LOW){
delay(200);
if(toggleState_2 == 1){
digitalWrite(RelayPin2, LOW); // MANUAL DEACTIVATE RELAY 2
toggleState_2 = 0; // TOGGLE RELAY STATE
client.publish(pub2, "Relay 02 Status - Activated"); // PUBLISH TO TOPIC 2
Serial.println("Relay 02 Status - Activated");
}
else{
digitalWrite(RelayPin2, HIGH); // MANUAL DEACTIVATE RELAY 2
toggleState_2 = 1; // TOGGLE RELAY STATE
client.publish(pub2, "Relay 02 Status - Deactivated"); // PUBLISH TO TOPIC 2
Serial.println("Relay 02 Status - Deactivated");
}
}
// MQTT CONTROL CODE RELAY 03
else if (digitalRead(SwitchPin3) == LOW){
delay(200);
if(toggleState_3 == 1){
digitalWrite(RelayPin3, LOW); // MANUAL DEACTIVATE RELAY 3
toggleState_3 = 0; // TOGGLE RELAY STATE
client.publish(pub3, "Relay 03 Status - Activated"); // PUBLISH TO TOPIC 3
Serial.println("Relay 03 Status - Activated");
}
else{
digitalWrite(RelayPin3, HIGH); // MANUAL DEACTIVATE RELAY 3
toggleState_3 = 1; // TOGGLE RELAY STATE
client.publish(pub3, "Relay 03 Status - Deactivated"); // PUBLISH TO TOPIC 3
Serial.println("Relay 03 Status - Deactivated");
}
}
// MQTT CONTROL CODE RELAY 04
else if (digitalRead(SwitchPin4) == LOW){
delay(200);
if(toggleState_4 == 1){
digitalWrite(RelayPin4, LOW); // MANUAL DEACTIVATE RELAY 4
toggleState_4 = 0; // TOGGLE RELAY STATE
client.publish(pub4, "Relay 04 Status - Activated"); // PUBLISH TO TOPIC 4
Serial.println("Relay 04 Status - Activated");
}
else{
digitalWrite(RelayPin4, HIGH); // MANUAL DEACTIVATE RELAY 4
toggleState_4 = 1; // TOGGLE RELAY STATE
client.publish(pub4, "Relay 04 Status - Deactivated"); // PUBLISH TO TOPIC 4
Serial.println("Relay 04 Status - Deactivated");
}
}
delay(100);
}
void loop() {
// WIFI LED
if (!client.connected()) {
digitalWrite(wifiLed, LOW);
reconnect();
}
else{
digitalWrite(wifiLed, HIGH);
manual_control();
}
client.loop();
// OTA
ArduinoOTA.handle();
// Dallas SD18B20
long now = millis();
if (now - lastMsg > 5000) {
lastMsg = now;
sensors.setResolution(12);
sensors.requestTemperatures(); // Send the command to get temperatures
temp = sensors.getTempCByIndex(0);
Serial.println(temp);
if((temp > -20) && (temp <100))
{
client.publish(pub6, String(temp).c_str());
}
}
}
Not Working UNO -
// ################################################################################### //
// ################### LIBRARY INCLUDE ############################################### //
#include <Ethernet.h>
#include <PubSubClient.h> // MQTT CLIENT
#include <OneWire.h>
#include <DallasTemperature.h>
#include <SPI.h>
// ################################################################################### //
// ################### DEFINE PINOUT FOR NODEMCU ##################################### //
// Digital Relay Connections
#define RelayPin1 PD0 // D1-GPIO05
#define RelayPin2 PD1 // D2-GPIO04
#define RelayPin3 PD2 // D5-GPIO14
#define RelayPin4 PD3 // D6-GPIO12
#define RelayPin5 PD5 // D7-GPIO13
// Digital Switch Connections
#define SwitchPin1 A0 // D3-GPIO0
#define SwitchPin2 A1 // SD3-GPIO10
#define SwitchPin3 A2 // RX-GPIO03
#define SwitchPin4 A3 // TX-GPIO01
// Dallas DS18B20
#define oneWireBus PD6 //
// ################################################################################### //
// ################### DEFINE MQTT SUBS / PUBS & BUFFER ############################## //
// MQTT Ssubscriptions -[recieve]
#define sub1 "/SDGWBED/LIGHTING/RLSS01" // MQTT SUBSCRIPTION TO BROKER
#define sub2 "/SDGWBED/LIGHTING/RLS0S2" // MQTT SUBSCRIPTION TO BROKER
#define sub3 "/SDGWBED/LIGHTING/RLS0S3" // MQTT SUBSCRIPTION TO BROKER
#define sub4 "/SDGWBED/LIGHTING/RLS0S4" // MQTT SUBSCRIPTION TO BROKER
#define sub5 "/SDGWBED/HEATING/RCS01" // MQTT SUBSCRIPTION TO BROKER
#define sub6 "/SDGWBED/HEATING/TSS01" // MQTT SUBSCRIPTION TO BROKER
//#define sub7 "/DEBUG/SDGWBED/ESP-MRSJD-01" // MQTT SUBSCRIPTION TO BROKER
// MQTT Publications -[send]
#define pub1 "/SDGWBED/LIGHTING/RLSP01" // MQTT PUBLICATION TO BROKER
#define pub2 "/SDGWBED/LIGHTING/RLSP02" // MQTT PUBLICATION TO BROKER
#define pub3 "/SDGWBED/LIGHTING/RLSP03" // MQTT PUBLICATION TO BROKER
#define pub4 "/SDGWBED/LIGHTING/RLSP04" // MQTT PUBLICATION TO BROKER
#define pub5 "/SDGWBED/HEATING/RCP01" // MQTT PUBLICATION TO BROKER
#define pub6 "/SDGWBED/HEATING/TSP01" // MQTT PUBLICATION TO BROKER
//#define pub7 "/DEBUG/SDGWBED/ESP-MRSJD-01" // MQTT SUBSCRIPTION TO BROKER
// MQTT Message Buffer Size
#define MSG_BUFFER_SIZE (80)
// ################################################################################### //
// ################### ESPWIFI / SERIAL / MQTT CONFIGURATION ######################### //
// Ethernet Configuration
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte ip[] = {, , , };
byte gateway[] = {
, , , };
byte subnet[] = {
, , , };
// MQTT Broker Configuration
const char mqtt_broker = "
, , , "; // [mqtt_broker]
const char mqtt_clientID = "
"; // [mqtt_clientID]
const char mqtt_username = "
"; // [mqtt_username]
const char mqtt_password = "
*****"; // [mqtt_password]
const int mqtt_port = *************; // [mqtt_port]
// MQTT Client Configuration
EthernetClient unoClient;
PubSubClient client(unoClient);
unsigned long lastMsg = 0;
char msg[MSG_BUFFER_SIZE];
int value = 0;
// USB Serial Baud rate
const int baud = 9600;
// Relay Initial State
int toggleState_1 = 0; // toggle state for relay 1
int toggleState_2 = 0; // toggle state for relay 2
int toggleState_3 = 0; // toggle state for relay 3
int toggleState_4 = 0; // toggle state for relay 4
int toggleState_5 = 0; // toggle state for relay 5
// Dallas DS18B20
OneWire oneWire(oneWireBus); // communicate with any OneWire devices
DallasTemperature sensors(&oneWire); // Pass oneWire reference to Dallas
float temp = 0;
int inPin = PD5;
// ################################################################################### //
// ################### INITIAL ETHERNET SETUP ######################################## //
// ETHERNET INITIALISATION
void initEthernet() {
Ethernet.begin(mac, ip, gateway, subnet);
Serial.println(".");
Serial.println(Ethernet.localIP());
delay(1000);
}
// ################################################################################### //
// ################### RUN SETUP CODE ################################################ //0
void setup() {
Serial.begin(baud);
Serial.println();
// SET UNO PIN MODE
pinMode(RelayPin1, OUTPUT);
pinMode(RelayPin2, OUTPUT);
pinMode(RelayPin3, OUTPUT);
pinMode(RelayPin4, OUTPUT);
pinMode(RelayPin5, OUTPUT);

pinMode(SwitchPin1, INPUT_PULLUP);
pinMode(SwitchPin2, INPUT_PULLUP);
pinMode(SwitchPin3, INPUT_PULLUP);
pinMode(SwitchPin4, INPUT_PULLUP);

// DEACTIVATION OF ALL RELAYS DURING START
digitalWrite(RelayPin1, HIGH);
digitalWrite(RelayPin2, HIGH);
digitalWrite(RelayPin3, HIGH);
digitalWrite(RelayPin4, HIGH);
digitalWrite(RelayPin5, HIGH);
// BROKER SETUP
initEthernet ();
client.setServer(mqtt_broker, mqtt_port);
client.setCallback(callback);
// Dallas DS18B20
pinMode(inPin, INPUT);
sensors.begin(); // Start DS18B20 sensor
}
// ################################################################################### //
// ################### MAIN LOOPING CODE ############################################# //
void reconnect() {
// MQTT RECONNECT LOOP & SUBSCRIBE
while (!client.connected()) {
if (client.connect(mqtt_clientID, mqtt_username, mqtt_password)) {
delay(1000);
// ... and resubscribe
client.subscribe(sub1);
client.subscribe(sub2);
client.subscribe(sub3);
client.subscribe(sub4);
client.subscribe(sub5);
client.subscribe(sub6);
//client.subscribe(sub7);
}
else {
Serial.println("Could not connect to broker...");
Serial.print(client.state());
Serial.println("Will Retry in 5 Seconds");
delay(5000);
}
}
}
void callback(char* topic, byte* payload, unsigned int length) {
// MQTT CONTROL CODE
Serial.print("Message arrived [");
Serial.print(topic);
Serial.print("] ");
// MQTT CONTROL CODE RELAY 01
if (strstr(topic, sub1))
{
for (int i = 1; i < length; i++) {
Serial.print((char)payload[i]);
}
Serial.println();
if ((char)payload[0] == '0') {
digitalWrite(RelayPin1, LOW);
toggleState_1 = 0;
client.publish(pub1, "Relay 01 Status - Activated");
Serial.println("Relay 01 Status - Activated");
} else {
digitalWrite(RelayPin1, HIGH);
toggleState_1 = 1;
client.publish(pub1, "Relay 01 Status - Deactivated");
Serial.println("Relay 01 Status - Deactivated");
}
}
// MQTT CONTROL CODE RELAY 02
else if ( strstr(topic, sub2))
{
for (int i = 1; i < length; i++) {
Serial.print((char)payload[i]);
}
Serial.println();
if ((char)payload[0] == '0') {
digitalWrite(RelayPin2, LOW);
toggleState_2 = 0;
client.publish(pub2, "Relay 02 Status - Activated");
Serial.println("Relay 02 Status - Activated");
} else {
digitalWrite(RelayPin2, HIGH);
toggleState_2 = 1;
client.publish(pub2, "Relay 02 Status - Deactivated");
Serial.println("Relay 02 Status - Deactivated");
}
}
// MQTT CONTROL CODE RELAY 03
else if ( strstr(topic, sub3))
{
for (int i = 1; i < length; i++) {
Serial.print((char)payload[i]);
}
Serial.println();
if ((char)payload[0] == '0') {
digitalWrite(RelayPin3, LOW);
toggleState_3 = 0;
client.publish(pub3, "Relay 03 Status - Activated");
Serial.println("Relay 03 Status - Activated");
} else {
digitalWrite(RelayPin3, HIGH);
toggleState_3 = 1;
client.publish(pub3, "Relay 03 Status - Deactivated");
Serial.println("Relay 03 Status - Deactivated");
}
}
// MQTT CONTROL CODE RELAY 04
else if ( strstr(topic, sub4))
{
for (int i = 1; i < length; i++) {
Serial.print((char)payload[i]);
}
Serial.println();
if ((char)payload[0] == '0') {
digitalWrite(RelayPin4, LOW);
toggleState_4 = 0;
client.publish(pub4, "Relay 04 Status - Activated");
Serial.println("Relay 04 Status - Activated");
} else {
digitalWrite(RelayPin4, HIGH);
toggleState_4 = 1;
client.publish(pub4, "Relay 04 Status - Deactivated");
Serial.println("Relay 04 Status - Deactivated");
}
}
// MQTT CONTROL CODE RELAY 05
else if ( strstr(topic, sub5))
{
for (int i = 1; i < length; i++) {
Serial.print((char)payload[i]);
}
Serial.println();
if ((char)payload[0] == '0') {
digitalWrite(RelayPin5, LOW);
toggleState_5 = 0;
client.publish(pub5, "Relay 05 Status - Heating valve opening");
Serial.println("Relay 05 Status - Heating valve opening");
} else {
digitalWrite(RelayPin5, HIGH);
toggleState_5 = 1;
client.publish(pub5, "Relay 05 Status - Heating valve closing");
Serial.println("Relay 05 Status - Heating valve closing");
}
}
// UBSUBSCRIBE
else
{
Serial.println("Broker connection lost... All topics unsubscribed");
}
}
void manual_control(){
// MANUAL RELAY CONTROL CODE
// MQTT CONTROL CODE RELAY 01
if (digitalRead(SwitchPin1) == LOW){
delay(200);
if(toggleState_1 == 1){
digitalWrite(RelayPin1, LOW); // MANUAL DEACTIVATE RELAY 2
toggleState_1 = 0; // TOGGLE RELAY STATE
client.publish(pub1, "Relay 01 Status - Activated"); // PUBLISH TO TOPIC 1
Serial.println("Relay 01 Status - Activated");
}
else{
digitalWrite(RelayPin1, HIGH); // MANUAL DEACTIVATE RELAY 1
toggleState_1 = 1; // TOGGLE RELAY STATE
client.publish(pub1, "Relay 01 Status - Deactivated"); // PUBLISH TO TOPIC 1
Serial.println("Relay 01 Status - Deactivated");
}
}
// MQTT CONTROL CODE RELAY 02
else if (digitalRead(SwitchPin2) == LOW){
delay(200);
if(toggleState_2 == 1){
digitalWrite(RelayPin2, LOW); // MANUAL DEACTIVATE RELAY 2
toggleState_2 = 0; // TOGGLE RELAY STATE
client.publish(pub2, "Relay 02 Status - Activated"); // PUBLISH TO TOPIC 2
Serial.println("Relay 02 Status - Activated");
}
else{
digitalWrite(RelayPin2, HIGH); // MANUAL DEACTIVATE RELAY 2
toggleState_2 = 1; // TOGGLE RELAY STATE
client.publish(pub2, "Relay 02 Status - Deactivated"); // PUBLISH TO TOPIC 2
Serial.println("Relay 02 Status - Deactivated");
}
}
// MQTT CONTROL CODE RELAY 03
else if (digitalRead(SwitchPin3) == LOW){
delay(200);
if(toggleState_3 == 1){
digitalWrite(RelayPin3, LOW); // MANUAL DEACTIVATE RELAY 3
toggleState_3 = 0; // TOGGLE RELAY STATE
client.publish(pub3, "Relay 03 Status - Activated"); // PUBLISH TO TOPIC 3
Serial.println("Relay 03 Status - Activated");
}
else{
digitalWrite(RelayPin3, HIGH); // MANUAL DEACTIVATE RELAY 3
toggleState_3 = 1; // TOGGLE RELAY STATE
client.publish(pub3, "Relay 03 Status - Deactivated"); // PUBLISH TO TOPIC 3
Serial.println("Relay 03 Status - Deactivated");
}
}
// MQTT CONTROL CODE RELAY 04
else if (digitalRead(SwitchPin4) == LOW){
delay(200);
if(toggleState_4 == 1){
digitalWrite(RelayPin4, LOW); // MANUAL DEACTIVATE RELAY 4
toggleState_4 = 0; // TOGGLE RELAY STATE
client.publish(pub4, "Relay 04 Status - Activated"); // PUBLISH TO TOPIC 4
Serial.println("Relay 04 Status - Activated");
}
else{
digitalWrite(RelayPin4, HIGH); // MANUAL DEACTIVATE RELAY 4
toggleState_4 = 1; // TOGGLE RELAY STATE
client.publish(pub4, "Relay 04 Status - Deactivated"); // PUBLISH TO TOPIC 4
Serial.println("Relay 04 Status - Deactivated");
}
}
delay(100);
}
void loop() {
// Dallas SD18B20
long now = millis();
if (now - lastMsg > 5000) {
lastMsg = now;
sensors.setResolution(12);
sensors.requestTemperatures(); // Send the command to get temperatures
temp = sensors.getTempCByIndex(0);
Serial.println(temp);
if((temp > -20) && (temp <100))
{
client.publish(pub6, String(temp).c_str());
}
}
}`

Blockquote

Blockquote

Welcome to the forum

Please post your code here (in code tags) to avoid the need to visit another site in order to see it

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.