- Lista elementów
- Schemat obwodu zamka drzwi klawiatury Arduino
- Kod Arduino do zamka drzwi z cyfrową klawiaturą
- Montaż i testowanie zamka klawiatury Arduino
Często musimy zabezpieczyć pomieszczenie w naszym domu lub biurze (być może tajne laboratorium dextera), aby nikt nie mógł wejść do pokoju bez naszej zgody i zapewnić ochronę przed kradzieżą lub utratą naszych ważnych akcesoriów i aktywów. Obecnie istnieje tak wiele rodzajów systemów bezpieczeństwa, ale za kulisami, wszystkie one wykorzystują do uwierzytelnienia odcisk palca, skaner siatkówki, skaner tęczówki, identyfikator twarzy, skaner języka, czytnik RFID, hasło, pin, wzory itp. Wyłączone wszystkie rozwiązania niskobudżetową jest użycie hasła lub systemu opartego na kodach PIN. Dlatego w tym projekcie zbudowałem zamek do drzwi z klawiaturą Arduino, który można zamontować do dowolnych istniejących drzwi, aby zabezpieczyć je cyfrowym hasłem. Wcześniej zbudowaliśmy również inne ciekawe zamki do drzwi, które są wymienione poniżej.
- Zamek do drzwi Arduino RFID
- Zamek elektromagnetyczny drzwi Arduino
- Cyfrowy zamek szyfrowy Raspberry Pi
- 555 Elektroniczny zamek z zegarem sterującym
Przed utworzeniem naszego projektu blokady drzwi z hasłem, najpierw musimy zebrać wymagane komponenty, a następnie przejść dalej i postępować zgodnie z procesem tworzenia krok po kroku.
Lista elementów
- Płytka Arduino Uno / Pro / Mini lub Custom z mikrokontrolerem Atmega 328p
- LCD 16 x 2 (wyświetlacz ciekłokrystaliczny)
- Klawiatura matrycowa 4 x 3 lub 4 x 4 dla Arduino
- Siłownik
- Szafka na drzwi wydrukowana w 3D / niestandardowa szafka na drzwi
- Dodatkowe komponenty do zasilania ładowarki mobilnej 1 Amp 5 Volt
- Plastikowe skrzynki 4 '' / 6 '', przewody połączeniowe, nakrętki, śruby, plastikowa obudowa itp.
Schemat obwodu zamka drzwi klawiatury Arduino
Pełny schemat obwodu dla naszego projektu zamka drzwi z cyfrową klawiaturą opartym na Arduino pokazano poniżej.
Przede wszystkim zaczynamy od mózgu tego projektu, jakim jest płytka Arduino UNO. Płytka Arduino jest podłączona do wyświetlacza LCD i serwomotoru. Serwomotor służy do popychania (blokowania) lub ciągnięcia (odblokowywania) zatrzasku drzwi. Do wyświetlenia komunikatu przez Arduino wymagany jest wyświetlacz LCD 16 x 2, 16 x 2 oznacza, że ma 16 kolumn i 2 rzędy. Jeśli nie masz doświadczenia z modułami wyświetlacza LCD 16x2, możesz sprawdzić ten samouczek dotyczący interfejsu Arduino LCD, aby dowiedzieć się więcej na ten temat.
Tutaj używam serwomotoru 5 V Towerpro SG90 do wykonania naszej niestandardowej szafki drzwiowej. Jest to serwomotor poziomu podstawowego i działa dobrze z Arduino bez żadnego obwodu sterującego lub modułu zewnętrznego. Ponadto koszt tego silnika serwo jest znacznie niższy, więc możesz go łatwo kupić. Możesz również sprawdzić ten samouczek Arduino Servo Motor Control, aby dowiedzieć się więcej o silniku serwo i jego działaniu. Podłącz serwomotor z pinem D9 Arduino Digital i zasilaczem 5 V. Ten silnik serwo ma łącznie 3 linie wejściowe (GND, + 5V i LINIA SYGNAŁOWA).
W tym projekcie użyłem klawiatury matrycowej 4 x 4 (ale część klawiatury 4 x 4 nie jest dostępna w fritzingu do tworzenia tej graficznej reprezentacji), ale nie martw się, ponieważ klawiatura matrycowa 4 x 3 działa również dobrze z moim kodowaniem. Potrzebujemy klawiatury do wprowadzenia hasła i ręcznego zablokowania naszej niestandardowej szafki na drzwi. Składa się z 16 klawiszy (przełącznik programowy) 4 klawisze w rzędach (R1, R2, R3, R4) i 4 klawisze w kolumnach (C1, C2, C3, C4), gdy naciśnięty klawisz, ustanawia połączenie między odpowiednimi rzędami i kolumny. Poniższa tabela pokazuje, jak połączyć Arduino z klawiaturą.
Klawiatura | Arduino |
Pin 1 (rząd 1) | Cyfrowy pin 1 |
Pin 2 (rząd 2) | Cyfrowy pin 2 |
Pin 3 (rząd 3) | Cyfrowy pin 3 |
Pin 4 (rząd 4) | Cyfrowy pin 4 |
Pin 5 (kolumny 5) | Cyfrowy pin 5 |
Pin 6 (kolumny 6) | Cyfrowy pin 6 |
Pin 7 (kolumny 7) | Cyfrowy pin 7 |
Kod Arduino do zamka drzwi z cyfrową klawiaturą
Pełny kod zamka drzwi Arduino można znaleźć na dole tej strony. Możesz bezpośrednio przesłać kod, ale zalecamy przeczytanie poniższych akapitów, aby zrozumieć, jak działa kod. Ponadto ważne jest, aby upewnić się, że dodano następującą bibliotekę klawiatur do Arduino IDE, aby pomyślnie skompilować kod. Aby to zrobić, otwórz poniższy link i pobierz plik ZIP. Następnie na swoim Arduino IDE przejdź do Sketch -> Include Library -> Add.ZIP Library i wyszukaj plik, który właśnie pobrałeś.
- Biblioteka klawiatur Arduino
Po wstawieniu wszystkich plików nagłówka i biblioteki, przypisz wszystkie styki do wyświetlacza LCD i zdefiniuj długość hasła oraz ustaw początkową pozycję serwomechanizmu na 0. Następnie weź typ danych „char”, aby zadeklarować liczbę, która może go przechowywać, w tym znak pusty.
//#zawierać
Za pomocą tego fragmentu kodu (char Master = "123456";) - pod Char Master deklaruję hasło zamka drzwi, następnie przypisuję liczbę wierszy i kolumn w klawiaturze, a także deklaruję mapy klawiszy i łączę się z wierszami i kolumny. W ustawieniu void setup, zainicjalizuj pin D9 sygnału serwa, stan serwa zamknięty i wydrukuj nazwę projektu / urządzenia / firmy z 3-sekundowym opóźnieniem na LCD czasu uruchomienia urządzenia.
void setup () {myservo.attach (9); ServoClose (); lcd.begin (16, 2); lcd.print ("Arduino Door"); lcd.setCursor (0, 1); lcd.print ("- Obejrzyj projekt--"); opóźnienie (3000); lcd.clear (); }
Pod funkcją pętli znajduje się prosty warunek if-else. Zgodnie ze statusem (jest automatycznie zablokowany), wydrukuj „Drzwi są zamknięte” z 3 sekundowym opóźnieniem i serwomechanizm obróci się do pozycji zamknięcia, dane drzwi liczą się jako 1, w przeciwnym razie zamek drzwi pozostaje otwarty, a liczba danych 0, serwo otwarte obraca się do pozycji 0 stopni do 180 stopni, a zamknięcie zmienia się od 180 do 0. Funkcje serwomechanizmu otwierania i zamykania są pokazane poniżej.
void ServoOpen () {for (pos = 180; pos> = 0; pos - = 5) {// przechodzi od 0 stopni do 180 stopni // w krokach co 1 stopień myservo.write (pos); // powiedz serwo, aby przeszedł do pozycji w zmiennej 'pos' delay (15); // czeka 15 ms, aż serwo osiągnie pozycję}} void ServoClose () {for (pos = 0; pos <= 180; pos + = 5) {// przechodzi od 180 stopni do 0 stopni myservo.write (pos); // powiedz serwo, aby przeszedł do pozycji w zmiennej 'pos' delay (15); // czeka 15ms, aż serwo osiągnie pozycję}}
Zapisz pozycję serwomechanizmu z 15-sekundowym opóźnieniem, aby osiągnąć pozycję serwa. W ramach funkcji void open, wydrukuj na wyświetlaczu LCD „Enter Password”, a następnie warunek określa, że wprowadzone hasło powinno być takie samo z niestandardowym kluczem, w ramach tego treści dane są liczone i zapisywane w tablicy danych, zwiększane i wprowadzane hasło drukowane na wyświetlaczu LCD, jeśli długość danych (liczba kluczy) i hasło wejściowe są zgodne z Data Master (tam, gdzie obecne są predefiniowane klucze). Następnie jako czynność wyczyszczenie wyświetlacza LCD, serwonapęd, wydruk na wyświetlaczu LCD „Drzwiczki otwarte” i resetowanie licznika danych do 0.
Jeśli klawisz wejściowy nie pasuje do Data Master, jako czynność na wyświetlaczu LCD wyraźny wydruk na wyświetlaczu LCD „Wrong Password” powiadamia z 1-sekundowym opóźnieniem i pozostaje w pozycji zablokowanej z licznikiem danych ustawionym na 1 i kontynuuj ten proces w pętli.
if (data_count == Password_Lenght - 1) // jeśli indeks tablicy jest równy liczbie oczekiwanych znaków, porównaj dane z wzorcem {if (! strcmp (Data, Master)) // równe (strcmp (Data, Master) == 0) {lcd.clear (); ServoOpen (); lcd.print ("Drzwi są otwarte"); drzwi = 0; } else {lcd.clear (); lcd.print ("Złe hasło"); opóźnienie (1000); drzwi = 1; } Wyczyść dane(); }
Montaż i testowanie zamka klawiatury Arduino
Teraz umieść wszystko w 4-calowym / 6-calowym plastikowym pudełku i zasil go mobilną ładowarką, ładnie wyrównaj wszystko za pomocą obudowy. Idealnie mógłbym użyć drukowania 3D do złożenia mojego zamka, ale po zaprojektowaniu moich plików stwierdziłem, że drukowanie 3D jest bardzo kosztowne, więc najpierw naprawiłem serwo, a następnie podłączyłem normalną szafkę suwakową do mojego serwa za pomocą metalowej płytki i zakryłem się z włóknem szklanym, chociaż działa dobrze, jest mniej bezpieczny.
Jeśli chcesz mieć większe bezpieczeństwo, musisz wydrukować model zamka do drzwi 3D, który działa wewnętrznie z tym serwomechanizmem. Możesz pobrać wymagane pliki STL za pomocą poniższego łącza i wydrukować je w 3D, jeśli masz dostęp do drukarki 3D.
Pobierz pliki STL do druku 3D
Pliki projektowe są również pokazane na poniższym obrazku.
Na początku projektu, w momencie pierwszego uruchomienia, musimy podać nazwę projektu (możesz również wyświetlić nazwę firmy), aby wyglądał elegancko i ekskluzywnie jak urządzenie komercyjne (jak widać na zdjęcie poniżej).
Z 3-sekundowym opóźnieniem szybko zamknij drzwi i bezpośrednio sprawdź stan zamka drzwi na wyświetlaczu, jak pokazano na poniższym obrazku.
Gdy ręcznie zaryglujesz drzwi, naciskając klawisz „#”, najpierw pokazuje się komunikat Drzwi są zamknięte na 1 sekundę, a następnie wyświetla komunikat Wprowadź hasło. Z drugiej strony, gdy drzwi zostaną odblokowane przez wprowadzenie prawidłowego hasła, pokazuje się, że drzwi są otwarte.
Jeśli drzwi pozostają w stanie odblokowanym, wyświetla się - Drzwi są otwarte, dopóki ręcznie zaryglujesz drzwi zgodnie z kodem. Podałem kod i możesz dostosować ustawienia, zmieniając parametr wyświetlania kodu zgodnie z wymaganiami. Możesz również sprawdzić całą pracę z wideo, do którego link znajduje się na dole tej strony.