Bonjour,
je désire envoyé la température de mon ballon d'eau chaude en Modbus TCP.
pour ce faire je me suis dit que je pourrai utiliser un module ESP-01 avec une sonde DS18b20( c'est la seul que j'avais avec un long câble )
mais ça ne fonctionne pas j'ai qu'un seul envoi est après mon "modbus maitre" me dit qu'il à pas de réponse
je pense que la librairie "One Wire" me bloque mon code
quelqu'un aurai une idée ?
Merci de votre aide
#include <ESP8266WiFi.h>
#include <ModbusTCPSlave.h>
#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire is plugged into port 4 on the Arduino
#define ONE_WIRE_BUS 4
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
//WIFI Settings
//byte ip[] = { 192, 168, 1??, ??};
//byte gateway[] = { 192, 168, 1??, 1 };
//byte subnet[] = { 255, 255, 255, 0 };
ModbusTCPSlave Mb;
void setup()
{
Mb.begin("???", "???");
sensors.begin();
delay(1000);
/* Mb.MBInputRegister[0] = 100;
Mb.MBInputRegister[1] = 65500;
Mb.MBInputRegister[2] = 300;
Mb.MBInputRegister[3] = 400;
Mb.MBInputRegister[4] = 500;
Mb.MBHoldingRegister[0] = 1;
Mb.MBHoldingRegister[1] = 2;
Mb.MBHoldingRegister[2] = 3;
Mb.MBHoldingRegister[3] = 4;
Mb.MBHoldingRegister[4] = 5;
*/
}
void loop()
{
sensors.requestTemperatures();
Mb.MBHoldingRegister[0] = sensors.getTempCByIndex(0);
Mb.Run();
delay(10);
}