Hola, he buscado informacion de como debo monitorear las entradas del arduino mediante una pagina web y solo consegui lo que he obtenido a traves de una tabla, arrojandome valores de 0 y 1, a ver si es posible que me indique ON/OFF en vez de esos valores?
Y lo otro es como podria controlar el apagado del buzzer. Tengo una serie de sensores y un contactor magnetico que cuando se active, encienda el buzzer, lo que quiero es apagarlo mediante un boton a traves de la pagina web. Lo he intentando, y se cuelga la pagina web al presionar el boton.
Tengo seis sensores de los cuales al ser activados hace que el buzzer suene de manera distinta.
Y el boton modo noche me gustaria que pudiera hacer lo mismo que la linea de codigo del condicional de si boton ==1 y sensor luz < 800. Pero tampoco. Alguna idea? Por favor
int alarma = 11; // Definir el pin digital del Arduino para la Alarma
int infrarrojo = 12; // Definir el pin digital del Arduino para el sensor Infrarrojo
int valor_inf = 0; // define una variable para ingresar el estado
int boton1 = 4; // Declaracion el pin digital del Arduino del boton1
int valor_boton1 = 0; // Define una variable para ingresar el estado del valor del boton1
int boton2 = 2; // Declaracion el pin digital del Arduino del boton2
int valor_boton2 = 0;
int sensor_luz; // Declaracion del sensor de luz
int led=10;
int sensorflama; // Declaracion del Sensor de flama
int sensorsonido = 26; // Definir el pin digital del Arduino para el sensor de sonido
int valor_sonido = 0; // define una variable para ingresar el estado
int sensorvib = 8; // Definir el pin digital del Arduino para el sensor de vibracion
int valor_vib = 0; // define una variable para ingresar el estado
int sensormag = 6 ; // Definir el pin digital del Arduino para el sensor magnetico
int valor_mag ; // define una variable para ingresar el estado
int niveldeagua; // Declaracion del Sensor de nivel de agua
int bandera1=0;
int bandera2=0;
int bandera3=0;
int bandera4=0;
int bandera5=0;
float sinVal;
int toneVal;
float sinVal1;
int toneVal1;
float sinVal2;
int toneVal2;
float sinVal3;
int toneVal3;
float sinVal4;
int toneVal4;
float sinVal5;
int toneVal5;
int bandera=0;
char* statusAlarma = "OFF";
#include <EtherCard.h>
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 }; // ethernet mac address - must be unique on your network
static byte myip[] = {192,168,1,200};
byte Ethernet::buffer[5000]; // tcp/ip send and receive buffer
BufferFiller bfill;
static void headPage(){
bfill.emit_p(PSTR(
"HTTP/1.0 200 OK\r\n"
"Content-Type: text/html\r\n"
"Pragma: no-cache\r\n"
"\r\n"
));
}
static word Login(){
bfill = ether.tcpOffset();
headPage();
bfill.emit_p(PSTR(
"<html>"
"<head><title>"
"Desarrollo de un sistema domótico de gestión y monitoreo de seguridad basado en la placa Arduino"
"</title></head>"
"<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">"
"<div style= 'margin:50px;'>"
"<body>"
"<h3 align=\"center\">Desarrollo de un sistema domótico de gestión y monitoreo de seguridad basado en la placa Arduino.</h3>"
"<h3 align=\"right\">Integrantes:</h3>"
"<h3 align=\"right\">Ligielena Malpica.</h3>"
"<body bgcolor=\"#FFFFF\">"
"<h3 align=\"center\"> Ingresa su código de validación, el mismo es sumistrado por su proveedor.</h3><br>"
"<script >"
"function usrpas(){"
"if(document.form1.num.value==\"1234\") {window.location=\"A\"}"
"else {alert(\"Error\")} }"
"document.oncontextmenu=new Function(\"return false\");"
"</script>"
"<form name=\"form1\" align=\"center\"> <input type=\"text\" name=\"num\"> Código de Validación <br><br> <input type=\"button\" value=\"Ir\" onclick=\"usrpas()\"> </form>"
"</body>"
"</html>"));
return bfill.position();
}
static word Sensores(){
bfill = ether.tcpOffset();
headPage();
bfill.emit_p(PSTR(
"<html>"
"<head> <title>"
"Desarrollo de un sistema domótico de gestión y monitoreo de seguridad basado en la placa Arduino"
"</title></head>"
"<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">"
"<meta http-equiv=\"refresh\" content=\"5\" >"
"<style>"
"#table, th, td{ border: 1px solid black; border-collapse: collapse; border-color: #000080; font-size:120%; }"
"#Alarma { text-align:center; } "
"#Modo_Noche { text-align:center; } "
"#Cerrar_Sesion { text-align:center; }"
"</style>"
"<div style= 'margin:50px;'>"
"<body>"
"<body bgcolor=\"#FFFFF\">"
"<h2 align=\"center\" > Estado de los sensores: </h2>"
"<table style=\"margin: 0 auto;\">"
"<tr>"
"<th scope=\"col\">Nombre del sensor</th>"
"<th scope=\"col\">Estado</th>"
"</tr>"
"<tr>"
"<td>Infrarrojo</td>"
"<td align=\"center\" >$D</td>"
"</tr>"
"<tr>"
"<td>Sonido</td>"
"<td align=\"center\" >$D</td>"
"</tr>"
"<tr>"
"<td>Fuego</td>"
"<td align=\"center\" >$D</td>"
"</tr>"
"<tr>"
"<td>Contactores</td>"
"<td align=\"center\" >$D</td>"
"</tr>"
"<tr>"
"<td>Vibración</td>"
"<td align=\"center\" >$D</td>"
"</tr>"
"<tr>"
"<td>Nivel de agua</td>"
"<td align=\"center\" >$D</td>"
"</tr>"
"</table> <br>"
"<div id=\"Modo_Noche\">"
"<input type=\"button\" value=\"Activar Modo Noche\" onclick=\"usrpas()\" >"
"</div>"
"<div id=\"Alarma\"> <br>"
"Estado Alarma = $S <br>"
"<a href='./?data1=0'><input type='button' value='Apagar Alarma'></a>"
"</div>"
"<div id=\"Cerrar_Sesion\"> <br>"
"<form action=/ method=get>"
"<input type=submit value=Cerrar usuario>"
"</form>"
"</div> <br>"
"</body>"
"</html>"),
digitalRead(12),
digitalRead(26),
analogRead(2),
digitalRead(6),
digitalRead(8),
analogRead(7),
statusAlarma
);
return bfill.position();
}
void setup() {
Serial.begin(57600);
pinMode(alarma, OUTPUT);
pinMode(led, OUTPUT);
pinMode(infrarrojo, INPUT);
pinMode(sensorvib,INPUT);
pinMode(sensorsonido,INPUT);
pinMode(sensormag, INPUT);
pinMode(boton1, INPUT);
pinMode(boton2, INPUT);
digitalWrite(led, LOW);
if (ether.begin(sizeof Ethernet::buffer, mymac, 53) == 0)
Serial.println( "El controlador Ethernet ha fallado en inicializar");
else
Serial.println("Ethernet controller ok!");
ether.staticSetup(myip);
}
void tiposalarma() {
int x;
for ( x=0; x<180; x++){
sinVal = (sin(x*(3.1412/180))); // convertir grados a radianes
toneVal = 2000 + (int(sinVal*1000)); // convertir frecuencia del valor.
tone(alarma,toneVal);
delay(2);
}
x=0;
}
void tiposalarma1() {
int x;
for ( x=0; x<180; x++){
sinVal1 = (sin(x*(3.1412/180))); // convertir grados a radianes
toneVal1 = 2000 + (int(sinVal1*1000)); // convertir frecuencia del valor.
tone(alarma,toneVal1);
delay(10);
}
x=0;
}
void tiposalarma2() {
int x;
for ( x=0; x<180; x++){
sinVal2 = (sin(x*(3.1412/180))); // convertir grados a radianes
toneVal2 = 2000 + (int(sinVal2*1000)); // convertir frecuencia del valor.
tone(alarma,toneVal2);
delay(20);
}
x=0;
}
void tiposalarma3() {
int x;
for ( x=0; x<180; x++){
sinVal3= (sin(x*(3.1412/180))); // convertir grados a radianes
toneVal3 = 2000 + (int(sinVal3*1000)); // convertir frecuencia del valor.
tone(alarma,toneVal3);
delay(30);
}
x=0;
}
void tiposalarma4() {
int x;
for ( x=0; x<180; x++){
sinVal4 = (sin(x*(3.1412/180))); // convertir grados a radianes
toneVal4 = 2000 + (int(sinVal4*1000)); // convertir frecuencia del valor.
tone(alarma,toneVal4);
delay(40);
}
x=0;
}
void tiposalarma5() {
int x;
for ( x=0; x<180; x++){
sinVal5 = (sin(x*(3.1412/180))); // convertir grados a radianes
toneVal5 = 2000 + (int(sinVal5*1000)); // convertir frecuencia del valor.
tone(alarma,toneVal5);
delay(50);
}
x=0;
}
void apagaralarma(){
noTone(alarma);
}
void loop()
{
word pos = ether.packetLoop(ether.packetReceive());
if(pos){
for(int c=pos;Ethernet::buffer[c];c++)
Serial.print((char)Ethernet::buffer[c]);
Serial.println("");
word n;
switch(Ethernet::buffer[pos+5]){
case 'A': n=Sensores();break;
default: n=Login();
}
ether.httpServerReply(n);
if (strstr((char *)Ethernet::buffer + pos, "GET /?data1=0") != 0) {
Serial.println("Led1 OFF");
digitalWrite(led, LOW);
statusAlarma = "OFF";
}
}
valor_inf = digitalRead(infrarrojo);
valor_vib= digitalRead(sensorvib);
valor_sonido=digitalRead(sensorsonido);
valor_mag = digitalRead(sensormag) ;
valor_boton1 = digitalRead(boton1);
valor_boton2 = digitalRead(boton2);
sensor_luz=analogRead(A1);
niveldeagua = analogRead(A2);
sensorflama=analogRead(A7);
if (valor_boton1 == 1 || sensor_luz < 800){
if (valor_inf == 0){
bandera = 1;
while (bandera == 1){
tiposalarma();
digitalWrite(led, HIGH);
valor_boton2 = digitalRead(boton2);
if (valor_boton2==1){
bandera = 0;
digitalWrite(led, LOW);
apagaralarma();
}
}
}
if (valor_mag == 1){
bandera1 = 1;
while (bandera1 == 1){
tiposalarma1();
digitalWrite(led, HIGH);
valor_boton2 = digitalRead(boton2);
if (valor_boton2==1){
bandera1 = 0;
digitalWrite(led, LOW);
apagaralarma();
}
}
}
if (valor_sonido == 0){
bandera2 = 1;
while (bandera2 == 1){
tiposalarma2();
digitalWrite(led, HIGH);
valor_boton2 = digitalRead(boton2);
if (valor_boton2==1){
bandera2 = 0;
digitalWrite(led, LOW);
apagaralarma();
}
}
}
}
if (sensorflama > 100 && sensorflama < 300){
bandera3 = 1;
while (bandera3 == 1){
tiposalarma3();
digitalWrite(led, HIGH);
valor_boton2 = digitalRead(boton2);
if (valor_boton2==1){
bandera3 = 0;
digitalWrite(led, LOW);
apagaralarma();
}
}
}
if (valor_vib == 0){
bandera4 = 1;
while (bandera4 == 1){
tiposalarma5();
digitalWrite(led, HIGH);
valor_boton2 = digitalRead(boton2);
if (valor_boton2==1){
bandera4 = 0;
digitalWrite(led, LOW);
apagaralarma();
}
}
}
if (niveldeagua > 500){
bandera5 = 1;
while (bandera5 == 1){
tiposalarma4();
valor_boton2 = digitalRead(boton2);
if (valor_boton2==1){
bandera5 = 0;
digitalWrite(led, HIGH);
apagaralarma();
}
}
}
}