Hi All.
First off
Domotichome is great
i modified the code so it can also read dallas instrument temp sensors
and it uses rf switches to controll everything so its only connected to the network and the rest is wireless
however my code it noy all that eficient yer but it works
#include <SPI.h>
#include <Ethernet.h>
#include <DallasTemperature.h>
#include <RemoteSwitch.h>
#define ONE_WIRE_BUS 9
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xBE };
byte ip[] = { 192 ,168 ,1 ,15 };
byte gateway[] = { 192 ,168 ,1 ,1 };
byte subnet[] = { 255 ,255 ,255 ,0 };
Server server(5000);
String readString = String(30);
void setup(){
sensors.begin();
Ethernet.begin(mac, ip, gateway, subnet);
delay(500);
pinMode(3, OUTPUT);
digitalWrite(3, LOW);
pinMode(4, OUTPUT);
digitalWrite(4, LOW);
pinMode(5, OUTPUT);
digitalWrite(5, LOW);
pinMode(6, OUTPUT);
digitalWrite(6, LOW);
//Serial.begin(9600);
}
void loop(){
unsigned long code1;
unsigned long code2;
unsigned long code3;
unsigned long code4;
unsigned long code5;
unsigned long code6;
code1 = 722;
code2 = 726;
code3 = 1694;
code4 = 1698;
code5 = 2018;
code6 = 2022;
code1 |= (unsigned long)315 << 23;
code2 |= (unsigned long)315 << 23;
code3 |= (unsigned long)315 << 23;
code4 |= (unsigned long)315 << 23;
code5 |= (unsigned long)315 << 23;
code6 |= (unsigned long)315 << 23;
code1 |= 3L << 20;
code2 |= 3L << 20;
code3 |= 3L << 20;
code4 |= 3L << 20;
code5 |= 3L << 20;
code6 |= 3L << 20;
sensors.requestTemperatures();
float temperatureReading_341 = sensors.getTempCByIndex(1);
// float temperatureReading_354 = sensors.getTempCByIndex(1);
//Serial.print(temperatureReading_341);
Client client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 30)
{
readString = readString + c;
}
if (c == '\n') {
//Serial.print(readString);
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
if(readString.startsWith("GET /?out=3&status=1"))
{RemoteSwitch::sendTelegram(code1,10);
//digitalWrite(3, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(3);
client.print("\"}");
}
if(readString.startsWith("GET /?out=3&status=0"))
{RemoteSwitch::sendTelegram(code2,10);
//digitalWrite(3, LOW);
client.print("{\"status\" : \"0\" , \"out\" : \"");
client.print(3);
client.print("\"}");
}
if(readString.startsWith("GET /?out=4&status=1"))
{RemoteSwitch::sendTelegram(code3,10);
//digitalWrite(4, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(4);
client.print("\"}");
}
if(readString.startsWith("GET /?out=4&status=0"))
{RemoteSwitch::sendTelegram(code4,10);
//digitalWrite(4, LOW);
client.print("{\"status\" : \"0\" , \"out\" : \"");
client.print(4);
client.print("\"}");
}
if(readString.startsWith("GET /?out=5&status=1"))
{RemoteSwitch::sendTelegram(code5,10);
//digitalWrite(5, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(5);
client.print("\"}");
}
if(readString.startsWith("GET /?out=5&status=0"))
{RemoteSwitch::sendTelegram(code6,10);
//digitalWrite(5, LOW);
client.print("{\"status\" : \"0\" , \"out\" : \"");
client.print(5);
client.print("\"}");
}
if(readString.startsWith("GET /?out=6&status=1"))
{Serial.print("Out 6 Status off ");
digitalWrite(6, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(6);
client.print("\"}");
}
if(readString.startsWith("GET /?out=6&status=0"))
{Serial.print("Out 6 Status off ");
digitalWrite(6, LOW);
client.print("{\"status\" : \"0\" , \"out\" : \"");
client.print(6);
client.print("\"}");
}
if(readString.startsWith("GET /?out=9&status=1"))
{Serial.print(temperatureReading_341);
client.print("{\"status\" : \"ok\" , \"value\" : \"");
client.print(temperatureReading_341);
client.print("\"}");
}
//if(readString.startsWith("GET /?out=7&status=1"))
//{Serial.print("\n 10 f_MCP9700A \n");
//client.print("{\"status\" : \"ok\" , \"value\" : \"");
//client.print(temperatureReading_354);
//client.print("\"}");
//}
if(readString.startsWith("GET /?out=all"))
{
Serial.print("\n OUT ALL\n");
client.print("{\"ip\" : \"192.168.1.15\", ");
client.print("\"devices\" : ");
client.print("[{ \"type\" : \"light\", \"name\" : \"Lamp1\", \"out\" : \"");
client.print("3");
client.print("\"}");
client.print(",{ \"type\" : \"light\", \"name\" : \"Lamp 2\", \"out\" : \"");
client.print("4");
client.print("\"}");
client.print(",{ \"type\" : \"light\", \"name\" : \"Lamp 3\", \"out\" : \"");
client.print("5");
client.print("\"}");
client.print(",{ \"type\" : \"light\", \"name\" : \"Enable Rf\", \"out\" : \"");
client.print("6");
client.print("\"}");
client.print(",{ \"type\" : \"temperature\", \"name\" : \"Temp 1\", \"out\" : \"");
client.print("9");
client.print("\"}");
//client.print(",{ \"type\" : \"temperature\", \"name\" : \"Temp 2\", \"out\" : \"");
//client.print("7");
//client.print("\"}");
client.print("]}");
}
readString="";
client.stop();
}
}
}
}
}