Menü
Bedava
giriş
ana  /  TARAFINDAN / Arduino Nano'da elektronik kale. Arduino'da sıradışı kod kalesi

Arduino nano üzerinde elektronik kale. Arduino'da sıradışı kod kalesi

Radyo frekansı tuşu tarafından kontrol edilen kapı kilidinin tanıtılması.

Kilit, şöyle çalışır: Anahtarımızı (RFID etiketi) getirdiler - KİLİT KAPALI, tuşunu tekrar yerleştirin - kilit açıldı. Kilitin çalışmasını görselleştirmek için, altı iki renkli LED (cetvel) kullanılır. Kapanırken - kırmızı ışık çalışır, açılırsa yeşildir. Başkasının anahtarını getirirseniz, kırmızı LED'ler flaş.

Bir aktüatör olarak, arabanın merkezi kalesinin sürüşünü kullanmaya karar verdim. Yeni bir tane satın alabilirsiniz, fiyatı kullanabilirsiniz, fiyattaki fark büyük değil, bu yüzden yenisini kullandım, güvenilir. Scorelet ile bağlı tahrik çubuğu. Spenets hala Sovyet, güçlü. Evet ve güçlü bir "vandilik karşıtı" ihtiyacım yok.

"Makine" iki tel ile kontrol edilir. Bir polarite bir çubuk önler, çubuğun ters kutupları çeker. 12 volt voltajda, akım 6 amper, çok ...
"Daktilo" nda limit anahtar yoktur.

Kilitleme şemasının (fikirde) beslenmeyi garanti ettiği gerçeğine dayanarak, pilin çalışmasını sağlamak için, ~ 220'nin ortadan kalkması durumunda, pilin 12 volt olduğu gerçeğine dayanarak. Bir köprü kontrolü "makine" geliştirdi. Programın özel bir tavukları, kilit mekanizmasının güvenilir bir şekilde çalışmasını sağlayan doğrusal olmayandır ve aynı zamanda - "Makine" ve anahtar transistörlerinin nazik çalışma modu.

Diyagramda (yukarıda), omuz "yakın" kırmızı renkte vurgulanır ve omuz "açık" - yeşil. Omuzlar dirençlerle ayrı ayrı beslenir (güç kaynağında bulunur). Köprünün omuzlarını paylaşmak, yanlış pozitifleri dışlamak için tanıtıldı.

Açıklama: 33m dirençler (güç kaynağı şemasında), 12 volt voltaj şarjı kapasitörleri (her omuzda 2000 -MKF). Kontrolör Arduino_Promini'yi kontrol ettiğinde 168 "Kapat" girişinde (veya "açık" ile benzer şekilde), PVT322 Optocouple üzerinden - karşılık gelen omuz tuşları açılır. Aynı zamanda, aşağıdakiler ortaya çıkıyor: Anahtarları açma sırasında, kapasitörlerden enerji, motor "makine" motorunu "burgu" i. Kapasitörler deşarj (bu hızlı bir şekilde olur) "Makine" motoru, mevcut bir direnç (33.) tarafından desteklenmektedir. Bundan dolayı, "kapatmanın" sürecinin sonunda - kalenin "keşifleri", çubuk oldukça yavaş hareket eder.

Motoru yönetme yöntemi en uygundur.

Güç Bloğu Diyagramı Transformatörü. Genel olarak, kilit şeması bir batarya 12 volt, 2.8 - ve h ile çalışır. Ve BP şeması pili nominal bir seviyede desteklemektedir. "Ağ" LED'i, güç kaynağının normal çalışmasını gösterir.

Tüm diyotlar 1n4007 (şemayı işaret etmeyi unuttum ve kişi bir soru sordu - ne?).

(1) Maksimum akım sınırlayıcı toplanır. Direnç R. 1 Üst akım eşiği 300. olarak ayarlanır.
Entegre Sabitleyici LM317'de (2) İmzalı voltaj dengeleyici. Stabilizasyon voltajı bir dirençle yapılandırılmıştırR. 2 . Bataryadaki voltaj 13.7-volt olmalıdır.

Pilin voltajı üç noktada servis edilir.
Dirençler (x), (x), (y) üzerinde (x), (y) - motorun "makinelerin" anahtarının "sürücüsünün" gücü.

Cihazlarının çoğu, yakalandığından toplanır. Bu proje istisna değildir. Konutu bir durum olarak kullanıyorum :) Elektronik balasttan:

LED'ler # -2 ... №-7 - İki renkli. Onlar doğrultusunda bulunurlar. Kalenin "açılışını" ve "kapanışını" görselleştirmek için kullanılır. Süsleme.

Bu proje modüler, yani. Farklı öğeleri bağlayabilir / devre dışı bırakabilir ve farklı işlevsellik kazanabilirsiniz. Yukarıdaki resimler, tam işlevsellik ile seçeneği gösterir:

  • Kilitleme mekanizması. Kapıyı açmak ve kapatmak için kullanılır. Bu proje, üç farklı mekanizmanın kullanımını tartışır:
    • Servo. Büyük var, küçük var. Çok kompakt ve şiddetli kasa ile birleştiğinde - harika bir seçenek
    • Kale elektrikli sürücü araba kapısı. Büyük ve güçlü bir şey, ama sadece çılgın akımları yiyor
    • Solenoid Pike. İyi bir seçenekçünkü kendini çarptı

    Ürün yazılımı ayarlarında, üç türden birini seçebilirsiniz (ayar) kilit tipi)

  • İçindeki düğme. Kapıyı içeriden açmaya ve kapatmaya yarar. Kapı koluna (avuç içi veya parmakların yanından), kapının üzerine veya reçel üzerinde yerleştirilebilir
  • Dışarıdaki düğme. Kapıyı kapatmaya ve enerji tasarrufundan uyanmaya yarar. Kapı koluna (avuç içi veya parmakların yanından), kapının üzerine veya reçel üzerinde yerleştirilebilir
  • Bağlam kapının kapatılmasında. Kapıyı kapatırken kilidini otomatik olarak kapatmak için kullanılır. Olabilirler:
    • Saat düğmesi
    • Salon Sensörü + Kapıdaki Mıknatıs
    • Gercon + Kapıdaki Mıknatıs
  • Gizli erişim Sıfırlama düğmesi. Şifreyi sıfırlamak için kullanılır / yeni bir şifre / yeni bir anahtar / kombinasyonun ezberlenmesi vb. Davada bir yere gizlenebilir
  • Işık yayan diyot İşi belirtmek için. RGB LED, kırmızı ve yeşil renkler kullanılmış (karışık olduğunda sarı):
    • Gorite Green - Kale açık. Gorbs kapıyı kapatmayı unutmamak
    • Sarı yanıyor - sistem uyandı ve şifre girişini bekliyor
    • Yanıp sönen kırmızı - batarya oturdu

Bu elemanların herhangi biri sistemden hariç tutulabilir:

  • Karışıklığı kaldırıyoruz. Ayarlardaki ürün yazılımında da kapatın (ayar tail_button.). Şimdi kilidi kapatmak için düğmeye basmanız gerekir.
  • Açık düğmeyi kaldırıyoruz. Ayarlardaki ürün yazılımında da kapatın (ayar wake_button.). Şimdi sistemin uyanmasına gerek yok, kendini uyandırır (enerji tüketimi biraz daha büyüktür). Ayrıca, şimdi ön kapıyı kapatmak için bir düğmemiz yok ve bir karışıklığa ihtiyacınız var. Ya Castle - Tickold
  • İç düğmeyi kaldırıyoruz. Bu seçenek dolaplar ve kasalar için uygundur. Ayarlardaki hiçbir şeyi değiştirmeniz gerekmez
  • LED'i kaldırıyoruz. Ayarlardaki hiçbir şeyi değiştirmeniz gerekmez
  • Erişim sıfırlama düğmesi, ilk kullanımdan sonra kaybolabilir veya kodu kendisi için yeniden yazabilir.
  • Kapı kapalı, dışarıya tıklayarak - uyandırma, şifre girişini / RFID etiketini / elektronik anahtar / parmak izi için bekleyin
  • Kapı kapalı, sistem uyandı, şifreyi bekliyor. Zaman yapılandırılabilir (ayar uyku zamanı.)
  • Kapı kapalı, şifre girilir / etiket / tuş, vb. - açık
  • Kapı kapalı, içine basıldı - açık
  • Kapı açık, dışarıdan tıklar - kapat
  • Kapı açık, içine basıldı - kapat
  • Kapı açık, preslenmiş - kapat

Kilit, düşük güç tasarrufu modunda bir batarya işlemi sağlar (Enable Disable: Kurulum sleep_enable), yani:

  • Birkaç saniyede bir uyanmak, olayı takip edin (isteğe bağlı seçenek, dışarıda bir düğme yoksa. Ayarta etkinleştirebilirsiniz wake_button.)
  • Akum voltajını izlemek için birkaç dakikada bir (Açık / Kapama ayarı battery_Monitor)
  • Akum boşaltılırsa (voltaj ayarda ayarlanır bat_low.):
    • açık kapı (isteğe bağlı, firmware'de yapılandırılabilir open_bat_low.)
    • daha fazla açılış ve kapanmayı yasakla
    • kırmızı bir LED yanıp sönmek için düğmelere tıkladığınızda
    • etkinliği izlemeyi bırak (yani şifre / etiket vb.)

Sistem uyumadığında, Parola Kaydırma düğmesine (Gizli düğmesine) basın. Bul B. Şifre Değiştirme Modu:
Numaralardan bir şifre giriyoruz ( En fazla 10 hane !!!)

  • * Şifreyi tıklatarak hafızaya kaydedilir ve sistem şifre değişikliğinden çıkıyor
  • Şifreyi tıkladığınızda sıfırlanır (tekrar girebilirsiniz)
  • 10 saniye bir şeye basmazsanız, şifre değiştirme modunu otomatik olarak bırakın, şifre eski kalacaktır

Sistem uyumadığında (düğmeleri veya uykudan kurtuldum), şifre giriş modunu girmek için * düğmesine tıklayın.
Sistem uyursa ve olayı kontrol etmek için periyodik olarak uyanırsa, ardından * tuşuna basın ve kırmızı LED yanana kadar basılı tutun.
Şifre giriş modu:

  • Şifre işleme, doğru şifrenin yalnızca doğru şifrenin yalnızca doğru sayıları ayarlandığında sayılır, yani şifre 345 ise, sıralama 345 görünene kadar herhangi bir sayı girilebilir. 30984570345, 345 bittiği için kilidini açacak.
  • Şifre doğru girilirse, kapı açılır
  • Herhangi bir şeye basmazsanız, 10 saniye sonra sistem normal (görev) moduna geri döner
  • # Tıklatırsanız, hemen şifre giriş modundan çıkın
  • Basın gizli düğme Parola giriş modunda şifre değişikliği, o zaman çıkacaksınız

Çoğu kelime ile ilişkili olduğu gibi bir yazlık var: dinlenme, kebap, konfor ve diğer hoş ruh ve hareket gövdesi, ama var arka taraf: Bahçe, kaz, tamir, inşaat vb.

10 yıl boyunca, Dacha'da maksimum konforu yansıtmaya ve yaratmaya çalışıyoruz. Biz yürütmek, onarım vb. Ev, kulübe, banyo ... .. ve nihayet sokak çiti, fitiller ve kapılara geldi. Bu vicdan, bütçe ve rahatlığı yapın.

Bazı detayları tartıştıktan sonra, kapının otomasyonda geciktirilmesi gerektiği kabul edildi. Peki, kuklayıcının bazı özelliklerine sahip olması için. Kapı ile soru, bir dizi otomatik (sürücü, ray, konsol vb.) Satın alarak çözüldü ve aşağıda bazı görevleri çözmek için gereken bir geçitle.

Görevler aşağıdaki gibidir:

  1. Kalenin daha önce birlikte çalışması gerekiyordu yüklü video İnterkom (evden ayrılmadan bir kapıyı aç)
  2. Kapıyı normal bir anahtarla ve sokaktan ve avludan anahtar olmadan açabilirsiniz.
  3. Kalan bütçeyi 5000 p'ye yapın.

Runetteki aramalar, 7000 ve süresiz olarak aşağıdaki fiyat aralığını sundu. Hazır bir çözümün satın alınması ortadan kalktı ve kapıyı kendisine yıkamak için geniş olanaklara sahip bir alternatif tarafından kayboldu!

Bazı sayım ve hesaplamalardan sonra, 2000R civarında elektromekanik bir kilit satın almak alışılmıştır., Su geçirmez klavye 350r., Buraya yönlendirecek. Birkaç Arduino Nano panoları, röleler ve saçma ve bazı teller olduğu için, bitmiş setin maliyeti arasındaki fark 4000 TR'den fazlaydı. Benim için, cüzdan ve kendini geliştirme için mükemmel bir bonus.

İyi ve şimdi kelimelerden eyleme kadar:

Herkesi satın aldıktan sonra gerekli bileşenler Kesmeye başladı.

Tuş takımı bağlantı devresi

Klavye sinyalleri olan ek LED göstergesi (beyaz, yeşil, kırmızı) panel (giriş, doğru şifre kapısı açık, reddedildi).

  • 9 sarı pim
  • pin 10 Yeşil
  • pin 11 kırmızı

Pleksiglas'tan Panel (ızgara), şeker kutusunu kes ve ofiste komşuları gülümseyin. Ancak en küçük mayınlar biraz daha yağ olduğu ortaya çıktı, şekerleme olarak çalışmak zorunda kaldım.

Peki, bu hafta sonları yazlığa taşındım.

Elektromekanik kilidi açmak için, 12 V gerekir. MK'yı besleyen güç kaynağı 5 c., DC-DC Converter'da kilitleme için bir çapraz çubukla bir artış koymak için çözelti. Bağlı olan her şey kontrol etmeye başladı, çalışmaya başladı, ancak voltaj Dunya Kilidi'nun solenoidine gönderildiğinde, güç kaynağındaki KZ yeniden başlatıldı. Daha Fazlası, arama panelini Video Dönüşümünden kilitle bağladıktan sonra, açık kapıya bastığınızda, kapı kilitlenmemiş, kilitte küçük bir akım. Yeni teller çekin bir seçenek değildir, zaten evin çıkışında kesilirdi. Panel için başka bir röle eklemeye ve 12 V'a ek bir güç kaynağı eklemeye karar verdim. Kale için. Ayrıştırma / koleksiyondan sonra, her şey çalıştı, MK yeniden başlatıldı. Bütün bu iş nem geçirmez sıfırlama kutusuna saklandı, telleri, tutkal, silikon ve hazır sakladı!

İlerleme hala durmuyor ve "akıllı kaleler", dairelerin, garajların ve evlerin kapılarında giderek daha fazla görünmektedir.

Smartphone'daki düğmeye bastığınızda benzer bir kilit açılır. Neyse ki, akıllı telefonlar ve tabletler kullanımımızı çoktan girmiştir. Bazı durumlarda "Akıllı Kilitler" bağlıdır " bulut hizmeti"Google diske görünüyor ve uzaktan açık görünüyor. Ek olarak, bu seçenek kapının açılışına diğer kişilere erişmeyi mümkün kılar.

Bu proje, Arduino'daki Akıllı Kilit'in DIY versiyonu tarafından gerçekleştirilecek, bu da yerin herhangi bir noktasından uzaktan yönetilebilir.

Ek olarak, proje parmak izi tanımlamasından sonra kilidi açma yeteneğini ekledi. Bunu yapmak için parmak izi sensörü entegre olacaktır. Her iki seçenek de açmak için seçenek, AdAfruit IO platformunun temelinde çalışacaktır.

Benzer bir kale, akıllı evinizin projesinde mükemmel bir ilk adım olabilir.

Parmak izi sensörünü ayarlama

Parmak izi sensörüyle çalışmak için, sensörü ayarlama işlemini büyük ölçüde kolaylaştıran Arduino için mükemmel bir kütüphane vardır. Arduino UNO bu projede kullanılmaktadır. ADafruit CC3000, internete bağlanmak için kullanılır.

Güç bağlanmaya başlayalım:

  • 5V kontağını Arduino kartından kırmızı raya bağlamak;
  • Arduino ile GND teması, uyumsuz bir devre kartındaki mavi bir raya bağlanır.

Parmak izi sensörünün bağlantısına gidin:

  • İlk önce gücü bağlayın. Bunu yapmak için, kırmızı tel rayına +5 V ve siyah - rayı GND ile bağlanır;
  • Beyaz sensör teli 4'e Arduino'ya bağlanır.
  • Yeşil tel, bir mikrodenetleyicide İletişim 3'e gider.

Şimdi CC3000 modülüyle ilgileneceğiz:

  • CC3000 kartlarından IRQ ile irtibata geçin, Arduino'da Pin 2'ye bağlanın.
  • Vbat - 5 ile iletişim kurmak için.
  • CS - 10 ile iletişim kurmak için.
  • Bundan sonra, SPI kişilerini Arduino'ya bağlamanız gerekir: MOSI, MISO ve CLK, sırasıyla 11, 12 ve 13 kişilere.

Sonunda, yemekler sunmak gerekir: VIN - Arduino 5V (montaj tahtası üzerindeki kırmızı ray) ve GND'ye GND'ye (katmandaki mavi ray).

Tamamen monte edilmiş projenin fotoğrafı aşağıda gösterilmiştir:

Eskiz geliştirmeden önce, AdAfruit IO'ya veri yükleyecek, parmak izi sensörünüzle ilgili verileri aktarmanız gerekir. Aksi takdirde, gelecekte sizi tanımıyor;). Arduino kullanarak parmak izi sensörünü ayrı ayrı kalibre etmeyi öneririz. Bu sensörle ilk kez çalışırsanız, kalibrasyon işlemini okumanızı ve parmak izi sensörüyle çalışmak için ayrıntılı talimatları okumanızı öneririz.

Henüz bunu yapmadıysanız, ADafruit IO'su üzerinde bir hesap başlatırsınız.

Bundan sonra, Arduino'daki "Akıllı Kilit" gelişiminin gelişiminin bir sonraki aşamasına geçebiliriz: yani, eskizlerin gelişimi, verileri adafruit IO'yu iletecek. Program oldukça hacimli olduğundan, makalede sadece ana parçalarını vurgulayacağız ve dikkate alacağız ve ardından tam kroki indirebileceğiniz Github'a bir bağlantı verelim.

KAPSAM, gerekli tüm kütüphaneleri yükleme ile başlar:

#Dahil etmek.

#Dahil etmek.

#Dahil etmek.

# "Adafruit_mqtt.h" include

#İnclude "adafruit_mqtt_cc3000.h"

#Dahil etmek.

#Dahil etmek. >

Bundan sonra, SSID ve Şifre belirleme, WiFi ağınızın parametrelerini (şifre) belirten çizi doğru şekilde düzeltmeniz gerekir:

#Define wlan_security wlan_sec_wpa2\u003e

Ek olarak, ADAFRUTI IO hesabınıza girmek için ad ve AIO tuşuna (anahtar) girmeniz gerekir:

#Define AIO_SERVERPORT 1883.

#Define aio_username "adafruit"

#Define Aio_Key "adafruit_io_key"\u003e

Aşağıdaki satırlar, parmak izi sensöründen etkileşim ve veri işlemeden sorumludur. Sensör etkinleştirilmişse (çakıştırılmışın baskısı), "1" olacaktır:

const Char FingerPrint_Feed ProgMEM \u003d AIO_USERNAME "/ Feeds / parmak izi";

Adafruit_mqtt_publish fingerprint \u003d adafruit_mqtt_publish (& mqtt, fingerprint_feed);

Ek olarak, sensörümüz için yazılım yazılımı nesnesinin bir örneğini oluşturmanız gerekir:

SoftwarySerial Myserial (3, 4);

Bundan sonra, sensörümüz için bir nesne oluşturabiliriz:

Adafruit_fingerprint parmak \u003d adafruit_fingerprint (ve Myserial);

Krokunun içinde, hangi parmakidin gelecekte kilidi etkinleştirmesi gerektiğini belirtiriz. Bu örnek, sensör tarafından kullanılan ilk parmak izi kimliğine karşılık gelen 0 kullanır:

İnt fingerid \u003d 0;

Bundan sonra, projemizdeki sayaç ve gecikmeyi (gecikmeyi) başlatın. Özünde, kilidin açıldıktan sonra otomatik olarak çalışmasını istiyoruz. Bu örnek, 10 saniyelik bir gecikmeyi kullanır, ancak bu değeri kendi ihtiyaçlarınız için ayarlayabilirsiniz:

İnt aktivationCounter \u003d 0;

İnt lastactivation \u003d 0;

int aktivasyon zamanı \u003d 10 * 1000;

Kurulum () işlevinin gövdesinde, parmak izi sensörünü başlatır ve CC3000 yongasının WiFi ağınıza bağlanmasını sağlarız.

LOOP () fonksiyonunun gövdesinde AdAfruit IO'ya bağlanın. Aşağıdaki satırdan sorumludur:

AdAfruit IO platformuna bağlandıktan sonra, son parmak izini kontrol edin. Eğer çakışırsa, kilit aktif değilse, adafruit IO'da işleme için "1" gönderiyoruz:

if (parmakprintid \u003d\u003d fingerid && lockstate \u003d\u003d false) (

Serial.println (f ("erişim izni!"));

lockstate \u003d true;

Serial.println (f ("başarısız"));

Serial.println (f ("Tamam!"));

lastactivation \u003d milis ();

Eğer, döngü () işlevi dahilinde, kilit etkinleştirilir ve yukarıda belirtilen gecikme değerine ulaştık, "0" gönderdik:

if ((ActivationCounter - Lastactivation\u003e ActivationTieDime) && lockstate \u003d\u003d true) (

lockstate \u003d false;

if (! parmak izi.publish (eyalet)) (

Serial.println (f ("başarısız"));

Serial.println (f ("Tamam!"));

GitHub'daki kodun en son sürümünü indirebilirsiniz.

Projemizi test etme zamanı! Arduino için gerekli tüm kütüphaneleri indirmeyi ve yüklemeyi unutmayın!

Kroki için gerekli tüm değişiklikleri yaptığınızdan ve Arduino'nuza indirdiğinizden emin olun. Bundan sonra seri monitör penceresini açın.

Arduino bağlanırken Wifi ağıParmak izi sensörü kırmızı yanıp sönecektir. Parmağınızı sensöre effor edin. Seri Monitör penceresi kimlik numarası görünmelidir. Eğer çakışırsa, bir mesaj görünecektir, "Tamam!". Bu, verilerin adafruit IO sunucularına gönderildiği anlamına gelir.

LED örneğinde daha fazla kilit ayarı için şema ve kroki

Şimdi, kapı kilidini yönetmekten doğrudan sorumlu olan projenin bir bölümüyle ilgileneceğiz. K'yi bağlamak için kablosuz ağ ve kilidin aktivasyonu / devre dışı bırakılması gerekli olacaktır ek modül Adafruit ESP8266 (ESP8266 modülü adafruit olmak zorunda değildir). Aşağıda dikkate alacağımız örnekte, AdAfruit IO'yu kullanarak iki platform (Arduino ve ESP8266) arasında veri alışverişinin ne kadar kolay olduğunu değerlendirebileceksiniz.

Bu bölümde, doğrudan kilitle çalışmayacağız. Bunun yerine, LED'i temasa bağlıyız, burada kilidi buradan bağlanacak. Bu, kale tasarımının özelliklerini derinleştirmeden kodumuzu test etme fırsatı verecektir.

Şema oldukça basittir: ilk önce ESP8266'yı breadboard üzerinde ayarlayın. Bundan sonra, LED'i ayarlayın. LED'in uzun (pozitif) bacağının direnç üzerinden bağlı olduğunu unutmayın. İkinci direnç ayağı, ESP8266 modülündeki 5 numaralı kişiye bağlanır. LED'in ikinci (katodu), ESP8266'daki GND PIN'ine bağlanır.

Tamamen monte edilmiş şema aşağıdaki fotoğrafta gösterilmiştir.


Şimdi bu proje için kullanan bir kroki ile çözelim. Yine, kod oldukça hacimli ve karmaşık, bu yüzden sadece ana parçalarını göz önünde bulunduracağız:

Gerekli kütüphanelerin bağlantısıyla başlıyoruz:

#Dahil etmek.

# "Adafruit_mqtt.h" include

# "Adafruit_mqtt_client.h" include

WiFi'yi yapılandırın:

#Define wlan_ssid "your_wifi_ssid"

#Define wlan_pass "your_wifi_pall"

#Define wlan_security wlan_sec_wpa2.

Ayrıca AdAfruit IO'nun parametrelerini de yapılandırın. Tıpkı önceki bölümde olduğu gibi:

#Define Aio_Server "io.adafruit.com"

#Define AIO_SERVERPORT 1883.

#Define aio_username "adafruit_io_" kullanıcı "

#Define aio_key "adafruit_io_key"

LED'i (gelecekte kilidi veya rölemiz olacak) hangi çama bağladığımızı belirtiyoruz:

int relaypin \u003d 5;

Önceki bölümdeki gibi parmak izi sensörü ile etkileşim:

const char lock_feed progmem \u003d aio_username "/ besleme / kilit";

Adafruit_mqtt_subscribe lock \u003d adafruit_mqtt_subscribe (& mqtt, lock_feed);

Kurulum () işlevinin gövdesinde, LED'in bağlandığı pin çıkış modunda çalışması gerektiğini belirtiriz:

pinmode (relaypin, çıkış);

Döngü () döngüsü içinde, ilk önce AdAfruit IO'ya bağlı olup olmadığımızı kontrol edin:

Bundan sonra, hangi sinyalin geldiğini kontrol edin. "1" iletilirse, LED'imizin bağlı olduğu ilan ettiğimiz kişiyi etkinleştirin. Eğer "0" olursa, "Düşük" durumuyla iletişime geçiyoruz:

Adafruit_mqtt_subscribe * abonelik;

süre ((abonelik \u003d mqtt.readsubscription (1000))) (

eğer (abonelik \u003d\u003d & lock) (

Serial.Print (F ("var:"));

Serial.println ((char *) lock.Lastread);

// komutu veri türüne kaydet

String komut \u003d string (char *) lock.Lastread);

eğer (komut \u003d\u003d "0") (

digitalwrite (relaypin, düşük);

eğer (komut \u003d\u003d "1") (

digitalwrite (relaypin, yüksek);

Bulmak son sürüm Github'da yapabileceğin eskiz.

Projemizi test etme zamanı. Arduino'nuz için gerekli tüm kütüphaneleri indirmeyi ve taslakta değişiklik yapıp yapmadığınızı kontrol etmeyin.

ESP8266 yongasını programlamak için basit bir USB-FTDI dönüştürücüsü kullanabilirsiniz.

Kapsayı Arduino'ya yükleyin ve seri monitör penceresini açın. Üzerinde bu aşama ADafruit IO'ya bağlanıp bağlanmamayı kontrol ettik: uygun Fiyatlı İşlevsellik Daha fazla bakacağız.

Test projesi

Şimdi test etmeye devam et! Feeds menüsünde Adafruit IO Kullanıcı menünüze gidin. Parmak izi ve kilit için kanalları kontrol edin, oluşturun veya yok (aşağıdaki yazdırma ekranında, parmak izi ve kilidi):


Hayır ise, manuel olarak oluşturmanız gerekir.

Şimdi parmak izi ve kilit kanalları arasında veri alışverişi yapmamız gerekiyor. Kilit kanalı, parmak izi kanalı "1" değerini aldığında "1" değerini yapmalıdır ve bunun tersi de geçerlidir.

Bunu yapmak için çok güçlü bir araç kullanın ADafruit IO: Tetikleyiciler. Tetikleyiciler, yapılandırılmış kanallara başvurabileceğiniz temel koşullarda. Yani, iki kanalın birbirine bağlanmasına neden olabilirler.

Adafruit IO'daki tetikleyici bölümünden yeni bir reaktif tetikleyici oluşturun. Bu, parmak izi sensörü kanalları ile kale arasında veri alışverişi yapma yeteneği sağlayacaktır:


Her iki tetikleyici de özelleştirildiğinde böyle görünmesi gerekir:

Her şey! Şimdi projemizi gerçekten test edebiliriz! Parmağınızı sensöre uygulayın ve Arduino, veri aktarımına karşılık gelen LED tarafından göz kırpmaya başladı. Bundan sonra, LED, ESP8266 modülünde yanıp sönüyor. Bu, MQTT ile veri almaya başladığı anlamına gelir. Bu noktadaki devre kartı üzerindeki LED de açılmalıdır.

Krokiye taktığınız gecikmeden sonra (varsayılan olarak, bu değer 10 saniyedir), LED kapanır. Tebrikler! LED'i bir parmak izi ile kontrol edebilirsiniz, dünyanın herhangi bir noktasında var!

Elektronik kaleyi özelleştirmek

Projenin son bölümüne ulaştık: doğrudan bağlantı ve yönetim elektronik kilit dan arduino'yu kullanarak. ve parmak izi sensörü. Proje kolay değil, tüm kaynakları daha yüksek yaptıkları formda kullanabilirsiniz, ancak röleyi bağlamak için LED yerine.

Kilidi doğrudan bağlamak için, ek bileşenlere ihtiyacınız olacaktır: Güç Kaynağı Güç Kaynağı, Güç Kaynağı için Jack, Transistör (bu örnekte, IRLB8721PBF MOSFET, örneğin, Bipolar Transistör Tipi102'yi kullanabilirsiniz. Eğer Bipolar bir transistör kullanın, bir direnç eklemeniz gerekir.

Aşağıda gösterilmiştir elektrik devresi Tüm bileşenleri ESP8266 modülüne bağlama:


Lütfen MOSFET transistörünü kullanıyorsanız, ESP8266 modülünün ve transistörün pimi 5 arasında bir direnç gerekmez.

Tamamen toplanan proje Aşağıdaki fotoğrafta gösterilen:


FTDI modülünü kullanarak bir ESP8266 modülünü sallayın ve 12 V'luk güç kaynağını Jack'e bağlayın. Bağlanmak için önerilen pimleri kullandıysanız, krokiden herhangi bir şeyi değiştirmek zorunda değilsiniz.

Şimdi parmağınızı sensöre yaslanabilirsiniz: Kilit, parmak izinize cevap vermelidir. Aşağıdaki video, otomatik bir "akıllı" bir kale projesini çalışır:

"Smart Castle" projesinin daha da gelişmesi

Projemizde yayınlandı uzaktan kumanda Bir parmak izi kullanarak kapı kilidi.

Eskiz ve çemberlemeyi değiştirebilir, değiştirebilirsiniz. Örneğin, 3D yazıcınızı, manipülatörünüzü veya quadcopter'ınızı yönetmek için rölenin üzerindeki kapı elektronik kilidini değiştirebilirsiniz ...

Seninizi geliştirebilirsin akıllı ev"Örneğin, Arduino'daki sulama sistemini uzaktan etkinleştirin veya odadaki ışığı ekleyin ... Unutmayın ki, ADafRuit IO'yu kullanarak neredeyse sınırsız sayıda cihazı aynı anda etkinleştirebileceğinizi unutmayın.

Yorumlarınızı, sorularınızı ve paylaşımınızı bırakın kişisel deneyim altında. Yeni fikirler ve projeler genellikle tartışmada doğar!

Bu derste, kalotiyi aboneliği iptal edecek basit bir sistem yapmayı öğreneceğiz. elektronik anahtar (Etiket).

Gelecekte, işlevselliği iyileştirebilir ve genişletebilirsiniz. Örneğin, "Yeni tuşlar ekle ve onları hafızadan sil" ekleyin. Temel durumda, ne zaman basit bir örnek düşünün eşsiz tanımlayıcı Anahtar, program kodunda önceden ayarlanmıştır.

Bu derste ihtiyacımız olacak:

Projeyi uygulamak için kütüphaneler kurmamız gerekiyor:

2) Şimdi, anahtar çalışıp kilit açıldığında ve kilit açıldığında ikinci sinyali açarsa, sinyale hizmet edecek olan zil sesi bağlamanız gerekir.

Buzzer aşağıdaki sıraya bağlıdır:

Arduino. Zeki
5v Vcc.
GND. GND.
pin 5. İo.

3) Bir servo bir kilit açma mekanizması olarak kullanılacaktır. Servo, sizin için gereken boyut ve çabaya bağlı olarak herhangi bir servo oluşturur. Servo Drive 3 kişisine sahiptir:

Daha canlı olarak, aşağıdaki resimdeki tüm modülleri nasıl bağladığımızı görebilirsiniz:

Şimdi, eğer her şey bağlıysa, programlamaya gidebilirsiniz.

Kroki:

#Dahil etmek. #Dahil etmek. #Dahil etmek. // kütüphane "rfid". #Define SS_PIN 10 #DEFINE RST_PIN 9 MFRC522 MFRC522 (SS_PIN, RST_PIN); imzasız uzun UIDDEC, UIDDECMP; // Ondalık format servo servodaki etiket etiketi için; Geçersiz kurulum () () (Serial.Begin (9600); serial.println ("kartı bekliyorum ..."); spi.begin (); // SPI / init SPI veriyolunun başlatılması. Mfrc522.pcd_init (); // Başlatma MFRC522 / init MFRC522 kartı. Servo.attach (6); servo.write (0); // Sunucuyu kapalı tasarrufa takın) Void Loop () (// Etiket (! Mfrc522.picc_isnewcardPresent) (! )) (Dönüş;) // Seçme (! Mfrc522.picc_readcardSerial ()) (iade;) UIDDEC \u003d 0; // İhraç seri numarası Etiketler. için (bayt i \u003d 0; ben< 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); // Делаем ses sinyali, Servo.write açma (90); // serviyi 90 derecelik bir açıyla çevirin (herhangi bir mekanizmayı sökme: vana, anahtarı çevirin, vb.) Gecikme (3000); // 3 saniye duraklatın ve mekanizma kilitlenir. Ton (5, 500, 500); // bir bip sesi çıkarın) servo.write (0); // servisini kapalı tasarrufta yükleyin)

Eskizi daha ayrıntılı olarak inceleyeceğiz:

UID kartlarını (Etiketler) bulmak için, bu kroki Arduino'da yazmanız gerekir, yukarıda belirtilen şemayı toplayın ve konsolu açın (seri portun izlenmesi). Etiketi RFID'ye getirdiğinizde, konsoldaki sayı

Elde edilen UID aşağıdaki satıra girilmelidir:

Eğer (UIDDEC \u003d\u003d 3763966293) // UID etiketlerini karşılaştırın Belirtilere eşitse, servo vanayı açar.

Her kartın benzersiz bir tanımlayıcısına sahiptir ve tekrarlanmaz. Böyle bir şekilde, programa ayarladığınız bir kart getirdiğinizde, sistem bir servo kullanarak erişimi açacaktır.

Video: