Internet aktiverar en HKC Hem larm (4 / 5 steg)
Steg 4: Arduino kod
Koden är komplexa - det var en stor ansträngning, och flera tricks behövs att pressa all denna kod (knappsatsen emulator, HTML-webserver, HTML-sidor, e-postklient, Websocket Webserver och DES-kryptering och Base64 bibliotek) alla i den lilla Arduino UNO 32K flash och ram utrymme.
All kod finns här:
https://github.com/OzmoOzmo/CastleHKCArduinoRKP
Jag kommer att uppdatera projektet kod varje stund - så vara säker på att dela sig i projektet så att du får meddelanden när det finns en uppdatering.
Bara ladda ner alla filer (viktigt: använda knappen Hämta zip i stället för en fil i taget).
Att sammanställa:
Placera dem i samma mapp - och öppna filen .ino i Arduino IDE.
Det finns en konfigurationsfil i projektet config.h - detta är där du ställa in din IP-adress, din e-postadress och andra alternativ. Det är väl kommenterade med alla alternativ att välja mellan.
Kompilera och ladda upp till Arduino. Du kommer behöver koppla Arduino helt från panelen larm programmera den-som om något anslutna till Arduino RX och TX (stift 0 & 1) kan det störa den programmering framstegen.
Också bäst att inte 5V strömförsörjningen ansluten till Arduino och USB ansluten till en dator på samma gång.
Utvecklare - anpassa programvaran
Det finns en mjukvaran följetong ut för felsökning - du kan ansluta detta via en TTL till USB att visa loggar från arduino. Flaggan för att aktivera debug-läge är avstängd i koden som anges som standard. Jag hittade visuella Micro att vara en mycket bättre utvecklingsmiljö än Arduino IDE.
Ett oscilloskop & digital signal analysatorn var avgörande för avkodning protokollen som används.
För nyfiken - ingenjören hur jag motsatt protokollet
-Jag har anslutit två knappsatser
-Jag mätt överföringshastigheten med ett oscilloskop. Jag kunde se det var överraskande 9 lite och ovanliga baudhastighet som var utmanande att få arbeta på Arduino (som Arduino biblioteken inte stöder endast 8 bitar). Extra bit användes att signalera början på ett nytt meddelande.
- och med hjälp av lämplig spänning utjämning motstånd hade en Arduino lyssna på trafiken på ena sladden databussen och skicka till pc.
-Varje knappsats placerade jag en annan resistor på data linjen, så jag kunde identifiera när alarmet, keypad1 eller keypad2 var med linjen genom att övervaka spänningsnivån samt läsa meddelandet.
-Enligt de operativa varje funktion, kunde jag se den relevanta meddelandepaket knappsats och larm skickas; Jag kunde se ett kommandobyte för olika funktioner; Visa text, ljus led, ljud Summer etc. och visningstexten skickas som oformaterad text, alla med en kontrollsumma byte.
- och jag dubbla funktionen i koden.
Koden till registren en ny knappsats var svårast.