Campana de Arduino independiente habilitado para la web

inspirado por este post, quería crear una campana de Arduino powered que era totalmente independiente.

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
basado en el código de Zoomkat de los foros de Arduino

#include "WiFly.h"
#include "Servo.h"
#include "SPI.h"

Servo myservo;  crear objeto servo para controlar un servo
Servidor server(80); Puerto del servidor
ReadString cadena; crear clase readString

//////////////////////

void setup() {}

pinMode (2, salida); PIN seleccionado para control
myservo.Attach(2);  el pin para el control de servo
myservo.Write(0);   establecer posición servo inicial si lo desea

permiten impresión de datos en serie
Serial.Begin(9600);
Serial.println("Started");

SpiSerial.begin();

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);

activar DHCP
SpiSerial.println ("set ip dhcp 1");
Serial.println ("Set DHCP");
Delay(1000);

nivel de autorización
SpiSerial.println ("set w 1");
Serial.println ("autorización Set level");
Delay(1000);

Establecer contraseña
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);

red wifi de unirse
SpiSerial.println ("join [ingrese el SSID, no soportes]");
Serial.println ("unirse a red");
Delay(2000);

salir del modo de CMD
SpiSerial.println("exit");
Serial.println ("salir SpiSerial");
Delay(3000);

Serial.println ("servidor de salida");
Server.Begin();

}

void loop() {}
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:

Artículos Relacionados

OpenSprinkler: Controlador de la válvula de aspersión habilitado para la Web Open-source

OpenSprinkler: Controlador de la válvula de aspersión habilitado para la Web Open-source

ResumenMe enorgullece presentarles a OpenSprinkler: un controlador de válvula sprinkler código abierto, programable, habilitado para la web. Puede ser usada para programar y trabajar con las válvulas de riego estándar de 24 VCA comúnmente en hogares
PIGate, abridor de puerta de garaje habilitado para la web

PIGate, abridor de puerta de garaje habilitado para la web

Construcción de un automatismo remoto usando un montaje y un Pi de frambuesaIntroducciónHay algo muy satisfactorio acerca de hacer clic en una interfaz web o golpear un botón en una aplicación y ver algún evento físico ocurren. Es un puente entre la
Monitor de ritmo cardiaco Polar habilitado para la Web

Monitor de ritmo cardiaco Polar habilitado para la Web

Utilizar un sensor de ritmo cardíaco Polar, un tablero barato hardware conectado vía USB y un poco de software para poner su ritmo cardiaco en el Web. Los datos vivos es servido desde su computadora y accesible a través del relé Yaler (revelación: so
Artillería de patio habilitado para la WEB

Artillería de patio habilitado para la WEB

Hola todo el mundo! este instructable es realmente la culminación de muchos proyectos, sin embargo se han todos utilizado juntos hacer algo genial! Básicamente se trata de un cañón que se puede controlar por Internet a través de un script de aplicaci
Toque de queda del animal doméstico: Un Arduino controlado puerta para mascotas

Toque de queda del animal doméstico: Un Arduino controlado puerta para mascotas

El problema: quiere restringir el tiempo cuando su mascota pueda salir al exterior. Esto podría ser porque el barrio no es seguro para su gato o perro pequeño por la noche (Merodeadores coyotes viene a la mente). Pero desea que su mascota para poder
Control de Arduino con python basado en web API (No php)

Control de Arduino con python basado en web API (No php)

En esta guía le mostrará cómo controlar el dispositivo arduino de una página web! Luego, te voy a mostrar cómo controlar tu arduino desde tu dispositivo móvil e incluso crear un API basado en web para controlar tu arduino desde su página web con otro
Arboleda de Arduino WiFi habilitado efecto invernadero

Arboleda de Arduino WiFi habilitado efecto invernadero

Lo esencial:GroveSensor de temperatura/humedad de Grove - alta precisiónSensor de luz analógico GroveGrove - EncoderGrove - Sensor UVGrove - humedadGrove - RGB 16 x 2 pantallaGrove - 20CM de Cable x3Grove - 50CM de Cable x2Grove - protector del Senso
Generador icono: crear iconos en formato ICO o favicons para tu web

Generador icono: crear iconos en formato ICO o favicons para tu web

es muy fácil de utilizar nuestro software Generador de icono para crear iconos favicon.ico para tu web. Todo lo que necesitas para convertir BMP, PNG o JPG a ICO en línea es unos sencillos pasos:Seleccione la imagen en su computadora que desea conver
Arduino intervalómetro para Nikon D40

Arduino intervalómetro para Nikon D40

Hola desde ItaliaConstruí un intervalómetro basados en Arduino para mi Nikon D40 porque no tiene ninguna conexión directa mediante cable y no comercialmente intervalómetro en ahora hay excepción a la montada en un apretón de la batería, pero tiene un
Soporte de Facebook Chat para sitios Web

Soporte de Facebook Chat para sitios Web

Crear su propio apoyo chat para tu Web, blog o aplicación web, poniendo en su sitio web a su Página de facebook. Revisa cómo implementé este chat de soporte de facebook en mi sitio web.visita http://www.guessnaija.com/323G9905CEB67CEB578/+/+...Copiar
De Arduino y perfboard para PCB con independiente MCU

De Arduino y perfboard para PCB con independiente MCU

Este Instructable es un sucesor directo de éste. Al final de esta acumulación, mi proyecto de plato giratorio es casi completa (por fin).El objetivo es desarrollar un buen aspecto y trabajar PCB con SMD electrónica con un trabajo ATtiny85 + software!
Las poluciones nocturnas: Mi Arduino Internet habilitado sueño generador

Las poluciones nocturnas: Mi Arduino Internet habilitado sueño generador

todos tenemos que soñar más, así que he creado este Arduino Powered "generador ideal" para ayudar a plantar las semillas para algunos locura pensar grande.  Cuando te acercas el generador de un sensor ultrasónico de Maxbotix activa luces y músic
Obtener datos de Arduino a una página web

Obtener datos de Arduino a una página web

Ser nuevo en Arduino me estaba un poco abrumado por las diferentes formas de hacer las cosas. Así que esto es lo que se me ocurrió!Estoy usando un clon de Arduino UNO R3 pero las conexiones creo que son los mismos para la mayoría de Arduino o pueden
SCADA creación SVG para servidor Web en ESP8266

SCADA creación SVG para servidor Web en ESP8266

Este tutorial se divide en 2 en el que se explica cómo diseñar una mini SCADA o representación gráfica de un proceso en este caso un tanque que muestra que fue creado el nivel variable de 0 a 100%.El servidor web se ubicará en el módulo ESP8266, que