1. project behuizing voor de Arduino + Ethernet shield van amazon.
2. Arduino, in mijn geval de oude Diecimila. U allemaal kennen en liefhebben van de arduino, online over 23 gevonden $
3. Arduino Ethernet -shield ~ 40$
4. GE keuze Alert wireless - controlecentrum
5. GE keuze-Alert draadloze garage deur sensor
6. de kroonsteen
Stap 0: De garage deur monitor om het basisstation te synchroniseren. Haal dan alles uit.
Stap 1:
Het eerste ding om te doen is draai de twee schroeven in de rug en de één onder de deksel van het batterijvak. Dan kunt u de achterkant wrikken uit (wees voorzichtig als het krijgen van de contacten van de batterij out is reallyyyy sorta een pijn.
Stap 2:
Flip-over en vinden de LED voor zone 1 (gelabelde 1!). Vervolgens zet het terug naar de kant van de PCB en vinden van de contactpersonen. Ik gesoldeerd één draad voor waar ik vond de grond was (groen) en een andere rode draad voor de-. Ik vond die die met vallen en opstaan met behulp van mijn arduino.
Opmerking: Solderen er is draden zijn moeilijk, i dunno als het was mijn crappy soldeerbout of wat, maar het was moeilijk om het metaal al op de PCB opwarmen en krijgen mijn draden gesoldeerd aan het op een solide manier. Bent u ondernemend kunt genoeg u soldeer twee draden aan elk van de zone alarm en hebben dit tweet u wanneer zeggen iemand wordt gedetecteerd door hun draadloze bewegingssensor, of de deur sensor enz afgaat...
Stap 3. Ik gebruikte een dremel aan de rand van een aantal van de kunststof op het batterijklepje dus de draden van de PCB in het gebied van de batterij komen kon. Dit is waar ik ook gehecht een (oppervlakkige misschien) bestuur om verbinding te maken met meer draden aan die uiteindelijk leiden tot de schroefaansluiting aangesloten op de arduino. Het idee van de Raad van bestuur was ervoor te zorgen dat er vertraging was in het systeem, zodat de draden niet rukte krijgen uit de delicate solderen op de pennen van de LED op de PCB van de alarm-basisstation.
Stap 4: Het boren van het batterijdeksel op. Dit is de eenvoudige boor ik gebruikt en gemaakt van de gaten, zodat de draden kunnen pop uit het...
Stap 5: Mark gaan in het vak project waarbij de boorgaten, vervolgens aan de andere kant van de kroonsteen soldeer in de terminal van de schroef met de draden die zal goto de arduino/ethernet-controller.
Stap 6: Tot slot zet in de arduino en ethernet controller schild in het vak project en sluit de draden aan op respectievelijk de grond en analoge 0. Sluit vervolgens het omhoog.
Stap 7: schroef de twee draden van de keuze alert basisstation aan de arduino en je bent klaar!
Dus heb ik de code voor de arduino. Het stelt in principe op de Ethernet-controllers, het maakt gebruik van de twitter-bibliotheek (degene die een proxy-service passeert) en stuurt haar tweets op die manier. Een ding moest ik de Ethernet naar een goed intern adres... dat was de enige echte hik was ingesteld. De code is sorta lelijk maar het idee is het luistert naar de analoge poort en als het gaat boven een bepaalde drempel, een staat in de alarmmode wordt ingesteld, en als een bepaalde bedrag otf tijd gaat door het stuurt een twitter met een willekeurige waarde die eraan verbonden zijn (oorzaak twitter houdt niet van tweets met dezelfde tekst dus dit het omhoog verandert. Ik zou met gebruikte een timer-bibliotheek en het maken van een tijdstempel maar dit werd als een kerstcadeau voor iemand gemaakt, dus ik had geen tijd om uit te voeren die). Dus elke minuut of zo het verzendt tweet en altijd wordt gecontroleerd als de deur wordt gedaan zodat het stopt. Ook stuurt na de eerste minuut hij zijn eerste tweet.
#if defined(ARDUINO) & & ARDUINO > 18 / / Arduino 0019 of hoger
#include
#endif
#include
#include alleen nodig in de Arduino 0022 of eerder
#include
byte mac [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte ip [] = {192, 168, 0, 23};
Twitter twitter ("Lees over het instellen van dit");
char msg [] = "Garage deur is OPEN";
char [msgStartup] = "Garage deur monitor is online!";
Boolean mislukt = false;
Boole blinkTime = false;
Boole doorOpen = 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, OUTPUT);
Serial.println ("verbinden...");
sendStartupTweet();
}
VOID sendStartupTweet()
{
Als (twitter.post(msgStartup)) {}
int status = twitter.wait();
Als (status == 200) {}
Serial.println("OK.");
} else {}
Serial.Print ("mislukt: code");
Serial.println(status);
mislukt = true;
}
} else {}
Serial.println ("verbinding mislukt. Opstarten");
mislukt = true;
}
}
VOID sendTweet(int ts)
{
de ts converteren naar een tekenreeks en voegt aan MSG
char [msg2] = msg + ts;
TheMsg koord = msg;
theMsg.concat ("tijd:" + ts);
char msg2[theMsg.length()];
theMsg.toCharArray (msg2, theMsg.length());
char S [50]; Twitter-bericht te definiëren als "S"
randomValue = random(HEX); Produceren van willekeurige waarde
/**********
* SprintF steken"" samen een string(msg) en een variable(randomVariable) in
* een andere tekenreeks, "S".
**********/
sprintf (S, "de garagedeur is open (%i) tweets", randomValue); //
Serial.println (S);
Als (twitter.post(S)) {}
int status = twitter.wait();
Als (status == 200) {}
Serial.println("OK.");
} else {}
Serial.Print ("mislukt: code");
Serial.println(status);
mislukt = true;
}
} else {}
Serial.println ("verbinding mislukt.");
mislukt = true;
}
}
int millisRollover() {}
krijgen van de huidige waarde van de millis() voor hoe lang de microcontroller is uitgevoerd
//
Om te voorkomen dat elke mogelijkheid van ontbrekende de rollover, gebruiken we een Booleaanse knevel die wordt gespiegeld
korting op elk gewenst moment tijdens de eerste helft van de totale millis periode en
Klik vervolgens op in de tweede helft van de totale millis-periode.
Dit zou werken, zelfs als de functie werden alleen uitvoeren voor elke 4,5 uur, hoewel meestal
de functie moet worden aangeroepen zo vaak mogelijk de werkelijke moment van rollover vast te leggen.
De rollover-teller is goed voor meer dan 35 jaar voor runtime. --Rob Faludi http://rob.faludi.com
//
statische int numRollovers = 0; variabele die permanent het aantal rollovers sinds opstarten houdt
statische Boole readyToRoll = false; tracks of wij hebben het gemaakt halverwege om rollover
niet-ondertekende lang = millis(); de tijd is nu
unsigned long halfwayMillis = 17179868; Dit is halverwege de max millis waarde (17179868)
Als (nu > halfwayMillis) {/ / zolang de waarde groter dan halverwege de max is
readyToRoll = true; u bent klaar om te rollen
}
Als (readyToRoll == true & & nu < halfwayMillis) {}
Als we het eerder hebben aangebracht in halverwege
en de huidige waarde van de millis() is nu _less_ dan het halverwege merk
vervolgens hebben we rolde
numRollovers = numRollovers ++; een toe te voegen het aantal het aantal rollovers
readyToRoll = false; We zijn niet langer voorbij halfweg
}
Return numRollovers;
}
void loop
{
int rollovers = millisRollover(); krijg van het aantal rollovers tot nu toe
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 ("verzendende deur TWEET");
sendTweet(ts);
}
resetcounter += 1;
if(resetcounter>100)
{
resetcounter = 0;
if(Val<250)
{
doorOpen = false;
Serial.println ("deur gesloten");
}
}
}
}