Estou com dificuldade em conseguir colocar um botão para acionar o sistema de alarme no arduino via WEB e depois passar para android.

o menu que fiz para entrar no alarme quando digito a senha ele ativa mas so funciona quando volto para a tela principal.

alguém poderia me ajudar

segue o codigo :

//Bibliotecas
//#include <NewTone.h>
#include <LiquidCrystal.h>
#include <Keypad.h>
#include <Wire.h>
#include "ds3231.h"
#include "rtc_ds3231.h"
#include <SPI.h>
#include <String.h>
#include <Ethernet.h>
#include <Udp.h>
#include <Password.h>
#include <Servo.h>

Servo myservo1; // criação para controle do servo 1
Servo myservo2;

int passwd_pos = 8; // posição da senha

//Definições do pinos ligados ao sensor MQ-2 Gás e Fumaça

int pin_led_verm = 44;
int pin_led_verde = 45;
int pin_buzzer = 49;
int pin_d0 = 43;
int pin_a0 = A2;
int nivel_sensor = 250;
int sensorValue = 0;
float gas;
float temperature = 0;
//LDR

int ldr_pin = 0; //variavel que representa o pino de entrada do sensor LDR
int ldr_val = 0; //variavel que representa o valor de entrada do pino analogico "0"
int LedPins[] = {22,23,24,25};

//Denições dos pinos ligados as lâmpadas

int lampada1 = 27; //sala
int lampada2 = 28; //quarto 1
int lampada3 = 29; //quarto 2
int lampada4 = 30; //cozinha
int lampada5 = 31; //churrasqueira e area
int lampada6 = 32; //calçada
int lampada7 = 33; //entrada
int lampada8 = 34; //quintal
int lampada9 = 35; //banheiro

//Definições dos pinos ligados aos Condicionadores de Ar

int arcond1 = 36; //ar condicionado sala
int arcond2 = 37; //ar condicionado quarto 1
int arcond3 = 38; //ar condicionado quarto 2

//Definições dos pinos ligados aos motores

int portao1 = 46; //motor 1
int pos = 0; // variable to store the servo position
int portao2 = 47; //motor 1
int pos1 = 0; // variable to store the servo position

//Alarme
#define tempo 1000
int frequencia = 0;
int pinLedverde = 15;
int pinLed = 16;
int yelowLED = 18;
int greenLED = 14;
int pinSensorPIR = 39;
int pinSensorPIR2 = 40;
int pinSensorPIR3 = 41;
int pinSensorPIR4 = 42;
const int pinBuzzer = 17;
int alarmStatus = 0;
int alarmActive = 0;
int ledDelay = 70;

int i=0;
int b=0;

int pausa = 10;
int x =0;
int y =0;
int z =0;
char tecla;

//Hardware do LCD

LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // portas em que o LCD esta ligado ao Arduino

#define uchar unsigned char
#define uint unsigned int
#define MAX_LEN 16
#define BUFF_MAX 128

uint8_t time[8];

char recv[BUFF_MAX];
unsigned int recv_size = 0;
unsigned long prev, interval = 1000;

Password password = Password( "1234" );

const byte ROWS = 4;
const byte COLUMNS = 4;
char keys[ROWS][COLUMNS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins [ROWS] = {A7, A8, A9, A10}; //Define pinos a serem ligados, LINHAS
byte colPins [COLUMNS] = {A11, A12, A13, A14}; //Define pinos a serem ligados, COLUNAS

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLUMNS ); // Variavel do teclado matricial 4x4

//parametros web_ethernet

byte mac[] = { 0xA4, 0x28, 0x72, 0xCA, 0x55, 0x2F };
byte ip[] = { 192, 168, 1, 20 };
byte gateway[] = { 192, 168, 1, 1 };
byte subnet[] = { 255, 255, 255, 0 };

EthernetServer server(8081);

String readString= String(30);

String statusLed;

void setup() {
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();

//Inicializa LCD 16 x 2

lcd.begin(16, 2);

//Configurações da mensagem inicial

lcd.clear(); // Limpa o display
lcd.setCursor(16,0);
lcd.print("SEJA BEM VINDO");
for(int x=0; x<30; x++){ // laço de repetição
lcd.scrollDisplayLeft(); // Rola o display 30 vezes para a direita
delay(300);
}
lcd.clear(); // Limpa o display
lcd.setCursor(1,1);
lcd.print("PROJETO - TCC");
for(int x=0; x<16; x++) { // laço de repetição
lcd.scrollDisplayRight(); // Rola o display 16 vezes para a direita
delay(300); }
//delay(2000);
lcd.clear(); // Limpa o display
lcd.setCursor(6,0);
lcd.print("CASA");
lcd.setCursor(3,2);
lcd.print("INTELIGENTE");
for(int x=0; x < 5; x++) { // pisca a mensagem 5 vezes
lcd.noDisplay(); // Apaga o display
delay(1000); // Aguarda 1s
lcd.display(); // Acende-o novamente
delay(1000); } // Aguarda 1s
lcd.clear();

Wire.begin();
SPI.begin();

//Controle de estados atraves do serial
Serial.begin(9600);
//Define Sensor de Temperatura e Relogio
DS3231_init(DS3231_INTCN);
memset(recv, 0, BUFF_MAX);
Serial.println("GET time");
//Define pinos do sensor de gas como entrada
pinMode(pin_d0, INPUT);
pinMode(pin_a0, INPUT);
// Define pinos leds e buzzer como saida do sensor de gas
pinMode(pin_led_verm, OUTPUT);
pinMode(pin_led_verde, OUTPUT);
pinMode(pin_buzzer, OUTPUT);
//Define pinos dos Led´s Ligados ao LDR
pinMode(22, OUTPUT); //Led ligado a porta digital 22
pinMode(23, OUTPUT); //Led ligado a porta digital 23
pinMode(24, OUTPUT); //Led ligado a porta digital 24
pinMode(25, OUTPUT); //Led ligado a porta digital 25
pinMode(26, OUTPUT); //Led ligado a porta digital 26

//Define pinos ligados as lâmpadas

pinMode(lampada1, OUTPUT); //Led ligado a porta digital 27
pinMode(lampada2, OUTPUT); //Led ligado a porta digital 28
pinMode(lampada3, OUTPUT); //Led ligado a porta digital 29
pinMode(lampada4, OUTPUT); //Led ligado a porta digital 30
pinMode(lampada5, OUTPUT); //Led ligado a porta digital 31
pinMode(lampada6, OUTPUT); //Led ligado a porta digital 32
pinMode(lampada7, OUTPUT); //Led ligado a porta digital 33
pinMode(lampada8, OUTPUT); //Led ligado a porta digital 34
pinMode(lampada9, OUTPUT); //Led ligado a porta digital 35

//Define pinos ligados aos Condicionadores de Ar

pinMode(arcond1, OUTPUT); //Led ligado a porta digital 36
pinMode(arcond2, OUTPUT); //Led ligado a porta digital 37
pinMode(arcond3, OUTPUT); //Led ligado a porta digital 38

//Definido pinos como de entrada ou de saída do alarme

pinMode(pinBuzzer,OUTPUT); //Pino ligado ao Buzzer/Sirene
pinMode(pinSensorPIR,INPUT);
pinMode(pinSensorPIR2,INPUT);
pinMode(pinSensorPIR3,INPUT);
pinMode(pinSensorPIR4,INPUT);
pinMode(pinLed,OUTPUT);
pinMode(pinLedverde,OUTPUT);
pinMode(yelowLED,OUTPUT);
pinMode(greenLED,OUTPUT);


keypad.addEventListener(keypadEvent);


analogWrite(46, LOW);
myservo1.attach(46);
analogWrite(47, LOW);
myservo2.attach(47);

//Ajuste de Data e Horario no modulo DS3231
//Serial.println("Setting time");
//parse_cmd("T304119112062016",16);

}

void loop () {

EthernetClient client = server.available();

if (client)
{
while(client.connected())
{
if(client.available())
{
char c = client.read();

if(readString.length() < 30) {
readString += (c);
}

if(c == '\n')
{

if(readString.indexOf("lampada9") >= 0) {
digitalWrite(lampada9,!digitalRead(lampada9));
}


if(readString.indexOf("lampada1") >= 0) {
digitalWrite(lampada1,!digitalRead(lampada1));
}

if(readString.indexOf("lampada2") >= 0) {
digitalWrite(lampada2,!digitalRead(lampada2));
}

if(readString.indexOf("lampada3") >= 0) {
digitalWrite(lampada3,!digitalRead(lampada3));
}

if(readString.indexOf("lampada4") >= 0) {
digitalWrite(lampada4,!digitalRead(lampada4));
}

if(readString.indexOf("lampada5") >= 0) {
digitalWrite(lampada5,!digitalRead(lampada5));
}

if(readString.indexOf("lampada6") >= 0) {
digitalWrite(lampada6,!digitalRead(lampada6));
}

if(readString.indexOf("lampada7") >= 0) {
digitalWrite(lampada7,!digitalRead(lampada7));
}

if(readString.indexOf("lampada8") >= 0) {
digitalWrite(lampada8,!digitalRead(lampada8));
}

if(readString.indexOf("arcond1") >= 0) {
digitalWrite(arcond1,!digitalRead(arcond1));
}

if(readString.indexOf("arcond2") >= 0) {
digitalWrite(arcond2,!digitalRead(arcond2));
}

if(readString.indexOf("arcond3") >= 0) {
digitalWrite(arcond3,!digitalRead(arcond3));
}

if(readString.indexOf("?on") >= 0)
myservo1.write(180);
{
analogWrite(46, LOW);

}

if(readString.indexOf("?off") >= 0)
myservo1.write(0);
{
analogWrite(46, LOW);
}


if(readString.indexOf("?o1") >=0)
myservo2.write(180);
{
analogWrite(47, LOW);

}

if(readString.indexOf("?of1") >=0)
myservo2.write(0);
{
analogWrite(47, LOW);
}


// Cabeçalho http padrão

client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();

client.println("<!doctype html>");
client.println("<html>");
client.println("<head>");
client.println("<title>TCC</title>");
client.println("<meta name=\"viewport\" content=\"width=320\">");
client.println("<meta name=\"viewport\" content=\"width=device-width\">");
client.println("<meta charset=\"utf-8\">");
client.println("<meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no\">");
client.println("</head>");
client.println("<body>");
client.println("<center>");

client.println("<font size=\"5\" face=\"verdana\" color=\"green\">CASA</font>");
client.println("<font size=\"3\" face=\"verdana\" color=\"red\"> & </font>");
client.println("<font size=\"5\" face=\"verdana\" color=\"blue\">Inteligente</font><br /> <br> <br>");


if(digitalRead(arcond1)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"arcond1\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Arcond 1 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(arcond2)) {
statusLed = "Ligado";
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"arcond2\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Arcond 2 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(arcond3)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"arcond3\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Arcond 3 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(lampada1)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"lampada1\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Lâmpada 1 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(lampada2)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"lampada2\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Lâmpada 2 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(lampada3)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"lampada3\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Lâmpada 3 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(lampada4)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"lampada4\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Lâmpada 4 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(lampada5)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"lampada5\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Lâmpada 5 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(lampada6)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"lampada6\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Lâmpada 6 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(lampada7)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"lampada7\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Lâmpada 7 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(lampada8)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"lampada8\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Lâmpada 8 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(lampada9)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"lampada9\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Lâmpada 9 - "+statusLed+"</button>");
client.println("</form> <br /></td>");



if(digitalRead(46)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}

client.println("<a href=\"/?on\" method=\"get\">");
client.println("<button type= submit style= width:100px;\">Abrir portão </button>");

client.println("<a href=\"/?off\" method=\"get\">");
client.println("<button type=submit style=\"width:100px;\">Fechar portão </button>");


if(digitalRead(47)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}

client.print("<P>");

client.println("<a href=\"/?o1\" method=\"get\">");
client.println("<button type= submit style= width:100px;\">Abr portão </button>");

client.println("<a href=\"/?of1\" method=\"get\">");
client.println("<button type=submit style=\"width:100px;\">Fe portão </button>");

client.println("</center>");

client.println("</body>");
client.println("</html>");

client.print("<P>");

client.print("Temperatura: ");
client.print(temperature);


readString = "";

client.stop();
}
}
}
}
int valorLido = analogRead(0);
temperature = (valorLido * 0.00488);
temperature = temperature * 100;
// float temperature;
Relogio();
Ldr();
// gasfumaca();

char key = keypad.getKey();
if (key)
{
if(key != NO_KEY)
{
menuConfig();
}
}


keypad.getKey();
if(alarmActive == 1){
if(digitalRead(pinSensorPIR) == HIGH){
alarmTriggered();
}
if(digitalRead(pinSensorPIR2) == HIGH){
alarmTriggered();
}
if(digitalRead(pinSensorPIR3) == HIGH){
alarmTriggered();
}
if(digitalRead(pinSensorPIR4) == HIGH){
alarmTriggered();
}
}
}

void Ldr()
{
ldr_val = analogRead(ldr_pin); //variavel que lê o pino da ldr e sua variação de luz
Serial.println(ldr_val); // variavel que escreve o valor da LDR na porta serial
// delay(15); // intervalo de 15 Miliegundos

if (ldr_val <10)
{
digitalWrite(22, HIGH);
} else {
digitalWrite(22, LOW);
}
if(ldr_val<10)
{
digitalWrite(23, HIGH);
} else {
digitalWrite(23, LOW);
}
if (ldr_val < 10)
{
digitalWrite(24, HIGH);
} else {
digitalWrite(24, LOW);
}
if (ldr_val < 10)
{
digitalWrite(25, HIGH);
} else {
digitalWrite(25, LOW);
}
if (ldr_val < 10)
{
digitalWrite(26, HIGH);
} else {
digitalWrite(26, LOW);
}

}

void keypadEvent(KeypadEvent eKey){
switch(keypad.getState()){
case PRESSED:
if(passwd_pos - 15 >= 5){
return;
}
lcd.setCursor((passwd_pos++),0);
switch(eKey){
case '*':
passwd_pos = 8;
checkPassword();
break;
case ' ':
password.reset();
passwd_pos = 8;
break;
case 'D':
displayCodeBlock();
if(alarmActive == 0 && alarmStatus == 0){
displayCodeBlock();
}
else if(alarmActive == 1 & alarmStatus == 1){
displayCodeUnblock();
}
break;
default:
password.append(eKey);
lcd.print("*");
}
}
}

void menuConfig()
{
telaMenuConfig();
char key;
do
{
key = keypad.getKey();
switch (key)
{
case 'A':
displayCodeBlock();
break;
case 'B':
// menuConfig2();
break;
case 'C':
// menuConfigN();
break;
}
} while (key != '#');

}

void telaMenuConfig()
{
// limpaLinha(0);
// limpaLinha(1);
lcd.setCursor(0, 0);
lcd.print("A:Alarme B:Gas");
lcd.setCursor(0, 1);
lcd.print("C:Fumaca #VOLTAR");
}

void limpaLinha(byte linha)
{
lcd.setCursor(0, linha);
lcd.print(" ");
}

void gasfumaca()
{
// Le os dados do pino digital D0 do sensor
int valor_digital = digitalRead(pin_d0);
// Le os dados do pino analogico A0 do sensor
int valor_analogico = analogRead(pin_a0);
// Mostra os dados no serial monitor
// Serial.print("Pino D0 : ");
// Serial.print(valor_digital);
// Verifica o nivel de gas/fumaca detectado
if (valor_digital > nivel_sensor)
{
// Liga o buzzer e o led vermelho, e
// desliga o led verde
digitalWrite(pin_led_verm, HIGH);
digitalWrite(pin_led_verde, LOW);
digitalWrite(pin_buzzer, HIGH);
tone(pin_buzzer, 1080, 100);
lcd.clear();
sensorValue = digitalRead(pin_d0);
lcd.setCursor (0, 0);
lcd.print("Nivel de Gas");
lcd.setCursor (0, 1);
lcd.print(sensorValue/10);
delay(5000);
lcd.clear();
}

// Serial.print(" Pino A0 : ");
// Serial.println(valor_analogico);
// Verifica o nivel de fumaca detectado
if (valor_analogico > nivel_sensor)
{
// Liga o buzzer e o led vermelho, e
// desliga o led verde
digitalWrite(pin_led_verm, HIGH);
digitalWrite(pin_led_verde, LOW);
digitalWrite(pin_buzzer, HIGH);
tone(pin_buzzer, 1080, 100);
lcd.clear();
sensorValue = analogRead(pin_a0);
lcd.setCursor (0, 0);
lcd.print("Nivel de Fumaca");
lcd.setCursor (0, 1);
lcd.print(sensorValue/10);
delay(5000);
lcd.clear();
}
else
{
// Desliga o buzzer e o led vermelho, e
// liga o led verde
digitalWrite(pin_led_verm, LOW);
digitalWrite(pin_led_verde, HIGH);
digitalWrite(pin_buzzer, LOW);
noTone(pin_buzzer);
}
delay(100);
}

void alarmTriggered(){
digitalWrite(pinBuzzer, HIGH);
digitalWrite(pinLed, HIGH);
password.reset();
alarmStatus = 1;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Alarme");
lcd.setCursor(0,1);
lcd.print("violado");
delay(700);{
StrokeLight();
for (frequencia = 150; frequencia < 1800; frequencia += 1)
{
tone(pinBuzzer, frequencia, tempo);
delay(1);
}
for (frequencia = 1800; frequencia > 150; frequencia -= 1)
{
tone(pinBuzzer, frequencia, tempo);
delay(1);
}

}
}

void StrokeLight(){
digitalWrite(pinLed, HIGH);
delay(ledDelay);
digitalWrite(pinLed, LOW);
delay(ledDelay);
digitalWrite(pinLed, HIGH);
delay(ledDelay);
digitalWrite(pinLed, LOW);
delay(ledDelay);
digitalWrite(pinLed, HIGH);
delay(ledDelay);
digitalWrite(pinLed, LOW);
delay(ledDelay);
digitalWrite(pinLedverde, HIGH);
delay(ledDelay);
digitalWrite(pinLedverde, LOW);
delay(ledDelay);
digitalWrite(pinLedverde, HIGH);
delay(ledDelay);
digitalWrite(pinLedverde, LOW);
delay(ledDelay);
digitalWrite(pinLedverde, HIGH);
delay(ledDelay);
digitalWrite(pinLedverde, LOW);
delay(ledDelay);


displayCodeUnblock();
}
void checkPassword(){
if(password.evaluate()){
if(alarmActive == 0 && alarmStatus == 0){
activate();
}
else if( alarmActive == 1 || alarmStatus == 1){
deactivate();
}
}
else{
invalidCode();
}
}

void invalidCode(){
password.reset();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Acesso Negado");
digitalWrite(pinLed, HIGH);
digitalWrite(pinLedverde, HIGH);
delay(70);
digitalWrite(pinLed, LOW);
digitalWrite(pinLedverde, LOW);
delay(70);
digitalWrite(pinLed, HIGH);
digitalWrite(pinLedverde, HIGH);
delay(70);
digitalWrite(pinLed, LOW);
digitalWrite(pinLedverde, LOW);
delay(70);
delay(1000);
displayCodeBlock();
}

void activate(){
digitalWrite(yelowLED, HIGH);
digitalWrite(greenLED, LOW);
tone(pinBuzzer, 2000, 100);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Alarme Ativo");
alarmActive = 1;
password.reset();
delay(700);
displayCodeUnblock();

}

void deactivate(){
alarmStatus = 0;
digitalWrite(yelowLED, LOW);
digitalWrite(greenLED, HIGH);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Alarme Desligado");
digitalWrite(pinBuzzer , LOW);
tone(pinBuzzer, 1500, 100);
alarmActive = 0;
password.reset();
delay(700);
displayCodeBlock();
}

void displayCodeUnblock(){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Senha");
lcd.setCursor(0,1);
lcd.print("para desativar");
}
void displayCodeBlock(){
digitalWrite(pinBuzzer, LOW);
digitalWrite(greenLED, HIGH);
digitalWrite(yelowLED, LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Senha");
lcd.setCursor(0,1);
lcd.print("para ativar");

}


void Relogio() {

char in;
char tempF[6];
float temperature;
char buff[BUFF_MAX];
unsigned long now = millis();
struct ts t;



// show time once in a while
if ((now - prev > interval) && (Serial.available() <= 0)) {
DS3231_get(&t); //Get time
parse_cmd("C",1);
temperature = DS3231_get_treg(); //Get temperature
dtostrf(temperature, 5, 1, tempF);

lcd.clear();
lcd.setCursor(1,0);

lcd.print(t.mday);

printMonth(t.mon);

lcd.print(t.year);

lcd.setCursor(0,1); //Go to second line of the LCD Screen
lcd.print(t.hour);
lcd.print(":");
if(t.min<10)
{
lcd.print("0");
}
lcd.print(t.min);
lcd.print(":");
if(t.sec<10)
{
lcd.print("0");
}
lcd.print(t.sec);

lcd.print(' ');
lcd.print(tempF);
lcd.print((char)223);
lcd.print("C ");
prev = now;
}


if (Serial.available() > 0) {
in = Serial.read();

if ((in == 10 || in == 13) && (recv_size > 0)) {
parse_cmd(recv, recv_size);
recv_size = 0;
recv[0] = 0;
} else if (in < 48 || in > 122) {; // ignore ~[0-9A-Za-z]
} else if (recv_size > BUFF_MAX - 2) { // drop lines that are too long
// drop
recv_size = 0;
recv[0] = 0;
} else if (recv_size < BUFF_MAX - 2) {
recv[recv_size] = in;
recv[recv_size + 1] = 0;
recv_size += 1;
}

}
}

void parse_cmd(char *cmd, int cmdsize)
{
uint8_t i;
uint8_t reg_val;
char buff[BUFF_MAX];
struct ts t;

//snprintf(buff, BUFF_MAX, "cmd was '%s' %d\n", cmd, cmdsize);
//Serial.print(buff);

// T050004206062016 aka set time
if (cmd[0] == 84 && cmdsize == 16) {
// t205803206062016
t.sec = inp2toi(cmd, 1);
t.min = inp2toi(cmd, 3);
t.hour = inp2toi(cmd, 5);
t.wday = inp2toi(cmd, 7);
t.mday = inp2toi(cmd, 8);
t.mon = inp2toi(cmd, 10);
t.year = inp2toi(cmd, 12) * 100 + inp2toi(cmd, 14);
DS3231_set(t);
Serial.println("OK");
} else if (cmd[0] == 49 && cmdsize == 1) { // "1" get alarm 1
DS3231_get_a1(&buff[0], 59);
Serial.println(buff);
} else if (cmd[0] == 50 && cmdsize == 1) { // "2" get alarm 1
DS3231_get_a2(&buff[0], 59);
Serial.println(buff);
} else if (cmd[0] == 51 && cmdsize == 1) { // "3" get aging register
Serial.print("aging reg is ");
Serial.println(DS3231_get_aging(), DEC);
} else if (cmd[0] == 65 && cmdsize == 9) { // "A" set alarm 1
DS3231_set_creg(DS3231_INTCN | DS3231_A1IE);
//ASSMMHHDD
for (i = 0; i < 4; i++) {
time[i] = (cmd[2 * i + 1] - 48) * 10 + cmd[2 * i + 2] - 48; // ss, mm, hh, dd
}


boolean flags[5] = { 0, 0, 0, 0, 0 };

// DS3231_set_a1(time[0], time[1], time[2], time[3], flags);
DS3231_get_a1(&buff[0], 59);
Serial.println(buff);
} else if (cmd[0] == 66 && cmdsize == 7) { // "B" Set Alarm 2
DS3231_set_creg(DS3231_INTCN | DS3231_A2IE);
//BMMHHDD
for (i = 0; i < 4; i++) {
time[i] = (cmd[2 * i + 1] - 48) * 10 + cmd[2 * i + 2] - 48; // mm, hh, dd
}
boolean flags[5] = { 0, 0, 0, 0 };
// DS3231_set_a2(time[0], time[1], time[2], flags);
DS3231_get_a2(&buff[0], 59);
Serial.println(buff);
} else if (cmd[0] == 67 && cmdsize == 1) { // "C" - get temperature register
Serial.print("temperature reg is ");
Serial.println(DS3231_get_treg(), DEC);
} else if (cmd[0] == 68 && cmdsize == 1) { // "D" - reset status register alarm flags
reg_val = DS3231_get_sreg();
reg_val &= B11111100;
DS3231_set_sreg(reg_val);
} else if (cmd[0] == 70 && cmdsize == 1) { // "F" - custom fct
reg_val = DS3231_get_addr(0x5);
Serial.print("orig ");
Serial.print(reg_val,DEC);
Serial.print("month is ");
Serial.println(bcdtodec(reg_val & 0x1F),DEC);
} else if (cmd[0] == 71 && cmdsize == 1) { // "G" - set aging status register
DS3231_set_aging(0);
} else if (cmd[0] == 83 && cmdsize == 1) { // "S" - get status register
Serial.print("status reg is ");
Serial.println(DS3231_get_sreg(), DEC);
} else {
Serial.print("unknown command prefix ");
Serial.println(cmd[0]);
Serial.println(cmd[0], DEC);
}
}

void printMonth(int month)
{
switch(month)
{
case 1: lcd.print(" Janeiro ");break;
case 2: lcd.print(" Fevereiro ");break;
case 3: lcd.print(" Março ");break;
case 4: lcd.print(" Abril ");break;
case 5: lcd.print(" Maio ");break;
case 6: lcd.print(" Junho ");break;
case 7: lcd.print(" Julho ");break;
case 8: lcd.print(" Agosto ");break;
case 9: lcd.print(" Setembro ");break;
case 10: lcd.print(" Outubro ");break;
case 11: lcd.print(" Novembro ");break;
case 12: lcd.print(" Dezembro ");break;
default: lcd.print(" Error ");break;
}

}

Exibições: 401

Responder esta

Respostas a este tópico

Jorge,

Você pode explicar melhor o que está tentando fazer?

O Arduino tem um teclado para o usuário digitar uma senha, é isso? Esse Android está rodando onde? Em um celular? O que ele tem a ver com o resto do sistema? O que você pretende mandar via web? Status de acesso?

Uma dica: postar um código tão grande vai assustar a galera, ninguém tem tempo para analisar esse monte de coisa. Tente fechar apenas na parte que está dando problema. Ok? ;-)

Abraço!

Marcelo,

postei o código todo pois a cabei copiando rs..

e o seguinte ele ja esta acionando por teclado funcionando sim, se eu retirar essa parte :

char key = keypad.getKey();
if (key)
{
if(key != NO_KEY)
{
menuConfig(); 
}
}

os caracteres da senha ficam por cima da data e relógio mais aciona o alarme , se permanecer com esse codigo aperto qualquer tecla me leva nesse menu :

void telaMenuConfig()
{
// limpaLinha(0);
// limpaLinha(1);
lcd.setCursor(0, 0);
lcd.print("A:Alarme B:Gas");
lcd.setCursor(0, 1);
lcd.print("C:Fumaca #VOLTAR");
}

aperto a tecla A e aparece para digitar a senha , digito a senha o alarme esta ativado e fica a mensagem : senha para desativar na tela sendo que o alarme esta ativado mas não funciona só funciona se eu apertar  # que volta pra tela principal que é o relógio.

mesmo que eu tire essa programação o que eu quero de fato se não conseguir efetuar com o menu e acionar o alarme via web com um botão ligar alarme , desligar alarme é que se o alarme for violado me avise pelo aplicativo que estou fazendo.::

ja fiz os parametros da web:

void loop () {

EthernetClient client = server.available();

if (client)
{
while(client.connected())
{
if(client.available())
{
char c = client.read();

if(readString.length() < 30) {
readString += (c);


if(c == '\n')
{

if(readString.indexOf("lampada9") >= 0) {
digitalWrite(lampada9,!digitalRead(lampada9));
}


if(readString.indexOf("lampada1") >= 0) {
digitalWrite(lampada1,!digitalRead(lampada1));
}

if(readString.indexOf("lampada2") >= 0) {
digitalWrite(lampada2,!digitalRead(lampada2));
}

if(readString.indexOf("lampada3") >= 0) {
digitalWrite(lampada3,!digitalRead(lampada3));
}

if(readString.indexOf("lampada4") >= 0) {
digitalWrite(lampada4,!digitalRead(lampada4));
}

if(readString.indexOf("lampada5") >= 0) {
digitalWrite(lampada5,!digitalRead(lampada5));
}

if(readString.indexOf("lampada6") >= 0) {
digitalWrite(lampada6,!digitalRead(lampada6));
}

if(readString.indexOf("lampada7") >= 0) {
digitalWrite(lampada7,!digitalRead(lampada7));
}

if(readString.indexOf("lampada8") >= 0) {
digitalWrite(lampada8,!digitalRead(lampada8));
}

if(readString.indexOf("arcond1") >= 0) {
digitalWrite(arcond1,!digitalRead(arcond1));
}

if(readString.indexOf("arcond2") >= 0) {
digitalWrite(arcond2,!digitalRead(arcond2));
}

if(readString.indexOf("arcond3") >= 0) {
digitalWrite(arcond3,!digitalRead(arcond3));
}

if(readString.indexOf("?on") >= 0)
myservo1.write(180);
{
analogWrite(46, LOW);

}

if(readString.indexOf("?off") >= 0) 
myservo1.write(0);
{
analogWrite(46, LOW);
}


if(readString.indexOf("?o1") >=0)
myservo2.write(180);
{
analogWrite(47, LOW);

}

if(readString.indexOf("?of1") >=0) 
myservo2.write(0);
{
analogWrite(47, LOW);
}


// Cabeçalho http padrão

client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();

client.println("<!doctype html>");
client.println("<html>");
client.println("<head>");
client.println("<title>TCC</title>");
client.println("<meta name=\"viewport\" content=\"width=320\">");
client.println("<meta name=\"viewport\" content=\"width=device-width\">");
client.println("<meta charset=\"utf-8\">");
client.println("<meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no\">");
client.println("</head>");
client.println("<body>");
client.println("<center>");

client.println("<font size=\"5\" face=\"verdana\" color=\"green\">CASA</font>");
client.println("<font size=\"3\" face=\"verdana\" color=\"red\"> & </font>");
client.println("<font size=\"5\" face=\"verdana\" color=\"blue\">Inteligente</font><br /> <br> <br>");


if(digitalRead(arcond1)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"arcond1\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Arcond 1 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(arcond2)) {
statusLed = "Ligado";
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"arcond2\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Arcond 2 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(arcond3)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"arcond3\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Arcond 3 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(lampada1)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"lampada1\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Lâmpada 1 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(lampada2)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"lampada2\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Lâmpada 2 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(lampada3)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"lampada3\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Lâmpada 3 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(lampada4)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"lampada4\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Lâmpada 4 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(lampada5)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"lampada5\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Lâmpada 5 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(lampada6)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"lampada6\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Lâmpada 6 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(lampada7)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"lampada7\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Lâmpada 7 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(lampada8)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"lampada8\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Lâmpada 8 - "+statusLed+"</button>");
client.println("</form> <br /></td>");


if(digitalRead(lampada9)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}
client.println("<td> <form action=\"lampada9\" method=\"get\">");
client.println("<button type=submit style=\"width:200px;\">Lâmpada 9 - "+statusLed+"</button>");
client.println("</form> <br /></td>");



if(digitalRead(46)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}

client.println("<a href=\"/?on\" method=\"get\">");
client.println("<button type= submit style= width:100px;\">Abrir portão </button>");

client.println("<a href=\"/?off\" method=\"get\">");
client.println("<button type=submit style=\"width:100px;\">Fechar portão </button>");


if(digitalRead(47)) {
statusLed = "Ligado" ;
} else {
statusLed = "Desligado";
}

client.print("<P>");

client.println("<a href=\"/?o1\" method=\"get\">");
client.println("<button type= submit style= width:100px;\">Abr portão </button>");

client.println("<a href=\"/?of1\" method=\"get\">");
client.println("<button type=submit style=\"width:100px;\">Fe portão </button>");

client.println("</center>");

client.println("</body>");
client.println("</html>");

client.print("<P>");

client.print("Temperatura: ");
client.print(temperature);

sendo que aqui não consegui colocar o alarme para funcionar essa e a minha duvida.

não sei como fazer essa parte.

não sei se conseguir ser claro
obrigado




sim foi eu que postei a minha duvida la

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço