1. proyecto gabinete para el Arduino + Ethernet escudo de amazon.
2. en mi caso el antiguo Diecimila de Arduino. Todos conocen y aman el arduino, encontrado en Internet sobre 23$
3. Arduino Ethernet shield ~ 40$
4. centro de control inalámbrico GE opción alerta
5. sensor de puerta de garaje inalámbrico GE opción-alerta
6. tornillo Terminal
Paso 0: Sincroniza al monitor de puerta de garaje a la estación base. Desenchufe todo entonces.
Paso 1:
La primera cosa a hacer es Destornillar los dos tornillos en la parte posterior y uno debajo de la tapa de la batería. Entonces puede Levante la parte posterior (tenga cuidado de como conseguir los contactos de la batería es reallyyyy poco un dolor.
Paso 2:
Voltee y encontrar el LED de zona 1 (etiquetado 1!). Girar hacia el lado del PCB y encontrar los contactos. Soldado un cable por donde me pareció la tierra (verde) y otro cable rojo para el-. Me pareció que por ensayo y error con mi arduino.
Nota: Hay que suelda los cables son difíciles, no sé si fue mi cutre soldador o qué pero era difícil calentar el metal ya en PCB y obtener mis alambres soldados a él de forma sólida. Si eres emprendedor suficiente puede soldar dos cables a cada una de las alarmas de la zona y tener este tweet cuando dice alguien es detectado por su sensor de movimiento inalámbrico, o sensor de la puerta se sale etc....
Paso 3. Usé una dremel para algunos del plástico en la tapa de la batería por lo que podían salir los cables de lo PCB en el área de la batería. Esto es donde también adjunta un (superficial tal vez) tablero para conectar más cables que llevaría finalmente a los terminales de tornillo conectado al arduino. La idea de la Junta era asegurarse de que había holgura en el sistema, así que los cables no conseguir apretamientos, estiramientos de la soldadura delicada en los pines del LED en la placa de la estación base de alarma.
Paso 4: Perforación de la tapa de la batería. Esto es simple taladro he usado y hecho los agujeros para que los cables podrían reventar fuera de él...
Paso 5: Marca donde el terminal de tornillo debe ir en el cuadro de proyecto y taladrar los agujeros, luego en el otro lado de la soldadura en los bornes con los cables que goto la controladora arduino/ethernet.
Paso 6: Finalmente poner en el escudo de controlador ethernet y arduino en el cuadro de proyecto y conectar los cables a tierra respectivamente y analógica 0. Luego cerrar el cuadro de.
Paso 7: Atornille los dos cables de la estación base alerta de elección para el arduino y listo!
Así que tengo el código para el arduino. Básicamente instala los controladores de Ethernet, utiliza la biblioteca de twitter (uno que pasa a través de un servicio proxy) y envía sus tweets de esa manera. Una cosa que tuve que fue fijado el Ethernet a una buena dirección interna... que era el hipo sólo real. El código es poco feo pero la idea es escucha el puerto analógico si supera cierto umbral, establece un estado que en el modo alarma y si pasa un cierto tiempo de otf envía un twitt con un valor aleatorio que se le atribuye (twitter de causa no como tweets con el mismo texto para esto cambia para arriba. Yo de utiliza una biblioteca de contador de tiempo y hacer un sello de tiempo, pero esto fue hecha como regalo de Navidad para alguien así que no tengo tiempo para poner en práctica). Así que cada minuto o así que envía un tweet y siempre comprueba si la puerta se hace para que se detenga. Envía su primer tweet después del primer minuto.
#if defined(ARDUINO) & & ARDUINO > 18 / / Arduino 0019 o posterior
#include
#endif
#include
#include es sólo necesario en Arduino 0022 o versiones anteriores
#include
mac de bytes [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte ip [] = {192 168 0, 23};
Twitter twitter ("leer sobre cómo establecer esta");
char mensaje [] = "Garage la puerta está abierta";
char msgStartup [] = "monitor de puerta de garaje está en línea!";
booleano no se pudo = false;
Boolean blinkTime = false;
doorOpen boolean = false;
int alertcounter = 0;
int resetcounter = 0;
int diodePin = 0;
int val;
int randomValue;
void setup()
{
Delay(1000);
Ethernet.Begin (mac, ip);
Serial.Begin(9600);
pinMode (13, salida);
Serial.println ("conectando...");
sendStartupTweet();
}
void sendStartupTweet()
{
Si (twitter.post(msgStartup)) {}
int estado = twitter.wait();
Si (status == 200) {}
Serial.println("OK.");
} else {}
Serial.Print ("error: código");
Serial.println(Status);
error = true;
}
} else {}
Serial.println ("fallada la conexión. Puesta en marcha»);
error = true;
}
}
void sendTweet(int ts)
{
convertir ts a una cadena y agregar al MSG
Char [] msg2 = msg + ts;
String theMsg = msg;
theMsg.concat ("hora:" + ts);
char msg2[theMsg.length()];
theMsg.toCharArray (msg2, theMsg.length());
char S [50]; Definir el mensaje de twitter como "S"
randomValue = random(HEX); Producir valor aleatorio
/**********
* SprintF "puntadas" juntos un string(msg) y un variable(randomVariable) en
* otra cadena, "S".
**********/
sprintf (S, "puerta de garaje es abierto (%i) tweets", randomValue); //
Serial.println (S);
Si (twitter.post(S)) {}
int estado = twitter.wait();
Si (status == 200) {}
Serial.println("OK.");
} else {}
Serial.Print ("error: código");
Serial.println(Status);
error = true;
}
} else {}
Serial.println ("fallada la conexión.");
error = true;
}
}
int millisRollover() {}
obtener el valor actual de millis() para cuánto tiempo el microcontrolador ha estado funcionando
//
Para evitar cualquier posibilidad de perder el rollover, utilizamos un booleano de palanca que es movido de un tirón
apagado durante la primera mitad del período total de millis y
luego en durante la segunda mitad del período total de millis.
Esto debería funcionar incluso si la función se ejecute solo cada 4,5 horas, aunque por lo general,
la función debe llamarse tan frecuentemente como sea posible para capturar el momento real de rollover.
El contador de rollover es bueno para más de 35 años de tiempo de ejecución. --Http://rob.faludi.com Rob Faludi
//
Static int numRollovers = 0; variable que mantiene permanentemente el número de puentes desde el inicio del
Static boolean readyToRoll = false; pistas si nos hemos hecho a mitad de camino en rollover
sin firmar largo ahora = millis(); el tiempo ahora
unsigned halfwayMillis largo = 17179868; Esto es hasta la mitad para el valor máximo de millis (17179868)
Si (ahora > halfwayMillis) {/ / mientras el valor es mayor que a mitad de camino al máximo
readyToRoll = true; Usted está listo para rodar
}
Si (readyToRoll == true & & ahora < halfwayMillis) {}
Si previamente hemos hecho hasta la mitad
y el valor actual de millis() ahora es _less_ de la marca a mitad de camino
entonces nosotros hemos rodado sobre
numRollovers = numRollovers ++; agregar uno a la cuenta del número de puentes
readyToRoll = false; ya no somos pasado a mitad de camino
}
volver numRollovers;
}
void loop()
{
rollovers de int = millisRollover(); obtener el número de puentes hasta
Serial.println(rollovers,DEC); //
checkDoor(rollovers);
Delay(100);
}
void checkDoor(int ts)
{
Val = analogRead(diodePin);
if(Val>300)
{
doorOpen = true;
alertcounter = 0;
resetcounter = 0;
}
if(doorOpen==true)
{
alertcounter += 1;
Serial.println(alertcounter);
if(alertcounter>600)
{
alertcounter = 0;
Serial.println ("envío TWEET de puerta");
sendTweet(ts);
}
resetcounter += 1;
if(resetcounter>100)
{
resetcounter = 0;
if(Val<250)
{
doorOpen = false;
Serial.println ("puerta cerrada");
}
}
}
}