Keyless Entry / Arduino (3 / 4 stap)

Stap 3: Code


ik had wat hulp van maewert voor de Helper licht.
De Bypass schakelaar het moeilijkst voor mij. Het was een samenwerking tussen sath02 en mijn zelf. Ik ben altijd dankbaar zijn voor deze jongens voor er kennis.

Als u niet over de bibliotheken die nodig zijn voor de schets beschikt zijn ze hier voor het downloaden.

Referentie

Arduino op een Breadboard

Toetsenblok codering

Toetsenblok Tutorial

#include < Password.h >
#include < Keypad.h >
#include < Servo.h > //tells servo-bibliotheek gebruiken
int pos = 5;    variabele op te slaan van de servo positie
int knop = A0;  De knop zal worden op Pin 7
Servo myservo; verklaart servo
#define vertraging 20 / / vertraging per lus in ms

Wachtwoord wachtwoord = Password ("4444"); wachtwoord voor het ontgrendelen van de deur, kan worden gewijzigd

Const byte rijen = 4; Vier rijen
Const byte COLS = 3; kolommen
Definiëren van de Keymap
char toetsen [ROWS] [COLS] = {}
{'1','2','3',},
{'4','5','6',},
{'7','8','9',},
{'*','0','#',},
};

byte rowPins [ROWS] = {5, 4, 3, 2} ;// Connect toetsenbord, ROW0, ROW1, ROW2 en ROW3 op deze Arduino pinnen.
byte colPins [COLS] = {8, 7, 6,}; / / Connect toetsenbord COL0, COL1 en COL2 op deze Arduino pinnen.

Maken van het toetsenbord
Toetsenbord toetsenbord toetsenbord = (makeKeymap(keys), rowPins, colPins, rijen, COLS);

unsigned long offtime;
Boole helper_light_is_on = false; Helper licht af
variabelen zal veranderen:
int buttonState = 0;  variabele voor het lezen van de drukknop status
int lastButtonState = 0;

VOID handle_button()
{
Lees de stand van de drukknop waarde:
buttonState = digitalRead(button);
Controleer als de drukknop ingedrukt is.
Als (buttonState! = lastButtonState) {}
Lock release
myservo.write(100);
vertraging(20);
digitalWrite (10, hoge);
delay(1000); deze vertraging kan worden veranderd op passende waarde
digitalWrite (10, laag);
myservo.write(160); / / verplaatsen naar een positie vergrendelen na 5 seconden
vertraging(20);
}
lastButtonState = buttonState;
}
VOID Setup
{
Serial.begin(9600);
Serial.write(254);
Serial.write(0x01);
delay(200);
pinMode (10, OUTPUT);  Helper licht
pinMode (11, OUTPUT);  groen licht
pinMode (12, OUTPUT);  rood licht
pinMode (button, INPUT);
myservo.attach(9); Servo op digitale pin 9 //servo
keypad.addEventListener(keypadEvent); toevoegen van een gebeurtenislistener voor dit toetsenbord
pinMode (pos, OUTPUT);
pinMode (button, INPUT);
delay(200);
}
void loop
{
handle_button();
keypad.getKey();
myservo.write(5);
process_helper_light();
}

sommige speciale evenementen verzorgen
VOID keypadEvent(KeypadEvent eKey)
{
schakelaar (keypad.getState())
{
Case PRESSED:
een toets is gedrukt zo licht licht van de helper
helper_light_is_on = true;
digitalWrite(10,HIGH);
offtime = millis() + 10000;  instellen van de offtime gedurende 30 seconden in de toekomst

Serial.Print ("Voer:");
Serial.println(eKey);
delay(10);
Serial.write(254);
schakelaar (eKey)
{
geval ' *':
checkPassword();
delay(1);
breken;
Case '#':
password.reset();
delay(1);
breken;
standaard:
password.Append(eKey);
delay(1);
}
}
}

VOID checkPassword()
{
Als (password.evaluate()) //if wachtwoord klopt ontgrendelen van de deur
{
Serial.println ("geaccepteerd");
Serial.write(254);
delay(10);
Code toevoegen om te draaien als het werkt
myservo.write(90); 160deg
digitalWrite (11, hoge); //turn op groene Led
delay(3000); wacht 5 seconden
digitalWrite (11, laag); / / uitzetten groene Led
}
anders
{
Serial.println ('geweigerd'); als wachtwoorden verkeerde deur vergrendeld houden
Serial.write(254);
delay(10);
code toevoegen om te draaien als het niet werkte
myservo.write(5);
digitalWrite (12, hoge); RedLed inschakelen
delay(3000); wacht 5 seconden
digitalWrite (12, laag); //turn uit de rode Led
}
{
Als (digitalRead(button) == laag)
myservo.write(90);
voor (pos = 0; pos < 90; pos += 90) / / gaat van 0 graden tot 90 graden
{/ / in stappen van graad
Serial.println ("geopend");
myservo.write(POS);
myservo.write(90); 160deg
delay(80);
myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

}
Als (digitalRead(button) == HIGH)
anders
voor (pos = 90; pos > = 90; pos-= 90) / / gaat van 90 graden naar 0 graden
myservo.write(90);
{
Serial.println ("Stay gesloten");
myservo.write(POS);               servo naar positie in de variabele 'pos' vertellen
delay(50);
myservo.write(5); 160deg
myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen
}
}
}

Deze routine uitgeschakeld aan het licht wanneer de timer afloopt
VOID process_helper_light(void)
{
Als (helper_light_is_on)
{
Als (millis() > = offtime)
{
digitalWrite(10,LOW);  uitschakelen van het licht van de helper
helper_light_is_on = false;
}
}
}

Gerelateerde Artikelen

DoorMe: Smartphone gecontroleerd Keyless Entry voor slaapzalen

DoorMe: Smartphone gecontroleerd Keyless Entry voor slaapzalen

Dit project is voor jou als...A) u hebt ooit per ongeluk vergrendeld uw sleutels in uw dorm kamer of appartement, veel tot frustratie en/of uw persoonlijke trots en/of kamergenoot slotenmaker.B) zoekt een goedkope keyless entry systeem.C) uw dorm/app
Nintendo Keyless Entry System

Nintendo Keyless Entry System

een Klassikaal Nintendo-controller gebruiken om te vergrendelen en ontgrendelen van uw deur! De uitvoer van de Controller wordt gelezen door een arduino en het ziet er voor een bepaalde combinatie van knoppen, de combinatie is eenmaal een signaal wil
Hoe te installeren A Keyless Entry Elektronisch Deadbolt

Hoe te installeren A Keyless Entry Elektronisch Deadbolt

nodig zijn ter vervanging van uw oude deadbolt? Volg Milaan Rosan van Build.com als hij neemt u mee door een stapsgewijs proces voor het installeren van een elektronisch deadbolt.
Appartementengebouw keyless entry

Appartementengebouw keyless entry

een RF ontvanger instellen om de deurcontacten van uw appartement gebouw uit een keyfob trigger.Ik haat thuiskomen in de sneeuw, regen, en onhandige voor sleutels en balanceren van grocerys, dozen, ect en proberen te trekken van de deur open en houd
Dorm Keyless Entry

Dorm Keyless Entry

Het fundamentele probleem achter dit project was dat toetsen zijn iets heel gemakkelijk om te vergeten of verliezen, en zij de enige weg naar mijn slaapzaal zijn. Dit is vooral een pijn bij het verlaten van de kamer voor een korte tijd, zoals mail co
Keyless Entry Redwood City kan verbeteren de veiligheid

Keyless Entry Redwood City kan verbeteren de veiligheid

ter verbetering van de voorwaarden van veiligheid vandaag in Redwood City, technologie zeker grote progressie heeft gemaakt. Er zijn deuren vandaag die zijn ontworpen voor sleutelloze Redwood City. Dit betekent dat een dergelijke deur worden benaderd
HOW TO INSTALL KEYLESS + CONTACTLOZE VERMELDING IN DODGE RAM | KEETEC CZ 100 SMART REMOTE | DRAAD CODES voor pick-up

HOW TO INSTALL KEYLESS + CONTACTLOZE VERMELDING IN DODGE RAM | KEETEC CZ 100 SMART REMOTE | DRAAD CODES voor pick-up

Hoi iedereen dit is geRAMicc85. Bekijk de video om te volg de instructies.Dit is mijn 96 Dodge Ram 1500 en vandaag zal ik het installeren van een nieuwe externe keyless entry systeem. En ik zal deze contactloze entry systeem installeren. Het is van h
HackerBoxes 0000: DC Circuits, Software Radio, RFID, infrarood

HackerBoxes 0000: DC Circuits, Software Radio, RFID, infrarood

Dit instructable deelt enkele van wat kan worden gedaan met behulp van HackerBoxes 0000, dat de eerste editie van HackerBoxes is. HackerBoxes is de maandelijkse abonnement vak dienst voor electronica hobbyisten, makers en hackers. Wij hopen dat abonn
Met behulp van Docker op de Raspberry Pi

Met behulp van Docker op de Raspberry Pi

Onze afkomstig introduceerde onlangs een keyless entry systeem met behulp van RFID FOBs die wordt gecontroleerd door een Raspberry Pi. Samenstellen van de hardware was een ongecompliceerd proces maar de beheersing van de vergunning die goede document
Arduino Automated Garage deur System

Arduino Automated Garage deur System

onze TEJ klasse kreeg de uitdaging om iets te bouwen dat is ofwel origineel of en verbetering aan iets dat reeds bestaat en moet een of andere manier implementeren "Arduino"Dit Instructable kan voor het maken van een garagedeur uitgerust met een
Monteren van een Arduino gebaseerd rook / hitte Alarm

Monteren van een Arduino gebaseerd rook / hitte Alarm

Zoals je uit deze blog entry zien kunt ik ontwikkelde de basis voor dit project twee jaar geleden als een alarm / uitschakeling schakelaar voor de RepRap 3D Printer kit die ik had net samengesteld... en dat had gerookt!Het eerste ProjectIk heb sindsd
GOduino III - de breadboard-vriendelijke Arduino gebaseerde robot controller

GOduino III - de breadboard-vriendelijke Arduino gebaseerde robot controller

UPDATES16 nov 2012 gekenmerkt op DangerousPrototypes.com http://goo.gl/N4DIC3 oktober 2012: heb ik een PCB-adapter om te helpen positie IR & ultrasone sensoren 90 graden naar breadboard ter ondersteuning van GOduino III robot projecten ontworpen1 sep
DIY TV LCD-scherm met Arduino en Smart Remote

DIY TV LCD-scherm met Arduino en Smart Remote

In de volgende volgende stappen, u maakt een DIY "TV" met code voor een smart remote afstandsbediening,, en eigenlijk video's afspelen en de slimme afstandsbediening zelfs mogelijk verbinding te maken met de werkelijke moederbord.Materialen:Foli
Maak een zelfbalancerende Robot met Arduino UNO

Maak een zelfbalancerende Robot met Arduino UNO

Self balancing Robot is zeer interessant. Veel vrienden om ons heen wilden maken een, maar ze encounted alot van chanllenges met inbegrip van het ontbreken van de gemakkelijk-aan-de vergadering van structuren, de geschikte elektronische schakelingen