/*Materials :
1* Arduino Mega
1* CWT CO2 - RS485 MODBUS protocol of communication
1* MAX485 Module
*/
//#include <SoftwareSerial.h>/ https://github.com/PaulStoffregen/SoftwareSerial
#include <SoftwareSerial.h>
//#define RX 10 //Serial Receive pin
//#define TX 11 //Serial Transmit pin
//#define RTS_pin 12 //RS485 Direction control
//#define RS485Transmit HIGH
//#define RS485Receive LOW
#define RE 8
#define DE 7
//SoftwareSerial RS485Serial(RX, TX);
const byte CWTH2O_request[] = { 0x01, 0x03, 0x00, 0x00, 0x00, 0x01, 0x84, 0x0A }; // inquiry frame
//const byte CWTTemp_request[] = { 0x01, 0x03, 0x00, 0x01, 0x00, 0x01, 0xd5, 0xca }; // inquiry frame
//const byte CWTCO2_request[] = { 0x01, 0x03, 0x00, 0x02, 0x00, 0x01, 0x25, 0xca }; // inquiry frame
const byte CWTALL_request[] = { 0x01, 0x03, 0x00, 0x00, 0x00, 0x03, 0x05, 0xCB }; // inquiry frame
//byte values[10];
byte CWTH2O_buf[8];
//byte CWTALL_buf[11];
void setup() {
//pinMode(RTS_pin, OUTPUT);
pinMode(RE, OUTPUT);
pinMode(DE, OUTPUT);
// Start the built-in serial port, for Serial Monitor
Serial.begin(9600);
Serial.print("Delay 3 Sec & CWTH2O");
Serial.println();
// Start the Modbus serial Port, for anemometer
//RS485Serial.begin(4800);
Serial1.begin(4800);
delay(1000);
}
void loop() {
//digitalWrite(RTS_pin, RS485Transmit); // init Transmit
//RS485Serial.flush();
digitalWrite(DE, HIGH);
digitalWrite(RE, HIGH);
delay(10);
//Serial1.write(CWTALL_request, sizeof(CWTALL_request));
Serial1.write(CWTH2O_request, sizeof(CWTH2O_request));
//RS485Serial.write(CWTH2O_request, sizeof(CWTH2O_request));
//RS485Serial.flush();
Serial1.flush();
digitalWrite(DE, LOW);
digitalWrite(RE, LOW);
//delay(2);
//digitalWrite(RTS_pin, RS485Receive); // Init Receive
Serial1.readBytes(CWTH2O_buf, 8);
//Serial1.readBytes(CWTALL_buf, 11);
//Serial.print("Humidity: ");
for (byte i = 0; i < 7; i++)
{
//values[i] = Serial1.read();
Serial.print(CWTH2O_buf[i], HEX);
//Serial.print(values[i],HEX);
Serial.print(" ");
delay(100);
}
Serial.println();
delay(3000);
}
// RS485Serial.readBytes(CWTH2O_buf, 8);