Garage dörren fingeravtryck låsa (2 / 4 steg)
Steg 2: Kodning och blinkande
Jag använde Arduino IDE att skriva och kompilera den bifogade uppförandekoden för två MCU - garagefinger.ino för ATMega328p i Kontrollpanelen och tiny_switch.ino för ATTiny85 inne i garaget. NokiaLCD.cpp och NokiaLCD.h är barebones bibliotek för LCD som jag satt ihop från exempel på webbplatsen för Arduino - de bör läggas i mappen "bibliotek" för din Arduino IDE, varhelst som bor (på Windows är det vanligtvis % HOMEPATH%\Documents\Arduino\libraries).
Du måste också få Arduino bibliotek för FPS. Observera att FPS biblioteken länkat på Sparkfuns webbplats fungerar inte - de är för den dyra modellen (GT - 511C 3) och inte denna cheapo version. Arbetar bibliotek för GT-511C1R kan hittas på github.
Om du tror att en duktig hackare kan läsa detta och löda ledningarna kommer ur ditt garage på något med en seriell anslutning, kommer du vill ersätta alla förekomster av "secretstring" i varje fil till ditt eget lösenord - du kanske vill göra det längre om du är riktigt paranoid. Du bör också ändra strängen buf i tiny_switch.ino så att den har samma längd som ditt lösenord. Den variabla overrideCode definieras på toppen av garagefinger.ino innehåller också en 8-bitars representation av sekvensen av upp/ner knapptryckningar som kan användas för att öppna garageporten och ladda in nya fingeravtryck i sensorn utan skanning en känd fingeravtryck. Detta är användbart första gången du använder enheten, eftersom skannerns minne kommer att vara tom. En av menyerna har en möjlighet att ändra sekvensen omställning, varefter den nya sekvensen kommer att lagras i EEPROM och förblir även om enheten är avstängd. Kanske du vill ändra denna initiala värde också, ifall du tänka smart, patientens hackare som väntar på att stjäla alla coola grejer du har i ditt garage genom att ange standarden åsidosätta koden innan du har en chans att ändra den.
Det finns flera sätt att kompilera koden på MCU. Om du har en Arduino, du kan helt enkelt kompilera koden direkt på det, sedan pop ut ATMega328p och använda det i detta projekt- men det brukar fungera för ATTiny. Du kan använda Arduino som ISP metod som beskrivs i NaughtySlayer18's instructable programmering av ATTiny. Om du, liksom jag, har en Raspberry Pi, kan du använda det för att programmera din AVRs genom att hämta Kevin Cuzner bygga för avrdude för Raspberry Pi och följande hans detaljerade instruktioner. Du kommer att behöva sätta den kompilerade filer garagefinger.hex och tiny_switch.hex på din Pi, som Arduino normalt döljer från användaren. På Windows, titta i den senaste build * katalogen i %HOMEPATH%\AppData\Temp (Tänk Arduino verkar ta bort denna katalog vid utloggning).