#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 onQ0Change() {
mb.writeCoil(remote, 0, q0);
Serial.print("Q0.set to: ");
}
void onQ1Change() {
mb.writeCoil(remote, 1, q1);
Serial.print("Q1");
}
void onQ2Change() {
mb.writeCoil(remote, 2, q2);
Serial.print("Q2 set to: ");
}
void onQ3Change() {
mb.writeCoil(remote, 3, q3);
Serial.print("Q3 set to: ");
}