/* Modbus-Arduino Example - Test Analog Input (Modbus IP ESP8266) Read Analog sensor on Pin ADC (ADC input between 0 ... 1V) Original library Copyright by André Sarmento Barbosa http://github.com/andresarmento/modbus-arduino Current version (c)2017 Alexander Emelianov (a.m.emelianov@gmail.com) https://github.com/emelianov/modbus-esp8266 */ #ifdef ESP8266 #include #else //ESP32 #include #endif #include //Modbus Registers Offsets const int SENSOR_HREG = 100; //ModbusIP object ModbusIP mb; IPAddress remote(192, 168, 0, 59); long ts; void setup() { Serial.begin(115200); WiFi.begin("votreSSID", "votrePass"); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); mb.server(); //Start Modbus IP // Add SENSOR_IREG register - Use addIreg() for analog Inputs mb.addHreg(SENSOR_IREG); ts = millis(); } void loop() { int valAnalog; //Call once inside loop() - all magic here mb.task(); //Read each two seconds if (millis() > ts + 2000) { ts = millis(); //Setting raw value (0-1024) valAnalog= 1236; mb.Hreg(SENSOR_HREG, valAnalog); Serial.println(valAnalog); } delay(10); }