#include <ModbusMaster.h>
// https://github.com/TitusSetiawan/XYMD02-ESP32-modbus/blob/master/src/SHT20_ESP32_RS485_HTTP/SHT20_ESP32_RS485_HTTP.ino
/*
* HTTP Protocol
*/
///////// PIN /////////
#define MAX485_DE 4
#define MAX485_RE_NEG 0
#define RX2 16
#define TX2 17
//// Preparartion for Publish Antares ////
/* #define ACCESSKEY "XXXXXXXXXX"
#define WIFISSID "......"
#define PASSWORD "haha1112"
#define projectName "XYMD02-ESP32"
#define deviceName "Sensor1"
*/
ModbusMaster node;
uint8_t result;
float temp, hum;
void preTransmission()
{
digitalWrite(MAX485_RE_NEG, 1);
digitalWrite(MAX485_DE, 1);
}
void postTransmission()
{
digitalWrite(MAX485_RE_NEG, 0);
digitalWrite(MAX485_DE, 0);
}
void setup()
{
pinMode(MAX485_RE_NEG, OUTPUT);
pinMode(MAX485_DE, OUTPUT);
digitalWrite(MAX485_RE_NEG, 0);
digitalWrite(MAX485_DE, 0);
Serial.begin(9600);
Serial2.begin(9600, SERIAL_8N1, RX2, TX2);
node.begin(1, Serial2);
node.preTransmission(preTransmission);
node.postTransmission(postTransmission);
}
void loop()
{
// Data Frame --> 01 04 00 01 00 02 20 0B
result = node.readInputRegisters(0x0001, 2); //baca register dari (0x0001 dengan 2 data)
if (result == node.ku8MBSuccess)
{
temp = node.getResponseBuffer(0) / 10.0f;
hum = node.getResponseBuffer(1) / 10.0f;
Serial.print("Temp: "); Serial.print(temp); Serial.print("\t");
Serial.print("Hum: "); Serial.print(hum);
Serial.println();
node.clearResponseBuffer();
node.clearTransmitBuffer();
delay(1000);
}
}