- Zastosowane komponenty:
- Łączenie klawiatury 4x4 z Raspberry Pi za pomocą multipleksowania:
- Opis obwodu:
- Objaśnienie robocze:
- Objaśnienie programowania:
Bezpieczeństwo jest głównym problemem w naszym codziennym życiu, a zamki cyfrowe stały się ważną częścią tych systemów zabezpieczeń. Dostępnych jest wiele rodzajów technologii do zabezpieczenia naszego miejsca, takich jak systemy bezpieczeństwa oparte na PIR, system bezpieczeństwa oparty na RFID, laserowe alarmy bezpieczeństwa, systemy bio-matrycowe itp.
Wcześniej zbudowaliśmy zamek cyfrowy z hasłem przy użyciu Arduino i przy użyciu 8051, tutaj zamierzamy zbudować ten zamek cyfrowy przy użyciu Raspberry Pi z hasłem zdefiniowanym przez użytkownika. Po ustawieniu hasła użytkownik może uzyskać dostęp do drzwi tylko za pomocą prawidłowego hasła.
Jeśli nie jesteś zaznajomiony z Raspberry Pi, stworzyliśmy serię samouczków do nauki Raspberry Pi, z połączeniem ze wszystkimi podstawowymi komponentami i kilkoma prostymi projektami na początek, sprawdź.
Zastosowane komponenty:
- Raspberry Pi (z uruchomioną kartą SD)
- Moduł klawiatury
- Brzęczyk
- Wyświetlacz LCD 16x2
- Pula 10k
- Pakiet rezystorów 10k (pull-up)
- DOPROWADZIŁO
- Rezystor 1k
- Deska do chleba
- Wózek CD / DVD jako bramka
- Zasilanie 5 woltów
- Sterownik silnika L293D
- Akumulator 12 V.
- Przewody łączące
Łączenie klawiatury 4x4 z Raspberry Pi za pomocą multipleksowania:
W tym obwodzie wykorzystaliśmy technikę multipleksowania do połączenia klawiatury w celu wprowadzenia hasła w systemie. Tutaj używamy multipleksowej klawiatury 4x4 z 16 klawiszami. Zwykle, jeśli chcemy użyć 16 kluczy, potrzebujemy 16 pinów do połączenia z Arduino, ale w technice multipleksowania potrzebujemy tylko 8 pinów do połączenia 16 kluczy. Dzięki temu jest to inteligentny sposób na połączenie modułu klawiatury. Dowiedz się więcej o technice multipleksowania i jej działaniu w tym zamku cyfrowym przy użyciu 8051.
Technika multipleksowania to bardzo skuteczny sposób na zmniejszenie liczby pinów używanych z mikrokontrolerem do podawania danych wejściowych, hasła lub liczb. Zasadniczo ta technika jest używana na dwa sposoby - jeden to skanowanie wierszy, a drugi to skanowanie kolumn. Jeśli używamy biblioteki klawiatury (#include
Ale w tym projekcie zaimplementowaliśmy krótki sposób kodowania dla tego samego manipulatora, bez korzystania z biblioteki klawiatur. Zobacz to w sekcji programowania poniżej.
Opis obwodu:
Obwód tego cyfrowego zamka drzwiowego Raspberry Pi jest bardzo prosty i zawiera Raspberry Pi 3, moduł klawiatury, buzzer, wózek DVD / CD jako bramkę i wyświetlacz LCD. Tutaj Raspberry Pi kontroluje cały proces, taki jak pobieranie hasła z modułu klawiatury, porównywanie haseł, sterowanie buzzerem, otwieranie / zamykanie bramy i wysyłanie stanu na wyświetlacz LCD. Do wpisania hasła służy klawiatura. Buzzer służy do wskazań i jest sterowany przez wbudowany tranzystor NPN. Wyświetlacz LCD służy do wyświetlania statusu lub komunikatów na nim.
Kołki kolumnowe modułu klawiatury są bezpośrednio podłączone do pinów 22, 23, 24, 25 GPIO, a piny Row są połączone z 21, 14, 13, 12 pinów wringPi Raspberry Pi. Wyświetlacz LCD 16x2 jest połączony z Raspberry Pi w trybie 4-bitowym. LCD kontrola pin RS, RW i En są bezpośrednio podłączone do GPIO pin 11, GND i 10. Dane szpilki D4-D7 są podłączone do pinów GPIO 6, 15, 4 i 1. Jeden brzęczyk jest podłączony na pin GPIO 8. I sterownikiem silnika L293D jest podłączony do pinów 28 i 29 GPIO Raspberry Pi. Akumulatora 12 V jest połączony z kołkiem 8 L293D w odniesieniu do masy.
Objaśnienie robocze:
Działanie tego projektu jest proste. Gdy użytkownik uruchamia kod w Raspberry Pi, na wyświetlaczu LCD pojawia się komunikat powitalny, a po nim „A- Wprowadź hasło”, aw drugiej linii B- Zmień klucz ”. Teraz użytkownik może dokonać wyboru naciskając A i B na klawiaturze.
Teraz, jeśli użytkownik chce otworzyć bramę, musi nacisnąć „A” na klawiaturze, a następnie system poprosi o hasło. Hasło domyślne to „1234”. Teraz użytkownik musi wprowadzić hasło i po tym, jak system sprawdzi hasło, czy jest ważne, czy nie:
1. Jeśli użytkownik wprowadzi prawidłowe hasło, system otworzy bramę.
2. Jeśli użytkownik wprowadzi nieprawidłowe hasło, system wyśle polecenie do brzęczyka, aby wydać sygnał dźwiękowy i wyświetli komunikat „Odmowa dostępu” na wyświetlaczu LCD.
Teraz przypuśćmy, że użytkownik chce zmienić hasło, a następnie musi nacisnąć „B” na klawiaturze, a następnie użytkownik zostanie poproszony o „Aktualne hasło” lub „Aktualny klucz dostępu”. Teraz należy wprowadzić aktualne hasło, następnie system sprawdzić jego poprawność i wykonać jedno z zadanych zadań.
1. Jeśli użytkownik wprowadzi prawidłowe hasło, system zapyta o „Nowe hasło”, a teraz użytkownik może zmienić hasło, wprowadzając nowe hasło.
2. Jeśli użytkownik wprowadzi nieprawidłowe hasło, system uruchomi brzęczyk i wyświetli komunikat „Wrong Password:: na wyświetlaczu LCD.
Teraz użytkownik musi powtórzyć cały proces, aby zmienić hasło.
Zasadniczo otwieranie i zamykanie bramy to nic innego jak obrót silnika zgodnie z ruchem wskazówek zegara i przeciwnie do ruchu wskazówek zegara, aby otworzyć i zamknąć drzwi. W przypadku małego projektu możesz po prostu dodać silnik prądu stałego, aby otworzyć i zamknąć drzwi. Możemy również użyć serwomechanizmu lub silnika krokowego, ale musimy odpowiednio zmienić kod.
Ponadto zamiast wózka na płyty CD można zastosować odpowiedni elektroniczny zamek do drzwi (łatwo dostępny online). Posiada elektromagnes, który utrzymuje drzwi zamknięte, gdy przez zamek nie przepływa prąd (obwód otwarty), a gdy przepłynie przez niego jakiś prąd, zamek zostaje odblokowany i drzwi można otworzyć. Kod zostanie odpowiednio zmieniony, sprawdź również ten wspólny przegląd projektu: Zamek do drzwi Arduino RFID
Objaśnienie programowania:
Programowanie jest bardzo podobne do Arduino. Funkcja Arduino używa klas, ale tutaj zrobiliśmy ten kod, używając programowania c, bez klas. Zainstalowaliśmy również bibliotekę wirePi dla GPIO.
Teraz przede wszystkim musimy załączyć wymagane biblioteki, a następnie zdefiniować piny dla LCD, brzęczyka, LED i silnika.
#zawierać
Następnie należy zdefiniować piny dla wiersza i kolumn klawiatury oraz zdefiniować tablicę do przechowywania hasła i numerów klawiatur.
karnet char; char pass1 = {'1', '2', '3', '4'}; int n = 0; char row = {21, 14, 13, 12}; char col = {22, 23, 24, 25}; liczba znaków = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', ' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
Po nim napisaliśmy kilka funkcji do sterowania LCD:
Funkcja void lcdcmd służy do wysyłania poleceń do LCD, a funkcja void write służy do wysyłania danych do LCD.
Funkcja void print służy do wysyłania napisu do LCD.
void print (char * str) {while (* str) {write (* str); str ++; }}
Funkcja void setCursor służy do ustawiania pozycji kursora na wyświetlaczu LCD.
void setCursor (int x, int y) {int zestaw = 0; if (y == 0) set = 128 + x; if (y == 1) set = 192 + x; lcdcmd (zestaw); }
Funkcja void clear () służy do czyszczenia wyświetlacza LCD, a void brzęczyk () do sygnalizowania dźwiękiem.
Funkcje void gate_open (), void gate_stop () i void gate_close () służą do sterowania bramą (wózek CD)
void gate_open () {digitalWrite (m1, LOW); digitalWrite (m2, WYSOKI); opóźnienie (2000); } void gate_stop () {digitalWrite (m1, LOW); digitalWrite (m2, LOW); opóźnienie (2000); } void gate_close () {digitalWrite (m1, WYSOKI); digitalWrite (m2, LOW); opóźnienie (2000); }
Podana funkcja służy do inicjalizacji LCD w trybie 4-bitowym.
void begin (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
Podana funkcja void keypad () służy do łączenia modułu klawiatury z Raspberry Pi metodą „krótką”.
void keypad () {int i, j; int x = 0, k = 0; opóźnienie (2000); while (k <4) {for (i = 0; i <4; i ++) {digitalWrite (kol, LOW); for (j = 0; j <4; j ++) {if (digitalRead (row) == 0) {setCursor (x, 1);…………………
Sprawdź wszystkie funkcje w pełnym kodzie poniżej, kod jest łatwy i nie wymaga objaśnień.