You are on page 1of 3

#include <SPI.

h>
#include <Ethernet.h>
#include <mcp9700a.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xBC };
byte ip[] = { 192 ,168 ,0 ,150 };
byte gateway[] = { 192 ,168 ,0 ,1 };
byte subnet[] = { 255 ,255 ,255 ,0 };
Server server(8888);
String readString = String(30);
mcp9700a temperature_893(4);
double Vrms_894=240.0;
int numberOfSamples_894 = 3000;
int inPinI_894 = 0;
double ICAL_894 = 0.3;
int lastSampleI_894,sampleI_894;
double lastFilteredI_894, filteredI_894;
double sqI_894,sumI_894;
float apparentPower_894,Irms_894;
void setup(){
Ethernet.begin(mac, ip, gateway, subnet);
delay(1000);
pinMode(1, OUTPUT);
digitalWrite(1, LOW);
pinMode(2, OUTPUT);
digitalWrite(2, LOW);
pinMode(3, OUTPUT);
digitalWrite(3, LOW);
Serial.begin(9600);
}
void loop(){
float temperatureReading_893 = temperature_893.celsius();
for (int n=0; n<numberOfSamples_894; n++)
{
lastSampleI_894=sampleI_894;
sampleI_894 = analogRead(5);
lastFilteredI_894 = filteredI_894;
filteredI_894 = 0.996*(lastFilteredI_894+sampleI_894-lastSampleI_894);
sqI_894 = filteredI_894 * filteredI_894;
sumI_894 += sqI_894;
}
Irms_894 = ICAL_894*sqrt(sumI_894 / numberOfSamples_894);
apparentPower_894 = Vrms_894 * Irms_894;
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=1&status=1"))
{Serial.print("\n 1 HIGH \n");
digitalWrite(1, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(1);
client.print("\"}");
}
if(readString.startsWith("GET /?out=1&status=0"))
{Serial.print("\n 1 LOW \n");
digitalWrite(1, LOW);
client.print("{\"status\" : \"0\" , \"out\" : \"");
client.print(1);
client.print("\"}");
}
if(readString.startsWith("GET /?out=2&status=1"))
{Serial.print("\n 2 HIGH \n");
digitalWrite(2, HIGH);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(2);
client.print("\"}");
}
if(readString.startsWith("GET /?out=2&status=0"))
{Serial.print("\n 2 LOW \n");
digitalWrite(2, LOW);
client.print("{\"status\" : \"0\" , \"out\" : \"");
client.print(2);
client.print("\"}");
}
if(readString.startsWith("GET /?out=3&status=1"))
{Serial.print("\n 3 HIGH LOW \n");
digitalWrite(3, HIGH);
delay(100);
digitalWrite(3, LOW);
client.print("{\"status\" : \"1\" , \"out\" : \"");
client.print(3);
client.print("\"}");
}
if(readString.startsWith("GET /?out=4&status=1"))
{Serial.print("\n 4 f_MCP9700A \n");
client.print("{\"status\" : \"ok\" , \"value\" : \"");
client.print(temperatureReading_893);
client.print("\"}");
}
if(readString.startsWith("GET /?out=5&status=1"))
{Serial.print("\n 5 f_ct_sensor_oem \n");
client.print("{\"status\" : \"ok\" , \"value\" : \"");
client.print(apparentPower_894);

client.print("\"}");
}
if(readString.startsWith("GET /?out=all"))
{
Serial.print("\n OUT ALL\n");
client.print("{\"ip\" : \"192.168.0.150\", ");
client.print("\"devices\" : ");
client.print("[{ \"type\" : \"light\", \"name\" : \"Luz Quarto\", \"out\" : \"")
;
client.print("1");
client.print("\"}");
client.print(",{ \"type\" : \"plug\", \"name\" : \"Ventilador\", \"out\" : \"");
client.print("2");
client.print("\"}");
client.print(",{ \"type\" : \"door\", \"name\" : \"Porta Frente\", \"out\" : \""
);
client.print("3");
client.print("\"}");
client.print(",{ \"type\" : \"temperature\", \"name\" : \"Temperatura\", \"out\"
: \"");
client.print("4");
client.print("\"}");
client.print(",{ \"type\" : \"wattmeter\", \"name\" : \"Medidor\", \"out\" : \""
);
client.print("5");
client.print("\"}");
client.print("]}");
}
readString="";
client.stop();
}
}
}
}
}

You might also like