Code
Code
h>
#include <modbusDevice.h>
#include <modbusRegBank.h>
#include <modbusSlave.h>
#include <SimpleDHT.h>
#include <TimerOne.h>
// for DHT11,
// VCC: 5V or 3V
// GND: GND
// DATA: 2
int pinDHT11 = 2;
SimpleDHT11 dht11;
// int pinRelay1 =7;
// int pin_led1=8;
/*
This example code shows a quick and dirty way to get an
arduino to talk to a modbus master device with a
device ID of 1 at 9600 baud.
*/
// #define interval 5000
//Setup the brewtrollers register bank
//All of the data accumulated will be stored here
modbusDevice regBank;
//Create the modbus slave protocol handler
modbusSlave slave;
void setup()
{
Analog values are 16 bit unsigned words stored with a range of 0-32767
Digital values are stored as bytes, a zero value is OFF and any nonzer value is
ON
regBank.set(10001, 0);
regBank.set(10002, 0);
regBank.set(10003, 0);
regBank.set(10004, 0);
regBank.set(10005, 0);
regBank.set(10006, 0);
regBank.set(10007, 0);
regBank.set(10008, 0);
regBank.set(30001,0);
regBank.set(30002,0);
regBank.set(30003,0);
regBank.set(30004,0);
regBank.set(30005,0);
regBank.set(30006,0);
regBank.set(30007,0);
regBank.set(30008,0);
regBank.set(30009,0);
regBank.set(30010,0);
regBank.set(40001,0);
regBank.set(40002,0);
regBank.set(40003,0);
regBank.set(40004,0);
regBank.set(40005,0);
regBank.set(40006,0);
regBank.set(40007,0);
regBank.set(40008,0);
regBank.set(40009,0);
regBank.set(40010,0);
}
byte temperature = 0;
byte humidity = 0;
void waktu(){
int err = SimpleDHTErrSuccess;
if ((err = dht11.read(pinDHT11, &temperature, &humidity, NULL)) !=
SimpleDHTErrSuccess);
regBank.set(40001,(int)temperature);
regBank.set(40002,(int)humidity);
regBank.set(30001,(int)temperature);
regBank.set(30002,(int)humidity);
if ((int)temperature>0){
regBank.set(00001,(byte)1);
regBank.set(00002,(byte)1);
regBank.set(10001,(byte)1);
regBank.set(10002,(byte)1);
} else {
regBank.set(00001,(byte)0);
regBank.set(00002,(byte)0);
regBank.set(10001,(byte)0);
regBank.set(10002,(byte)0);
}
slave.run();
}
void loop()
{
int err = SimpleDHTErrSuccess;
if ((err = dht11.read(pinDHT11, &temperature, &humidity, NULL)) !=
SimpleDHTErrSuccess);//{
// Serial.print("Read DHT11 failed, err="); Serial.print(err);
// return;
// }
// regBank.set(40001,(int)temperature);
// regBank.set(40002,(int)humidity);
// regBank.set(30001,(int)temperature);
// regBank.set(30002,(int)humidity);
slave.run();
}