Arduino Lock Mechanism: 5 kroków

Arduino Lock Mechanism: 5 kroków

Spisu treści:

Anonim

Jest to prosty projekt Arduino, który emuluje system bezpieczeństwa w domu.

Jest w pełni symulowany na Proteusie, ale nie należy spodziewać się dużej różnicy w rzeczywistym środowisku.

Będziesz potrzebował:

  1. odmieniec
  2. Atmel Studio
  3. Visual Micro dla Atmel Studio
  4. Arduino IDE

Możesz po prostu użyć Arduino IDE z Proteus, ale wolę cały zestaw, aby skorzystać z:

  1. Plik.hex jest przechowywany w folderze projektu
  2. Atmel Studio oferuje atrakcyjne funkcje autouzupełniania

Zasadniczo, gdy projekt się ładuje, zobaczysz takie ustawienie

Kieszonkowe dzieci:

Krok 1: Konfiguracja, kod

#zawierać

#include #include #include

int greenLed = 22; int redLed = 23; int servoPin = 24; // Servo int piezoPin = 25; char * ourCode = "1234"; int currentPosition = 0; Servo myservo; int pos = 0;

const wiersze bajtów = 4; const bajt cols = 3;

char keys rows cols = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9' }, {'*', '0', '#'}}; bajt rowPins wiersze = {13,10,9,8}; bajt colPins cols = {7,6,1}; Keypad keypad = Keypad (makeKeymap (keys), rowPins, colPins, rows, cols); LiquidCrystal Lcd (12,11,5,4,3,2);

void setup () {Lcd.begin (16,2); myservo.attach (24); displayCodeEntryScreen (); pinMode (piezoPin, OUTPUT); pinMode (servoPin, OUTPUT); pinMode (redLed, OUTPUT); pinMode (greenLed, OUTPUT); digitalWrite (redLed, LOW); digitalWrite (greenLed, LOW); }

void loop () {int l; klucz char = keypad.getKey (); Lcd.setCursor (0,0); Lcd.print („WPISZ HASŁO”); if (int (key)! = 0) {Lcd.setCursor (4,1); for (l = 0; l <= currentPosition; ++ l) {Lcd.print ("*");} if (klucz == naszKod currentPosition) {++ currentPosition; if (currentPosition == 4) {unlockDoor (); currentPosition = 0; }} else {invalidCode (); currentPosition = 0; }}} void invalidCode () {digitalWrite (redLed, HIGH); digitalWrite (servoPin, LOW); digitalWrite (piezoPin, HIGH); czysty ekran(); Lcd.setCursor (0,0); Lcd.print („ACCESS DENIED!”); Lcd.setCursor (0,1); Lcd.print („INVALID CODE”); opóźnienie (5000); digitalWrite (redLed, LOW); digitalWrite (piezoPin, LOW);

displayCodeEntryScreen (); }

void turnHandle () {for (pos = 0; pos <= 180; pos + = 1) // przechodzi od 0 stopni do 180 stopni {// w krokach co 1 stopień myservo.write (pos); // powiedz serwomechanizmowi, aby poszedł do pozycji w zmiennej 'pos' delay (15); // czeka 15 ms, aby serwomechanizm osiągnął pozycję} dla (pos = 180; pos> = 0; pos- = 1) // przechodzi od 180 stopni do 0 stopni {myservo.write (pos); // powiedz serwomechanizmowi, aby poszedł do pozycji w zmiennej 'pos' delay (15); // czeka 15 ms, aż serwo osiągnie pozycję}}

void unlockDoor () {digitalWrite (greenLed, HIGH); czysty ekran(); Lcd.setCursor (0,0); Lcd.print („ACCESS GRANTED”); Lcd.setCursor (0,1); Lcd.print („ZAPRASZAMY !!”); digitalWrite (servoPin, HIGH); turnHandle (); opóźnienie (500); digitalWrite (greenLed, LOW); digitalWrite (servoPin, LOW); displayCodeEntryScreen (); } void displayCodeEntryScreen () {clearScreen (); Lcd.setCursor (0,0); Lcd.print („HELLO AND”); Lcd.setCursor (0,1); Lcd.print („ZAPRASZAMY!”); opóźnienie (3000); czysty ekran(); } void clearScreen () {Lcd.setCursor (0,0); Lcd.print (""); Lcd.setCursor (0,1); Lcd.print (""); }

Krok 2: Ekran powitalny

Po udanej kompilacji plik powinien być przechowywany w następującym katalogu plików, np.: C: Użytkownicy Nazwa użytkownika Dokumenty Atmel Studio 6.2 Folder projektu ProjectName Debugowanie

Ekran powitalny jest jak pokazano …

Krok 3: Żądanie hasła

Wprowadź hasło

W naszym przypadku 1234

Krok 4: Przyznanie dostępu

Po pomyślnym wejściu

Krok 5: Zamykanie

Po tym, jak silnik poruszy się, aby zasymulować odblokowanie drzwi, ponownie się zablokuje i wyświetli ekran główny