Con PHP un poco y (si quieres) algunas jQuery en cualquier página web, usted puede hacer este anillo de la campana cuando se realiza una acción específica.
Esta pila de Arduino es wifi; una vez que se ha configurado, simplemente se puede encender de una fuente de 9v CC. También funciona cuando a través del conector USB usando un cargador USB estándar; Lo he probado con un cargador de Amazon diseñado para el Kindle que funciona bien.
He utilizado:
Un Ardunio Uno de eBay, sobre £18
Un WiFly Shield de Sparkfun, de eBay, sobre £23 (que era barato, son normalmente más que eso). Si usted está comprando uno, tenga en cuenta que necesitará unas pinzas de encabezado en la placa de la soldadura.
A Junta (es decir todo se fija a la lámina de plástico) del proyecto de la brillante Oomlaut
Algunos cables de puente
Una longitud de cable cat5, para posicionar el servo y la campana una buena distancia de la tarjeta de control
Un servo estándar Acoms de eBay (alrededor de £5)
Una fuente de alimentación de 9v de Maplin (£10)
Una pequeña campana de cobre amarillo (de mi inlaws, sin cargo!)
Obviamente esto se puede hacer con un escudo de ethernet o un ethernet activado Arduino; el esquema sería un poco diferente en este caso.
La campana está conectada al servo con un clip; Esto significa que no tenemos que mover el servo del brazo mucho. La flexibilidad del clip de papel hace que la campana para que suene bien. También significa que la campana puede colgar correctamente, que necesita en este caso.
Por el momento, el bosquejo no es perfecto. La pila tiene algunas volver a arrancar a veces; no siempre responde a las solicitudes.
Aquí está el bosquejo. Tenga en cuenta que mi instalación no requiere el ajuste de los datos de dirección IP; Programé mi router para asignar siempre la misma dirección IP por DHCP.
bosquejo de servidor Web #include "WiFly.h" Servo myservo; crear objeto servo para controlar un servo ////////////////////// void setup() {} pinMode (2, salida); PIN seleccionado para control permiten impresión de datos en serie SpiSerial.begin(); activar DHCP nivel de autorización Establecer contraseña red wifi de unirse salir del modo de CMD } void loop() {}
basado en el código de Zoomkat de los foros de Arduino
#include "Servo.h"
#include "SPI.h"
Servidor server(80); Puerto del servidor
ReadString cadena; crear clase readString
myservo.Attach(2); el pin para el control de servo
myservo.Write(0); establecer posición servo inicial si lo desea
Serial.Begin(9600);
Serial.println("Started");
salir del modo de CMD si no lo ha hecho
SpiSerial.println("");
SpiSerial.println("exit");
Serial.println ("modo CMD sale");
Delay(1000);
colocar en el modo CMD
SpiSerial.print("$$$");
Serial.println ("modo en CMD");
Delay(1000);
SpiSerial.println ("set ip dhcp 1");
Serial.println ("Set DHCP");
Delay(1000);
SpiSerial.println ("set w 1");
Serial.println ("autorización Set level");
Delay(1000);
SpiSerial.println ("clave de wlan set [Introduzca su clave WLAN, sin paréntesis]");
Serial.println ("clave WLAN Set");
Delay(1000);
PuertoLocal set
SpiSerial.println ("set i l 80");
Serial.println ("Set port");
Delay(1000);
desactivar * Hola * mensaje predeterminado en conectar
SpiSerial.println ("set comm remoto 0");
Serial.println ("Set comm remoto 0");
Delay(1000);
SpiSerial.println ("join [ingrese el SSID, no soportes]");
Serial.println ("unirse a red");
Delay(2000);
SpiSerial.println("exit");
Serial.println ("salir SpiSerial");
Delay(3000);
Serial.println ("servidor de salida");
Server.Begin();
Crear una conexión de cliente
Cliente cliente = server.available();
Si {} (cliente)
Serial.println ("cliente conectado");
mientras (client.connected()) {}
Si (client.available()) {}
char c = client.read();
leer las peticiones HTTP de char por char
Si (readString.length() < 100) {}
almacenar caracteres en cadena
readString += c;
}
Si ha terminado la petición HTTP
Si (c == '\n') {}
Serial.println ("HTTP request terminado");
Serial.Print ("readString =");
Serial.println(readString); imprimir en el monitor serial para la depuración
ahora encabezado datos salida HTML
Client.println ("HTTP/1.1 200 OK"); Enviar nueva página
Client.println ("tipo de contenido: texto/html");
Client.println();
Client.println("");
Client.println("");
Client.println("");
Client.println("");
Client.println("");
Client.println("OK");
Client.println("");
Client.println("");
Delay(1);
cliente de parada
Client.STOP();
Serial.println ("cliente parado");
pin de control arduino
if(readString.IndexOf("w") > 0) //checks para w
{
Serial.println ("w encontrado");
myservo.Write(40);
Delay(200);
myservo.Write(0);
Delay(1000);
myservo.Write(40);
Delay(200);
myservo.Write(0);
}
if(readString.IndexOf("b") > 0) //checks de b
{
Serial.println ("b encontrado");
myservo.Write(40);
Delay(200);
myservo.Write(0);
}
limpieza cadena para la próxima lectura
readString = "";
Serial.println ("readString autorizado");
} / / fin si solicitud HTTP es terminada
} / / fin si cliente disponible
} / / fin si cliente conectado
} / / fin si cliente
} / / fin de bucle
Estoy usando pin 2 para el control del servo; puede utilizar cualquier pin pero tenga cuidado de no utilizar las patas que se utilizan para otra cosa en la WiFly, Ethernet o cualquier otro protector puede que esté utilizando.
La configuración de prueba conectando el cable USB a su equipo (sin el servo conectado, a menos que estés seguro de costumbre golpe fusible de la USB en tu máquina - a mi me funciono OK pero no todos los ordenadores tienen la capacidad de potencia de un servidor) y el serial monitor para comprobar la pila se conecta a la red inalámbrica y registra las conexiones de cliente.
Si es así, conéctelo a una fuente de alimentación y conectar el servidor.
Puede desencadenar la campana introduciendo la dirección IP en un navegador como este (donde xx.xx.xx.xx es reemplazado por la dirección IP de la pila):
http://XX.XX.XX.XX/?b
(toca el timbre una vez)
o
http://XX.XX.XX.XX/?w
(suena la campana dos veces)
Si escribe la dirección sin nada después de la dirección IP, la pila no sonará la campana.
Para fijar la campana para que suene cuando se accede a páginas específicas en un sitio web, usted necesita algunos conocimientos PHP y jQuery. Esto es lo que hice:
1) reenviado puerto 80 de mi router a la IP privada de la pila de Arduino en mi red interna
2) crea un archivo de php llamado ding.php
$ch=curl_init();
curl_setopt ($ch, CURLOPT_URL,'http: / / [mi dirección de IP WAN] /? w');
curl_setopt($CH,CURLOPT_CONNECTTIMEOUT,5);
ob_start ();
curl_exec ($ch);
ob_end_clean();
curl_close($CH);
? >
3) llama este archivo utilizando jQuery en la página que soy de monitoreo:
$.get("ding.php");
(Usted necesitará agregar jQuery a tu página también).
Haciéndolo de esta manera significa que nadie descubre su dirección IP WAN. No tan importante pero aún así, algunas personas como ellos callar!
Mi configuración puede consultarse en la siguiente URL. Si usted haga clic en él, te suena una pequeña campana de cobre amarillo en mi árbol de Navidad! La página no mostrará nada, pero la campana sonará. Echa un vistazo en el video a ver que pasa cuando lo haces.
http://Ding.net84.net/Ding.php
Video: