Hola buenas tardes a todos hace poco me compré un Arduino Uno porque estoy interesado en aprender a programar con el ya que el tema de programación me interesa bastante aparte de lo versátil que es, pero tengo un problema ya que para fin de curso tengo que preparar un proyecto, el cual es el control domotico de la luz y un sistema de alarma que avise en una pagina web desde la que se controla la luz, cuando la alarma este activa. Hasta el momento lo llevaba todo controlado por lo que la luz funciona perfectamente pero no me muestra la advertencia de alarma en la web cuando suena y si lo hace lo repite muchas veces, se que hay bastantes temas relacionados con la domótica pero he buscado por todo el foro y no he encontrado solución para mi problema. Trabajo con Windows XP y con la libreria que hay para windows php_ser++.dll.
Hay alguien que me pueda hechar una mano por favor?.
El codigo de Arduino es el siguiente:
int bombilla = 4; //Declaramos el pin de la bombilla
int entrada; //Declaramos la entrada para la lectura
int ledPin = 13; //PIN del LED de alarma
//PIN del final de carrera de alarma (tope)
int inPin = 8;
int value = 0; //Valor del final del carrera inicial
int manual = 2; //Establecemos el boton manual de alarma
int contador = 0; //Estabecemos un contador
int activado = 0;void setup() {
//Establecemos conexion con el puerto serie
Serial.begin(9600);
//Inicia la bombilla como salida
pinMode(bombilla, OUTPUT);
pinMode(ledPin, OUTPUT); //Inicia el LED como salida
//Inicia la entrada del final como carrera como entrada
pinMode(inPin, INPUT);
//Inicia la entrada manual de la alarma como entrada
pinMode(manual, INPUT);}
void loop() {
//Comprueba si hay datos disponibles en el serial
if (Serial.available() > 0) {entrada = Serial.read(); //Carga los datos en memoria
if (entrada == '0') { //Si la entrada es 0
digitalWrite(bombilla, HIGH); //Enciende la bombilla
Serial.println("Luz encendida");
}
if (entrada == '1') { //Si la entrada es 1
digitalWrite(bombilla, LOW); //Apaga la bombilla
Serial.println("Luz apagada");
}
}
value = digitalRead(inPin); //Lee el valor de la entrada
contador = digitalRead(manual);
switch (contador) {
case HIGH:value = 0; // Toma valor 0
//Se declara que no suene, y su
//salida correspondiente en la que esta
//conectado el zumbador
noTone(7);
//Enciende o apaga el led de alarma
//segun su estado
digitalWrite(ledPin, value);
break;case LOW:
//Si el pulsador está sin pulsar
if (digitalRead(inPin) == LOW)
{
value = 0; // Toma valor 0
//Se declara que no suene, y su
//salida correspondiente en la que esta
//conectado el zumbador
noTone(7);
activado = 3;}
else { //Si esta pulsado
value = 1; //Toma valor 1
//Declaramos que el zumbador, patilla 7 suene,
//con 150 Hz de frecuencia y 500 milisegundos
//de duracion
tone(7, 150, 500);
activado = 4;
// Serial.println ("Alarma");
// delay(300);}
if (activado == 4)
{
Serial.println ("Alarma");
delay(300);
}
else
{
digitalRead(inPin);
}
//Enciende o apaga el led de alarma segun su estado
digitalWrite(ledPin, value);
delay(100);
}
}
Y este es el de la pagina web programada con php:
<?php ser_open( "COM3", 9600, 8, "None", "1", "None" ); if (isset($_GET['action'])) { if (ser_isopen() == true ) { echo "Puerto abierto \r\n"; if ($_GET['action'] == "bombillaon") { ser_write ("0\r"); $estado = ""; ser_close(); } else if ($_GET['action'] == "bombillaoff") { ser_write ("1\r"); $estado = "
"; ser_close(); } } } else{ $datos=ser_read(); if ($datos == 4) { ser_close(); break; } else { while ($datos == 3) { $datos=ser_read(); if ($datos == 4) { ser_close(); break; } } } } ?> Proyecto Domotica con Arduino
Control domotico de la vivienda
![]()
"> ![]()
<?echo $estado?> "> ![]()
Para cualquier consulta o problema puede contactar Aqui
<?echo $datos?>
Perdon por si el post no esta bien puesto ni colocado en su sitio ya que es mi primer post en esta gran comunidad. Gracias por adelantado y saludos a todos!!