Arduino'nun yardımı için kapılar için membran kilidi. Arduino'da elektronik kilit. Akıllı Kale projesinin daha da geliştirilmesi

Bu proje modülerdir, böylece farklı öğeleri bağlayabilir/açabilir ve farklı işlevler elde edebilirsiniz. Resimlerde, tam işlevselliğe sahip seçeneğin ve kendisinin daha fazla göstergesi vardır:

  • titreyen mekanizma. VІDKRITTYA için servis yapın ve kapıları KAPATIN. Bu proje için üç farklı mekanizma düşünülmüştür:
    • Servo. Büyük ol, küçük ol. Daha da kompakt ve önemli bir taslakla birleştirilmiş - iyi bir seçenek
    • Araba kapı kilidinin elektrikli tahriki. Harika ve zor bir şey, ama sadece ilahi tıngırdamalar var
    • Selenoid kelepçe. Kendini kapattığı için iyi bir seçenek

    Ürün yazılımı yükseltmelerinde, üç tür olup olmadığını seçebilirsiniz (ayar Kilit tipi)

  • ortadaki düğme. VІDKRITTYA için servis yapın ve ortadaki kapıları KAPATIN. Kapı kollarına (kolun yanından veya parmakların yanından), kapıların üzerine veya pervazın üzerine yerleştirilebilir.
  • arama tuşu. Kapıyı KAPATMAK ve aynı zamanda enerji tasarrufu ile UYANDIRMAK için servis yapın. Kapı kollarına (kolun yanından veya parmakların yanından), kapıların üzerine veya pervazın üzerine yerleştirilebilir.
  • kіntsevik kapının yakınında. Kapı kapatıldığında kilidin otomatik kapanması için. Şunları yapabilirsiniz:
    • saat düğmesi
    • Kapıların kendisinde hall sensörü + mıknatıs
    • Kapıların kendisinde manyetik anahtar + mıknatıs
  • gizli erişim düğmesi. Şifreyi sıfırlamak / yeni bir şifre girmek / yeni anahtarı / kombinasyonu hatırlamak vb. Burada, binada gömülü olabilir.
  • svetlodiod iş göstergesi için. Açık RGB, dolaylı kırmızı ve yeşil renkler (karıştırıldığında sarı verir):
    • Yanan yeşil - kale VІDKRITO. Yak o yüzden kapıyı kapatmayı unutma
    • Sarı yanıyor - sistem atıldı ve şifre girildi
    • Blimaє chervoniy - pil

Bu öğelerden herhangi biri sistemden kapatılabilir:

  • Sonunu alıyoruz. Bellenimde, ayarlarda tezh yogo açık (ayar tail_button). Şimdi kilidi kapatmak için düğmeye basmanız yeterli
  • Çağrı düğmesini alıyoruz. Ayarlardaki bellenim etkinleştirilebilir (ayar uyandırma düğmesi). Artık sistemin uyandırılmasına gerek kalmaz, kendi kendine dışarı atılır (biraz daha enerji tasarrufu sağlanır). Ve şimdi kapıların ön kısmında kapatacak düğmemiz yok ve bir stopere ihtiyacımız var. Abo kilidi - çentik
  • Dahili düğmeyi kaldırıyoruz. Bu seçenek gardıroplar ve kasalar için uygundur. Nalashtuvannyah'ta hiçbir şeyin değiştirilmesi gerekmiyor
  • Işık topluyoruz. Nalashtuvannyah'ta hiçbir şeyin değiştirilmesi gerekmiyor
  • Erişim düğmesi, ilk bükülmeden sonra lehimlenebilir veya kodu kendiniz için yeniden yazabilirsiniz.
  • Kapılar kapalı, baskı kazanmıyor - içeri yaslanın, şifre girişini / RFID etiketini / elektronik anahtarı / parmak kartını kontrol edin
  • Kapılar kapalı, sistem atmış, girilen şifreyi kontrol ediyor. Saat ayarlanabilir (ayar uyku zamanı)
  • Kapılar kapatılır, şifre/etiket/anahtar vb. girilir. - vіdkriti
  • Kapılar kapalı, TÜM MERKEZDE basıldı - açık
  • Yargı kapıları, basılan kazanmaz - kapanır
  • Kapıları açma, TÜMÜ'ne basılmış - kapat
  • Vіdchinenі kapıları, preslenmiş kіtsevik - yakın

Kilitte, robot azaltılmış enerji tasarrufu modunda aküye aktarıldı (açma: ayar uyku_enable) ve kendisi:

  • Cildi birkaç saniye atlayın, PODIA için dikiş yapın (arayacak düğme olmadığından isteğe bağlı seçenek. Ayarlardan açabilirsiniz. uyandırma düğmesi)
  • Pil voltajı için deri çaça dikişleri (açma/kapama ayarı pil_monitor)
  • Yakshcho Akum boşalır (voltaj geri yüklenir bat_low):
    • açık kapılar (isteğe bağlı, bellenimde ayarlanabilir open_bat_low)
    • eskrim vіdkrittya i zakrittya
    • düğmelere basarken kırmızı ışıkla parlayın
    • ABONELİK için kaydırmayı durdurun (şifre / etiket vb. girmek için)

Sistem uyanıksa, şifre değiştir düğmesine basın (düğme takılıdır). tüketilen şifre değiştirme modu:
Rakamlarla bir şifre girin ( MAKSİMUM 10 SAYI!!!)

  • Basıldığında * şifre belleğe yazılır ve şifreyi değiştirmek için sistem çıkış yapar
  • Basıldığında # şifre atılır (tekrar girebilirsiniz)
  • 10 saniye boyunca hiçbir şeye basmazsanız otomatik olarak şifre değiştirme modunu göreceksiniz, eski şifre kaybolacaktır.

Sistem uykuya geçmiyorsa (düğmelerden atılmış veya uyku açıksa), şifre giriş moduna girmek için * tuşuna basın.
Sistem uyurken ve periyodik olarak yuvarlanıp dönerken, * tuşuna basar ve kırmızı ışık yanana kadar azalır
Şifre giriş modu:

  • Parola işleme, yalnızca doğru sayı dizisini yazarken doğru parolanın güvence altına alınacağı şekilde bozulur, böylece parola 345 olur, ardından 345 dizisine kadar son numaraya kadar olan sayılar olup olmadığını girebilirsiniz. görünür, ardından 30984570345 345.
  • Şifre doğru olduğunda kapılar açılır
  • Hiçbir şeye basmazsanız 10 saniye sonra sistem normal (cherg) moduna dönecektir.
  • # tuşuna basarak hemen şifre giriş modunu göreceksiniz.
  • Şifre giriş modunda şifreyi değiştirmek için gizli düğmeye basarsanız, yeni bir şifre de göreceksiniz.

COTTAGE benim için, kelimelerle ilişkilendirilmeyecek daha fazla insan için: vіdpochinok, shashlik, konfor ve acelenin ruhu ve bedeni için diğer resepsiyonlar, aynı zamanda ters taraf: şehir, kazma, onarım, yaşam, vb. .

10 yıldır kulübemizde asilleştirmeye ve maksimum konfor yaratmaya çalışıyoruz. Gelecek, onarım vb. Budinok, kulübe, spa ... ..ve sağda, sokak çitine, hvіrtka ve kapıya gitti. Robiti böylece vicdan, bütçe ve zruchnist.

Bazı detayların tartışılmasının ardından, kapıların ACS yetkilileri tarafından otomatik olarak açılıp açılmasının suçlu olduğu kabul edildi. Güç kapıları ile eksiksiz bir otomasyon seti (sürücü, ray, uzaktan kumanda vb.) Satın aldım ve bir tel ile, aşağıdakiler hakkında siparişin işlerini tamamlamak gerekiyordu.

Görevler geliyordu:

  1. Kale, önceden kurulmuş bir görüntülü interkom ile tam donanımlı olacak şekilde tasarlanmıştır (evden çıkmadan kapıyı açın)
  2. Sokaklardan ve avludan büyük bir anahtarla ve anahtarsız kapıları açma imkanının anası.
  3. 5000 rubleye kadar boş bir bütçeye yatırım yapın.

Runet'teki Poshuki, 7000'den sonsuza kadar saldırgan bir fiyat aralığı sundu. Hazır bir çözümün satın alınması düşünüldü ve geniş olanaklara sahip bir alternatif tasarlandı ve kapıları kendim yıkadım!

Deikyh pidrakhunkiv ve 2000r'ye yakın bir elektromekanik kilit satın almak için hesaplama yapıldıktan sonra, klavyenin 350r su koruması. Yani, geçmişte olduğu gibi, çok sayıda Arduino nano kartı, röle ve rassipukh ve üç tel vardı, bitmiş kitin çeşitliliği arasındaki fark 4000 tr'den fazlaydı. Bendeki gibi, gamancı ve kendini geliştirme için harika bir bonus.

Peki, peki ve şimdi slіv'den diї'ye:

Gerekli tüm bileşenleri satın aldıktan sonra testereyle kesmeye başlamalısınız.

Klavye bağlantı şeması

Tuş takımı sinyali ile ışık yayan diyotlar (beyaz, yeşil, kırmızı) panelleri eklendi (girildi, kapı için doğru şifre, girildi, onaylandı).

  • pin 9 zovty
  • pin 10 yeşil
  • pim 11 kırmızı

Orgskla'dan panel (kafes), ofiste bir kutu tsukerok ve sırıtış hakimi için anlatıldı. Ale, neimensha'nın kesicisi biraz daha şişman çıktı, bir iğne törpüsü ile düzeltme şansım oldu.

Eksen ve çıkış, kulübede takıldım.

Elektromekanik kilidin girişi için 12. yüzyıl gereklidir. Yaşam bloğu, yaşamak için MK buv 5 yemek kaşığı. Her şeyi açtıktan sonra, döndükten, çalıştıktan ve solenoide voltaj uygularken, Dunya kalesi yeniden yok edildi, kz yaşam bloğuna. Daha fazlasını verdiler, paneli kilide görüntülü diyafona bağladıktan sonra, kapıyı açmak için düğmeye basıldığında hiçbir şey duyulmadı, kilit üzerinde küçük bir tıngırtı. Yeni dart çekmek bir seçenek değil, zaten stanttan çıkışta somutlaştırıldılar. Panel için bir röle daha ekleyin ve ek bir 12v güç kaynağı ünitesi kurun. kale için. Seçim / seçimden sonra her şey yolunda gitti, MK yeniden ilerlemeyi bıraktı. Sağdaki her şey lehim kutusu, zahovat dart, yapıştırıcı, silikon su koruması altına alındı ​​ve hazır!

Bu derste, elektronik bir anahtar (etiketler) kullanarak bir kilidi açar gibi basit bir sistemin nasıl çalıştığını öğreneceğiz.

Nadalі İşlevselliği yükseltebilir ve genişletebilirsiniz. Örneğin, "yeni anahtarlar ekleme ve bunları bellekten kaldırma" işlevini ekleyin. Benzersiz anahtar tanımlayıcı önceden program kodunda belirtilmişse, temel türün çok daha basit bir ucu vardır.

Hangi derste ihtiyacımız var:

Projeyi uygulamak için aşağıdaki kütüphaneleri kurmamız gerekiyor:

2) Şimdi, anahtarın çevrilmesi ve kilidin kapatılması için bir sinyal verecek olan Buzzer'ı ve kilit kapalıysa başka bir sinyal vermek gerekir.

Buzzer sonraki sıraya dahil edilmiştir:

Arduino zil
5V VCC
GND GND
pim 5

3) Mekanizma rolünde servo sürücüler galip gelecektir. Servo sürücü kullanılabilir, sonbaharda, sizin için gerekli olanlar şeklinde olsun, genişletip kullanacaksınız, bu da bir servo sürücü oluşturacak. Servo 3 pime sahiptir:

Daha spesifik olarak, aşağıdaki resimdeki tüm modülleri nasıl bağladığımızı merak edebilirsiniz:

Artık her şey bağlı olduğuna göre, programlamaya geçebilirsiniz.

kroki:

#Dahil etmek #Dahil etmek #Dahil etmek // "RFID" kitaplığı. #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); imzasız uzun uidDec, uidDecTemp; // kaydetmek için: onuncu formatta etiket numarası Servo servo; void setup()(Serial.begin(9600); Serial.println("Kart bekleniyor..."); SPI.begin(); // SPI başlatma / SPI veri yolunu başlatma. mfrc522.PCD_Init(); // başlatma MFRC522 / Init MFRC522 card.servo.attach(6);servo.write(0); //servoyu kapalı durumda ekle) void loop()(// if (!mfrc522.PICC_IsNewCardPresent())(return) ; ) // Bölge seçimi if (! mfrc522.PICC_ReadCardSerial ()) (dönüş;) uidDec \u003d 0; // Etiketin seri numarasını görüntüleme for (byte i \u003d 0; i< mfrc522.uid.size; i++) { uidDecTemp = mfrc522.uid.uidByte[i]; uidDec = uidDec * 256 + uidDecTemp; } Serial.println("Card UID: "); Serial.println(uidDec); // Выводим UID метки в консоль. if (uidDec == 3763966293) // Сравниваем Uid метки, если он равен заданому то серва открывает. { tone(5, 200, 500); // Делаем звуковой сигнал, Открытие servo.write(90); // Поворациваем серву на угол 90 градусов(Отпираем какой либо механизм: задвижку, поворациваем ключ и т.д.) delay(3000); // пауза 3 сек и механизм запирается. tone(5, 500, 500); // Делаем звуковой сигнал, Закрытие } servo.write(0); // устанавливаем серву в закрытое сосотояние }

Krokiye daha yakından bakalım:

Kartın UID'sini (Mitki) tanımak için arduino'ya kroki yazmak, şemayı seçmek, daha fazla yapıştırmak ve Konsolu (Seri portu izleme) açmak gerekir. RFID'ye bir etiket eklerseniz, konsolda bir sayı görüntülenecektir.

Çıkarıcı UID sonraki satıra girilmelidir:

Eğer (uidDec \u003d\u003d 3763966293) // Etiketin Uid'ini eşleştirin, verilenle aynıysa, servo tetikleyiciyi çalıştırır.

Danimarka görünüm kartının benzersiz bir tanımlayıcısı vardır ve tekrar etmez. Bu şekilde programda belirlediğiniz tanımlayıcı bir kart sunarsanız, sistem yardımcı bir servo sürücüye erişime izin verecektir.

Video:

Bir radyo frekansı anahtarıyla kilitlenmiş kapı kilidini ortaya çıkardım.

Pratsiuє kilidi şöyle: BİZİM anahtarımız (RFID etiketi) getirildi - kilit kapatıldı, anahtar tekrar getirildi - kilit çevrildi. Kalenin robotunun görselleştirilmesi için altı adet iki renkli ışık diyotu (çizgi) vardı. Kapalı olduğunda - parlak, parlak olduğunda yeşil. Başkasının anahtarı nasıl getirilir, kırmızı ışık parlar.

Muzaffer bir mekanizma sıfatıyla, muzaffer muzaffer arabanın merkezi kilitlemesini kullanıyor. Yenisini alabilirsin, ikinci elini alabilirsin, fiyat farkı büyük değil, yani yenisini kazanmış olmak daha da iyi. Sürücüye giden çubuk bir mandalla bağlanır. Espagnolette sche radyansky, mіtsniy. Bu sıkı "vandal geçirmez" benim için gerekli değil.

"Makine" iki kabloyla kontrol edilir. Bir kutupluluk sapı asar, ters kutupluluk sapı çeker. 12 voltluk bir voltajla jet, zengin 6 amper depolar ...
"Makinede" kіntse vimikaci yoktur.

Ek olarak, kilidin şeması (planlandığı gibi), kilidin güvenliği için gıda, 12 voltluk bir pil, farklı bir şekilde ~ 220 garanti edilebilir. Devrenin özel bir özelliği, kilit mekanizmasının güvenli çalışmasını sağlayan doğrusal olmaması ve aynı zamanda "makine" robotunun ve anahtar transistörlerin koruyucu modudur.

Diyagramda (üstte), "Kapat" omuzu kırmızı renkte ve "Vidkriti" omuzu yeşil renkte görülüyor. Omuzlar harchuyutsya okremo, dirençler aracılığıyla (yaşam bloğunda bulunur). Köprünün podіl kharchuvannya omuzları, af aflarının dahil edilmesi için vvіv.

Açıklama: 33 ohm'luk bir direnç aracılığıyla (yaşam bloğunun şemasında), 12 voltluk bir voltaj kapasitörleri (deri omzunda 2000 mikrofarad) şarj eder. Belirli bir voltaj uygulandığında, kontrolör Arduino_ProMini- 168 PVT322 optokuplör aracılığıyla "Kapat" girişine (veya "Vidkriti"ye benzer şekilde) - tuşların sağ omzunu açmak için. Üzerine bastığınızda: Anahtarları açma anında, kapasitörlerden gelen enerji, "makinenin" motorunu zor bir şekilde "tükürür". Kapasitör kategorisinin dünyasında (hızlı bir akış vardır) "makinenin" motoru bir direnç akışı (33.) tarafından aç bırakılır. Zavdyaki tsomu, kaleyi "kapatma" - "açma" sürecinde, stok düzgün bir şekilde çöküyor.

Motoru kontrol etmenin bu yolu en uygunudur.

Yaşam bloğunun şeması transformatördür. Vzagali, kilidin devresi 12 volt, 2.8-A / H pilden şarj edilir. Ve güç kaynağının devresi pili nominal seviyede yükseltir. Işık "Merezh", yaşam bloğunun normal çalışmasını gösterir.

Tüm diyotlar 1N4007 (şemada belirtmeyi unutmak ve gücü soran kişi - nasıl?).

(1) zіbrany obmezhuvach maksimum struma. direnç R 1 kurulumların strumasının üst eşiği 300 mA'dır.
LM317 entegre stabilizatöründe (2) seçilebilir voltaj sabitleyici Stabilizasyon voltajı bir direnç tarafından ayarlanırR 2 . Aküdeki voltaj 13,7 volt olabilir.

Aküden gelen voltaj üç noktadan sağlanır.
(X), (Y) üzerindeki dirençler (33'te) aracılığıyla - "makine" motorunun "sürücüsünün" tuşlarının omuzlarını yiyor.

Ek binalarımın çoğunu elini kaybedenden alıyorum. Bu proje bir hata değil. Gövdedeki güçlü gövde :) elektronik balast şeklinde:

Işık No.-2 ... No.-7 - iki renk. Koku hatta yayılır. Kaleyi "açma" ve "kapatma" süreçlerinin görselleştirilmesi için Vykorivuyutsya. süsleme.

Arduino, her türlü mülkiyeti kopyalamak için en iyi sistemdir. Fikirlerin çoğu onsuz tutunamazdı. Uzun zamandır böyle bir düşünce vardı: Arduino'da özel bir şifreli kilit oluşturmak. Yoga için şarkı söyleme tuşuna basmak gerekir. Kilidin titremesinden suçlu olmadığı için, düğmeyi bilmem gerekiyor. Bunu görebilmek için m'yazovu'nun vicorist hafızasını, şarkı söyleme aralıklarını vitrimat etmek gerekir. Böyle bir kötülük çalınamaz. Ama hepsi daha az teori.

Onu almak için, düz kesimli darbelerin özel bir eki, ayrıca bir kilka likil ve bir bölme ile hızlandırmak gerekir. Ale, maw ve büyük boyutlar eklemeye hazır ve yogo, kazanmak elverişsiz olurdu. Kural olarak, bu tür düşünceler huzur vermez. Evrene giden yolda ilk adım Arduino programının oluşturulmasıydı. Kendisi şifreli kilit görevi görecek. Açmak için bir tuşa değil, bir çaça basmanız gerekir, ayrıca bir kerede çalışmanız gerekir. Şema hazır, şöyle görünüyor:

Resmin kalitesi daha iyi değil, ancak bağlantı toprağa bağlı, D3, D5, D7, D9 ve D11.

Aşağıdaki kodu görüntüleyin:

Sabit int ina \u003d 3; const int inb \u003d 5; const int inc \u003d 9; const int ledPin \u003d 13; int i \u003d 1000; bayt a\u003d 0; bayt b\u003d 0; bayt c\u003d 0; bayt d\u003d 0; imzasız uzun süre \u003d 0; // millis () değerlerini kabul eden her şeyi unutma unsigned long temp \u003d 0; // imzasız uzun bayta kaydet keya \u003d (0, 0, 0, 0, 0, 0, 0, 0); // kod bayt tuşub \u003d (1, 1, 1, 1, 0, 1, 0, 0); bayt anahtarıc \u003d (1, 0, 1, 0, 1, 1, 1, 0); bayt k\u003d 0; void setup() (pinMode (ina, INPUT_PULLUP); // pinMode (inb, INPUT_PULLUP); pinMode (inc, INPUT_PULLUP); pinMode (ledPin, OUTPUT); // LED'i uyandır 13. pinMode (7, OUTPUT); pinMode (11, OUTPUT); digitalWrite (7, DÜŞÜK); // zemin digitalWrite'ı (11, DÜŞÜK) değiştirin; zaman \u003d millis (); // doğru saat için gerekli) geçersiz ( ) ( // LED'i yanıp sönmeye devam et digitalWrite (ledPin, HIGH); gecikme (100); digitalWrite (ledPin, LOW); gecikme (100); digitalWrite (ledPin, HIGH); gecikme (100); digitalWrite (ledPin, DÜŞÜK); gecikme( 200);) boşluk döngüsü () (eğer (k \u003d\u003d 0) (iki kez yanıp söner (); // kod istenir) if (k \u003d\u003d 8) (digitalWrite (ledPin, YÜKSEK) ; gecikme ( 3000); k \u003d 0 ;) a \u003d digitalRead (ina); // düğmelerden eşit sinyalleri oku - basılı / basılmamış b \u003d digitalRead (inb); c \u003d digitalRead (inc); gecikme (100) ; // saldırgan ise - aflara karşı savunma, eğer savaşamazsınız ((digitalRead (ina) \u003d\u003d a) && (digitalRead (inb) \u003d\u003d b) && (digitalRead (inc) \u003d\u003d c)) (if (a \u003d\u003d keya [k]) (if (b \u003d\u003d tuşb[k]) (if (c \u003d\u003d tuşc[k]) (k++; )))) If (k \u003d\u003d 1) (if (d \u003d\u003d 0) (zaman \u003d millis (); d++;)) temp \u003d millis (); temp \u003d temp - zaman; if (temp\u003e 10000) (k \u003d 0; d \u003d 0; zaman \u003d milis ();))

Shchob, koda göre zayvih beslenmesini suçlamadı, bir sonraki günün anlarını açıklamak için yükseldi. Bağlantı noktası tanıma için kurulum işlevi seçilir. Bir sonraki işlev, Pin voltajını 5 V artırmak için gerekli olan Input_Pullup'tur. Ek bir direnç için gereklidir. Zavdyaki tsomu, farklı kısa zavdyany için suçlanmayacaktır. Daha fazla netlik için, iki kez yanıp sönme işlevinin devre dışı bırakılması önerilir. Farklı programlar oluştururken diğer işlevleri denemek gerekir.

Fonksiyonların tanınmasından sonra portlardan gelen sinyal okunur. Butona basılırsa 1 rakamı ile gösterilir, değilse 2 rakamı ile gösterilir. Ayrıca değerlerin analizi yapılacaktır. Örneğin, 0,1,1 gibi böyle bir kombinasyon ortaya çıktı. Tse, ilk tuşa basıldığı, ancak ikinci tuşa basılmadığı anlamına gelir. Tüm anlamlar doğru sayılırsa, zihin 8 tamamen aynıdır. Bu konuda ön paneldeki ışık yanar. Ardından, kapıları açmaya hizmet edecek bir şarkı kodu girmeniz gerekiyor.

Kodun geri kalan öğeleri, lichnik'in değerini azaltmak için kullanılır. Bu işlev, son tuş vuruşundan bu yana 10 saniyeden fazla geçtiğinde sona erer. Herhangi bir kod olmadan, tüm olası seçenekleri sıralayabilir, zengin bir şekilde bitirmek istersiniz. Bunun yaratılmasından sonra, protesto etmek için gerekli olanı inşa edeceğim. daha fazla