#include <SPI.h>
#include <Ethernet2.h>
#include <RCSwitch.h>
#include "DHT.h"
#include <stdio.h>
#define DHTTYPE DHT22
#define DHTPIN 5
RCSwitch mySwitch = RCSwitch();
DHT dht(DHTPIN, DHTTYPE);
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress ip(192, 168, 1, 106);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
EthernetServer server(80);
//Sensori
const int value = mySwitch.getReceivedValue();
int sensorGas = A0;
String readString; //stringhe
boolean LEDON1 = false;
boolean LEDON2 = false;
boolean LEDON3 = false;
boolean LEDON4 = false;
boolean LEDON5 = false;
void setup(){
Serial.begin(9600);
Serial1.begin(9600);
dht.begin();
Ethernet.begin(mac, ip);
mySwitch.enableTransmit(31);
mySwitch.enableReceive(0);
}
void loop(){
if (Serial1.available()){
Serial.write(Serial1.read());
}
/*inizio client*/
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
readString.concat(c);
if (c == '\n' && currentLineIsBlank) {
if(readString.indexOf("L=2") > 0) { //rele ON
mySwitch.send("000100000000010101010001");
LEDON1 = true;
//accende il led con comando a 433 Mhz
}
if(readString.indexOf("L=3") > 0) { //rele1 OFF
mySwitch.send("000100000000010101010100");
LEDON1 = false;
//spenge il led
}
if(readString.indexOf("L=4") > 0) { //rele2 ON
mySwitch.send("000100000001000101010001");
LEDON2 = true;
}
if(readString.indexOf("L=5") > 0) { //rele2 OFF
mySwitch.send("000100000001000101010100");
LEDON2 = false;
}
if(readString.indexOf("L=6") > 0) { //rele3 ON
mySwitch.send("000100000001010001010001");
LEDON3 = true;
}
if(readString.indexOf("L=7") > 0) { //rele3 OFF
mySwitch.send("000100000001010001010100");
LEDON3 = false;
}
if(readString.indexOf("L=8") > 0) { //rele4 ON
mySwitch.send("000100000001010100010001");
LEDON4 = true;
}
if(readString.indexOf("L=9") > 0) { //rele4 OFF
mySwitch.send("000100000001010100010100");
LEDON4 = false;
}
if(readString.indexOf("L=10") > 0) { //rele5 ON
mySwitch.send("010000000000010101010001");
LEDON5 = true;
}
if(readString.indexOf("L=11") > 0) { //rele5 OFF
mySwitch.send("010000000000010101010100");
LEDON5 = false;
}
if(readString.indexOf("L=13") > 0) { //rele tutti OFF
mySwitch.send("000100000000010101010100");
mySwitch.send("000100000001000101010100");
mySwitch.send("000100000001010001010100");
mySwitch.send("000100000001010100010100");
mySwitch.send("010000000000010101010100");
LEDON1 = false;
LEDON2 = false;
LEDON3 = false;
LEDON4 = false;
LEDON5 = false;
}
// COSTRUZIONE PAGINA HTML
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<html>");
client.print("<head>");
client.print(" <title>Gergio Server Domotica</title> ");
client.println(" <meta name='viewport' content='width=device-width, user-scrollbar=no'>");
client.print("</head>");
client.println(" <body>");
client.println("<p>Temperatura Ambientale ");
client.print(dht.readTemperature()); //Sensori Arduino Master da visualizzare via Html
client.println(" C</p>");
client.println("<p>Umidita Ambientale ");
client.print(dht.readHumidity());
client.println(" %</p>");
client.println("<p>Sensori Slave remoto "); //Sensori Arduino Slave remoto da visualizzare via Html
client.println(Serial1.read());
//Inizio pagina Menù luci
client.println("<h3>Luce Biblioteca</h3>");
client.println("<a href='/?L=2'>Accendi</a> | <a href='/?L=3'>Spegni</a></h2>"); //primo rele
if (LEDON1) {
client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
}
else
{
client.println("<span style='color:red; font-weight:bold;'>OFF</span></font>");
}
client.println("<hr >");
client.println("<h3>Luce mensole</h3>");
client.println("<a href='/?L=4'>Accendi</a> | <a href='/?L=5'>Spegni</a>");//secondo rele
if (LEDON2) {
client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
}
else
{
client.println("<span style='color:red; font-weight:bold;'>OFF</span></font>");
}
client.println("<hr >");
client.println("<h3>Luce colonna</h2>");
client.println("<a href='/?L=6'>Accendi</a> | <a href='/?L=7'>Spegni</a>"); //terzo rele
if (LEDON3) {
client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
}
else
{
client.println("<span style='color:red; font-weight:bold;'>OFF</span></font>");
}
client.println("<hr >");
client.println("<h3>Led Scrivania</h3>");
client.println("<a href='/?L=8'>Accendi</a> | <a href='/?L=9'>Spegni</a></h2>"); //quarto rele
if (LEDON4)
{
client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
}
else
{
client.println("<span style='color:red; font-weight:bold;'>OFF</span></font>");
}
client.println("<hr >");
client.println("<h3>Audio diffusori</h3>");
client.println("<a href='/?L=10'>Accendi</a> | <a href='/?L=11'>Spegni</a></h2>");//quinto rele
if (LEDON5)
{
client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
}
else
{
client.println("<span style='color:red; font-weight:bold;'>OFF</span></font>");
}
client.println("<hr >");
client.println("<h3>All Off<h3><a href='/?L=13'>Spegni Tutto</a> ");
client.println(" </body>");
client.println("</html>");
readString="";
client.print("<meta http-equiv=\"refresh\" content=\"3\">");
client.stop();
}
}
}
}
}
da monitor seriale vedo cioè che arriva da xbee con Serial.write(Serial1.read());
ma non vedo niente da html se li stampo con client.println(Serial1.read());