#include <EEPROM.h>
#include <SPI.h>
#include <Ethernet.h>
// ethernet configuration
byte mac[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };
IPAddress ip(192, 168, 0, 5); // P1 --> { 10, 1, 1, 5 };
byte subnet [] = { 255, 255, 255, 0 };
EthernetServer server(80); // port 80 is default for HTTP
// initial
int PIRC1 = 3; // led is connected to digital pin 3
int PIRSF = 2; // PIR sensor is connected to digital pin 2
int cuarto1 = 5;
int alarma = 6;
int celular = 7;
int cuarto2 = 22;
int cuarto3 = 23;
int lamparaF = 25;
int lamparaP = 46;
int banio = 47;
int Pbanio = 48;
int sala = 49;
int comedor = 24;
int cocina = 27;
int respaldo = 26;
//Variables para la memoria eeprom
byte ee_valor1;
byte ee_valor2;
int estadodealarma = 0;
int estadodecelular = 0;
int estadodecuarto1 = 0;
int estadodecuarto2 = 0;
int estadodecuarto3 = 0;
int estadodelamparaF = 0;
int estadodelamparaP = 0;
int estadodePbanio = 0;
int estadodebanio = 0;
int estadodesala = 0;
int estadodecomedor = 0;
int estadodecocina = 0;
int PIRSFstate = 0; // variable for PIR sensor status
int PIRC1state = 0;
int estadoderespaldo = 0;
char c = 0; // received data
char command[2] = "\0"; // command
void setup()
{
Serial.begin(9600); // Inicializa el puerto serial
Ethernet.begin(mac, ip);
server.begin();
ee_valor1 = EEPROM.read(1);
ee_valor2 = EEPROM.read(2);
pinMode(PIRC1, INPUT);
pinMode(PIRSF, INPUT);
pinMode(alarma, OUTPUT);
pinMode(celular, OUTPUT);
pinMode(cuarto1, OUTPUT);
pinMode(cuarto2, OUTPUT);
pinMode(cuarto3, OUTPUT);
pinMode(lamparaF, OUTPUT);
pinMode(lamparaP, OUTPUT);
pinMode(banio, OUTPUT);
pinMode(Pbanio, OUTPUT);
pinMode(sala, OUTPUT);
pinMode(comedor, OUTPUT);
pinMode(cocina, OUTPUT);
pinMode(respaldo, OUTPUT);
if (ee_valor1 == 1) {
digitalWrite(respaldo, HIGH);
}
if (ee_valor1 == 0) {
digitalWrite(respaldo, LOW);
}
}
void loop()
{
// habilita el funcionamiento del sensor desde APP INVENTOR... LO QUE NECESITO HACER ES QUE (if !strcmp(command,"1") ES QUE CUENDO HABILITE EL FUNCIONAMIENTO DEL SENSOR DESDE EL APP Y SI REINICIO EL ARDUINO NO PIERDA EL ESTADO, LO QUE DECESITO ES QUE LO MEMORISE, CON EL ENCENDIDO DE LAMPARAS SI LO LOGRE FUNCIONAR PERO EN EL CASO DEL SENSOR ESTOY BATALLANDO.
if (!strcmp(command, "1")) {
digitalWrite(respaldo, HIGH);
EEPROM.write(1, 1);
int value = digitalRead(PIRSF);
if (value == HIGH)
{
digitalWrite(alarma, HIGH);
digitalWrite(celular, HIGH);
delay(1000);
digitalWrite(celular, LOW);
delay(1000);
}
int value1 = digitalRead(PIRC1);
if (value1 == HIGH)
{
digitalWrite(alarma, HIGH);
digitalWrite(celular, HIGH);
delay(1000);
digitalWrite(celular, LOW);
delay(1000);
}
}
else if (!strcmp(command, "2")) {
digitalWrite(alarma, LOW);
digitalWrite(respaldo, LOW);
EEPROM.write(1, 0);
}
EthernetClient client = server.available();
boolean current_line_is_first = true;
if (client) {
boolean current_line_is_blank = true;
while (client.connected())
{
if (client.available()) {
char c = client.read();
if (c == '\n' && current_line_is_blank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
if (!strcmp(command, "3"))
{
digitalWrite(celular, HIGH);
}
else if (!strcmp(command, "4"))
{
digitalWrite(celular, LOW);
}
if (!strcmp(command, "5"))
{
digitalWrite(cuarto1, HIGH);
}
else if (!strcmp(command, "6"))
{
digitalWrite(cuarto1, LOW);
}
if (!strcmp(command, "7"))
{
digitalWrite(cuarto2, HIGH);
}
else if (!strcmp(command, "8"))
{
digitalWrite(cuarto2, LOW);
}
if (!strcmp(command, "9"))
{
digitalWrite(cuarto3, HIGH);
}
else if (!strcmp(command, "A"))
{
digitalWrite(cuarto3, LOW);
}
if (!strcmp(command, "B"))
{
digitalWrite(lamparaF, HIGH);
}
else if (!strcmp(command, "C"))
{
digitalWrite(lamparaF, LOW);
}
if (!strcmp(command, "D"))
{
digitalWrite(lamparaP, HIGH);
}
else if (!strcmp(command, "E"))
{
digitalWrite(lamparaP, LOW);
}
if (!strcmp(command, "F"))
{
digitalWrite(banio, HIGH);
}
else if (!strcmp(command, "G"))
{
digitalWrite(banio, LOW);
}
if (!strcmp(command, "H"))
{
digitalWrite(Pbanio, HIGH);
}
else if (!strcmp(command, "I"))
{
digitalWrite(Pbanio, LOW);
}
if (!strcmp(command, "J"))
{
digitalWrite(sala, HIGH);
}
else if (!strcmp(command, "K"))
{
digitalWrite(sala, LOW);
}
if (!strcmp(command, "L"))
{
digitalWrite(comedor, HIGH);
}
else if (!strcmp(command, "M"))
{
digitalWrite(comedor, LOW);
}
if (!strcmp(command, "N"))
{
digitalWrite(cocina, HIGH);
}
else if (!strcmp(command, "O"))
{
digitalWrite(cocina, LOW);
}
if (!strcmp(command, "P")) {
digitalWrite(cuarto1, HIGH);
digitalWrite(cuarto2, HIGH);
digitalWrite(cuarto3, HIGH);
digitalWrite(lamparaF, HIGH);
digitalWrite(lamparaP, HIGH);
digitalWrite(banio, HIGH);
digitalWrite(Pbanio, HIGH);
digitalWrite(sala, HIGH);
digitalWrite(comedor, HIGH);
digitalWrite(cocina, HIGH);
}
else if (!strcmp(command, "Q"))
{
digitalWrite(cuarto1, LOW);
digitalWrite(cuarto2, LOW);
digitalWrite(cuarto3, LOW);
digitalWrite(lamparaF, LOW);
digitalWrite(lamparaP, LOW);
digitalWrite(banio, LOW);
digitalWrite(Pbanio, LOW);
digitalWrite(sala, LOW);
digitalWrite(comedor, LOW);
digitalWrite(cocina, LOW);
}
break;
}
if (c == '\n')
{
// we're starting a new line
current_line_is_first = false;
current_line_is_blank = true;
}
else if (c != '\r') {
current_line_is_blank = false;
}
if (current_line_is_first && c == '=') {
for (int i = 0; i < 1; i++) {
c = client.read();
command = c;
- }*
- PIRC1state = 0;*
- PIRSFstate = 0;*
- }*
- }*
- }*
- // give the web browser time to receive the data*
- delay(1);*
- client.stop();*
- }*
}
LES ENVIO EL APP
EL USUARIO: USER
PASSWORD: 123456