- Kullanılan Bileşenler:
- 4x4 Keypad'i Multiplexing kullanarak Raspberry Pi ile bağlama:
- Devre Tanımı:
- Çalışma Açıklaması:
- Programlama Açıklaması:
Güvenlik, günlük hayatımızda önemli bir sorundur ve dijital kilitler bu güvenlik sistemlerinin önemli bir parçası haline gelmiştir. Yerimizi güvenceye almak için PIR Tabanlı güvenlik sistemleri, RFID tabanlı Güvenlik sistemi, Lazer güvenlik alarmları, biyo-matris sistemleri vb. Gibi birçok tür teknoloji mevcuttur.
Daha önce Arduino kullanarak ve 8051 kullanarak Şifreli Dijital Kilit oluşturduk, burada bu Dijital Kilidi Raspberry Pi kullanarak Kullanıcı Tanımlı Şifre ile oluşturacağız. Şifre belirlendikten sonra, kullanıcı kapıya ancak doğru şifre ile erişebilir.
Raspberry Pi'ye aşina değilseniz, Raspberry Pi'yi öğrenmek için bir dizi eğitim hazırladık, tüm temel bileşenlerle arayüz oluşturarak ve başlamak için bazı basit projeler, kontrol edin.
Kullanılan Bileşenler:
- Raspberry Pi (booted SD kart ile)
- Tuş Takımı Modülü
- Buzzer
- 16x2 LCD
- 10k pot
- 10k Direnç Paketi (Çekme)
- LED
- 1k Direnç
- Ekmek tahtası
- Kapı olarak CD / DVD arabası
- Güç 5 volt
- Motor sürücüsü L293D
- 12 Volt Akü
- Bağlantı telleri
4x4 Keypad'i Multiplexing kullanarak Raspberry Pi ile bağlama:
Bu devrede, sisteme şifreyi girmek için tuş takımını arayüzlemek için Çoklama Tekniğini kullandık. Burada 16 tuşlu 4x4 multipleks tuş takımı kullanıyoruz. Normalde 16 anahtar kullanmak istiyorsak, Arduino'ya bağlantı için 16 pime ihtiyacımız var, ancak çoğullama tekniğinde 16 tuşa arayüz oluşturmak için sadece 8 pime ihtiyacımız var. Böylece bir tuş takımı modülüne arayüz oluşturmanın akıllı bir yolu. Çoklama tekniği ve 8051 kullanan bu Dijital Kilitte çalışması hakkında daha fazla bilgi edinin.
Çoklama tekniği, giriş veya şifre veya sayılar sağlamak için mikrodenetleyici ile kullanılan pin sayısını azaltmanın çok etkili bir yoludur. Temelde bu teknik iki şekilde kullanılır - biri satır taraması, diğeri sütun taramasıdır. Tuş takımı kitaplığı kullanırsak (#include
Ama burada bu projede, tuş takımı kitaplığını kullanmadan aynı tuş takımı için kısa bir kodlama yöntemi uyguladık. Lütfen aşağıdaki programlama bölümünde buna bakın.
Devre Tanımı:
Bu Raspberry Pi Dijital Kapı Kilidinin devresi çok basittir ve Raspberry Pi 3, tuş takımı modülü, zil, kapı olarak DVD / CD arabası ve LCD içerir. Raspberry Pi burada şifreli tuş takımı modülü alma, şifreleri karşılaştırma, sesli uyarıcı kullanma, kapıyı açma / kapama ve durumu LCD ekrana gönderme gibi tüm süreci kontrol eder. Tuş takımı şifre girmek için kullanılır. Buzzer, göstergeler için kullanılır ve dahili NPN transistör tarafından sürülür. LCD, üzerindeki durum veya mesajları görüntülemek için kullanılır.
Keypad modülünün Kolon pinleri doğrudan GPIO pin 22, 23, 24, 25'e bağlanır ve Row pinleri Raspberry Pi'nin wringPi pinlerinin 21, 14, 13, 12'sine bağlanır. Bir 16x2 LCD 4-bit modda ahududu Pi ile bağlantılıdır. LCD'nin kontrol pini RS, RW ve En doğrudan GPIO pini 11, GND ve 10'a bağlıdır. Veri pimleri D4-D7 GPIO pimleri 6, 15, 4 ve 1'e bağlanır. GPIO pini 8'e bir zil bağlanır. Ve Motor Sürücüsü L293D, Raspberry Pi'nin 28. ve 29. GPIO pinlerine bağlanır. Bir 12 voltluk batarya toprağa göre L293D pim 8 bağlanmıştır.
Çalışma Açıklaması:
Bu projenin çalışması basittir. Kullanıcı kodu Raspberry Pi'de çalıştırdığında, LCD bazı hoş geldiniz mesajı gösterir ve ardından “A-Giriş Şifresi” ve ikinci satırda B- Şifre Değiştir ”görüntülenir. Artık kullanıcı, tuş takımında A ve B'ye basarak seçimini yapabilir.
Şimdi, kullanıcı kapıyı açmak isterse, tuş takımında 'A' tuşuna basması gerekir ve ardından sistem Şifre isteyecektir. Varsayılan Parola “1234” dür. Şimdi kullanıcının şifreyi girmesi gerekiyor ve bu sistem şifrenin geçerli olup olmadığını kontrol ettikten sonra:
1. Kullanıcı doğru şifreyi girerse, sistem kapıyı açacaktır.
2. Kullanıcı yanlış şifre girerse, sistem sesli uyarıcıya bip sesi için komut gönderir ve LCD'de “Erişim Reddedildi” mesajını gösterir.
Şimdi, kullanıcının parolayı değiştirmek istediğini ve ardından tuş takımında 'B'ye basması gerektiğini ve ardından kullanıcıdan “Mevcut Parola” veya “Mevcut Parola” sorulacağını varsayalım. Şimdi kullanıcının mevcut şifreyi girmesi, ardından sistemin doğruluğunu kontrol etmesi ve verilen görevlerden birini gerçekleştirmesi gerekir.
1. Kullanıcı doğru şifreyi girerse, sistem "Yeni Şifre" ister ve artık kullanıcı yeni şifre girerek şifreyi değiştirebilir.
2. Kullanıcı yanlış şifre girerse, sistem sesli uyarıyı çalıştıracak ve LCD'de "Yanlış Şifre:" mesajını gösterecektir.
Artık kullanıcının parolayı değiştirmek için tüm işlemi tekrar etmesi gerekiyor.
Temel olarak, Kapıyı açmak ve kapatmak, kapıyı açmak ve kapatmak için bir Motoru saat yönünde ve saat yönünün tersine döndürmekten başka bir şey değildir. Küçük bir proje için, kapıyı açıp kapatmak için basitçe bir DC motor ekleyebilirsiniz. Servo veya step motor da kullanabiliriz, ancak Kodu buna göre değiştirmemiz gerekiyor.
Ayrıca CD Arabası yerine uygun bir Elektronik Kapı Kilidi (çevrimiçi olarak kolayca bulunabilir) kullanabilirsiniz. Kilitten akım geçmediğinde (açık devre) Kapıyı kilitli tutan Elektro mıknatısa sahiptir ve içinden bir miktar akım geçtiğinde kilit açılır ve kapı açılabilir. Kod buna göre değiştirilecek, ayrıca bu paylaşılan proje incelemesini de kontrol edin: Arduino RFID Kapı Kilidi
Programlama Açıklaması:
Programlama, Arduino'ya çok benzer. Arduino işlevi sınıfları kullanır, ancak burada bu kodu c programlamasını kullanarak sınıflar olmadan yaptık. Ayrıca GPIO'lar için bir wiringPi kitaplığı kurduk.
Şimdi her şeyden önce gerekli kitaplıkları eklememiz ve ardından LCD, zil, LED ve Motor için pinler tanımlamamız gerekiyor.
#Dahil etmek
Daha sonra tuş takımının satır ve sütunları için pinler tanımlayın ve şifre ve tuş takımı numaralarını depolamak için dizi tanımlayın.
karakter geçişi; karakter geçiş1 = {'1', '2', '3', '4'}; int n = 0; karakter satırı = {21, 14, 13, 12}; char col = {22, 23, 24, 25}; karakter numarası = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', ' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
Bundan sonra, LCD'yi sürmek için bazı işlevler yazdık:
İşlev geçersiz lcdcmd LCD ve komutu göndermek için kullanılır boşluk yazma LCD veri göndermek için kullanılır fonksiyonu.
LCD'ye string göndermek için function void print kullanılır.
void print (char * str) {while (* str) {write (* str); str ++; }}
Function void setCursor , LCD'de imleç konumunu ayarlamak için kullanılır.
void setCursor (int x, int y) {int set = 0; eğer (y == 0) set = 128 + x; eğer (y == 1) set = 192 + x; lcdcmd (ayarlı); }
Fonksiyon void clear () , LCD'yi temizlemek için kullanılır ve void buzzer () , zil sesini biplemek için kullanılır.
Fonksiyon void gate_open (), void gate_stop () ve void gate_close () Gate'i sürmek için kullanılır (CD Arabası)
void gate_open () {digitalWrite (m1, LOW); digitalWrite (m2, YÜKSEK); gecikme (2000); } void gate_stop () {digitalWrite (m1, LOW); digitalWrite (m2, DÜŞÜK); gecikme (2000); } void gate_close () {digitalWrite (m1, HIGH); digitalWrite (m2, DÜŞÜK); gecikme (2000); }
Verilen İşlev, LCD'yi 4-bit Modunda başlatmak için kullanılır.
void başlangıç (int x, int y) {lcdcmd (0x02); lcdcmd (0x28); lcdcmd (0x06); lcdcmd (0x0e); lcdcmd (0x01); }
Verilen void keypad () fonksiyonu, keypad modülünü Raspberry Pi ile bir 'kısa metot' ile arayüzlemek için kullanılır.
void keypad () {int i, j; int x = 0, k = 0; gecikme (2000); while (k <4) {for (i = 0; i <4; i ++) {digitalWrite (col, LOW); for (j = 0; j <4; j ++) {if (digitalRead (satır) == 0) {setCursor (x, 1);…………………
Aşağıdaki Tam koddaki tüm işlevleri kontrol edin, kod kolay ve açıklayıcıdır.