#include "thingProperties.h"
#include <ModbusIP_ESP8266.h>
// Modbus TCP configuration
IPAddress remote(192, 168, 1, 10); // S7-1200 IP
// Modbus TCP client
ModbusIP mb;
// Cloud variables
// Modbus addresses for M0.0-M0.3
const int REG = 100;
void setup() {
Serial.begin(115200);
delay(2000);
// Initialize Cloud
initProperties();
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
// Initialize Modbus TCP client
mb.client();
}
void loop() {
ArduinoCloud.update();
if (!mb.isConnected(remote)) {
mb.connect(remote);
}
mb.task();
// Periodically check connection status
}
void onM0Change() {
mb.writeCoil(remote, 0, m0);
Serial.print("M0.set to: ");
Serial.println(m0);
}
void onM1Change() {
mb.writeCoil(remote, 1, m1);
Serial.print("M1");
Serial.println(m1);
}
void onM2Change() {
mb.writeCoil(remote, 2, m2);
Serial.print("M2 set to: ");
Serial.println(m2);
}
void onM3Change() {
mb.writeCoil(remote, 3, m3);
Serial.print("M3 set to: ");
Serial.println(m3);
}