ev

Arduino istifadə edərək RFID kilidinin yaradılması. Arduino-da DIY kod kilidi

Kod kilidi Arduino-da DIY


Fon

Elə oldu ki, iş yerində qapımıza kombinasiyalı qıfıl quraşdırmaq qərarına gəldik, çünki biz daim ofisə girib-çıxırıq, onun qapısı sakinlərin yoxluğunda daim bağlı olmalıdır. Açarlar çox vaxt içəridə unudulur. Ümumiyyətlə, birləşmiş kilidin əla bir həll olduğuna qərar verdik.

Çinin birə bazarlarını və ebay-ı gəzərək ucuz və ya daha az ciddi bir şey tapmadım və bunu özüm etmək qərarına gəldim. Dərhal deyim ki, Arduino platforması sadəliyinə görə seçilib, çünki mikrokontrollerlərlə ümumiyyətlə təcrübəm olmayıb.

Qapıda, qapının kənarında, parolun daxil edildiyi bir klaviatura olmalıdır içəri strukturun qalan hissəsi sabitlənmişdir. Qapının tam bağlanmasına nəzarət etmək üçün qamış açarı istifadə olunur. Ofisdən çıxanda adam klaviaturada “*” sıxır və yaxınlaşanla qapının bağlanmasını gözləmədən öz işinə davam edir, qapı tam bağlananda qamış açarı bağlanır və qıfıl bağlanır. . Qapı 4 rəqəmli parol daxil edib “#” düyməsini sıxmaqla açılır.

Aksesuarlar

Arduino UNO = 18 dollar
Arduino protoshield + çörək lövhəsi = 6 dollar
L293D = 1 dollar
Bradboard üçün məftil dəsti 30 ədəd = 4 dollar
2 RJ45 rozetka = 4 dollar
2 RJ45 fiş = 0,5 dollar
mərkəzi kilidləmə aktuatoru = 250 rub.
Reed açarı = köhnə pəncərədən sərbəst cırılmışdır.
Nəhəng metal kilid = pulsuz
Bir yarım millimetr dəmirdən hazırlanmış köhnə D-LINK hub-dan korpus = pulsuz
12 və 5V üçün eyni D-LINK hubdan enerji təchizatı = həm də pulsuz
Bütün bunları bədənə bağlamaq üçün bir dəstə vint və qoz-fındıq = 100 rubl.
-dən uzaqdan idarəetmə oğurluq siqnalı= pulsuz.

Cəmi: 33,5 dollar və 350 rubl.

O qədər də az deyil, deyəcəksən və mütləq haqlı olacaqsan, amma zövq üçün pul ödəməlisən! Öz əlinizlə bir şey yığmaq həmişə xoşdur. Bundan əlavə, Arduino olmadan çılpaq MK istifadə etsəniz, dizayn dəyəri xeyli azaldıla bilər.

Montaj üçün hazırlıq

Aktuator dizaynının əsas elementinin alınması haqqında bir neçə söz demək istərdim. Yerli bir avtomobil mağazası mənə iki növ ötürücü təklif etdi: “iki naqilli və beşli”. Satıcının dediyinə görə, onlar tamamilə eyni idi və naqillərin sayındakı fərq tamamilə heç nə demək deyildi. Ancaq sonradan məlum olduğu kimi, bu belə deyil! Mən iki naqilli bir cihaz seçdim, o, 12V ilə işləyirdi. Beş naqilli dizayn qolun hərəkətini idarə etmək üçün məhdudlaşdırıcı açarlara malikdir. Yanlış aldığımı yalnız onu sökəndə başa düşdüm və onu dəyişdirmək üçün çox gec idi. Qolun vuruşu mandalı düzgün şəkildə geri çəkmək üçün çox qısa oldu, buna görə də onu bir az dəyişdirmək, yəni aktuator qolunun vuruşunu qısaltmış iki rezin yuyucunu çıxarmaq lazım idi. Bunun üçün cəsədi uzununa mişarlamaq lazım idi adi mişar, çünki ikinci yuyucu içəridə idi. Mavi elektrik lenti, həmişə olduğu kimi, gələcəkdə onu yenidən yığarkən bizə kömək etdi.

Ötürücü mühərriki idarə etmək üçün biz 1200 mA-a qədər pik yükə tab gətirə bilən L293D motor sürücüsündən istifadə etdik; ötürücü mühərriki dayandırdıqda pik yük yalnız 600 mA-a qədər artdı.

Klaviaturadan, dinamikdən və iki LED-dən kontaktlar təhlükəsizlik siqnalının idarəetmə panelindən çıxarılıb. Uzaqdan idarəetmə və əsas cihazın bükülmüş cüt və RJ45 konnektorlarından istifadə etməklə birləşdirilməli idi.

Proqramlaşdırma.

Beləliklə, indiyə qədər Arduino proqramlaşdırma təcrübəm yox idi. Başqalarının işlərindən və arduino.cc saytından məqalələrdən istifadə etdim. Maraqlanan hər kəs bu çirkin koda baxa bilər :)

Foto və video

"AlexGyver" YouTube kanalının aparıcısından öz əlləri ilə elektron kilid düzəltməyi xahiş etdilər. Arduino-da elektron kilidlər haqqında video seriyasına xoş gəlmisiniz. IN ümumi kontur usta ideyanı izah edəcək.

Elektron kilid sistemi yaratmaq üçün bir neçə variant var. Ən çox qapıları, çekmeceleri və şkafları bağlamaq üçün istifadə olunur. Həm də keşlər və gizli seyflər yaratmaq üçün. Buna görə də, işləmək üçün əlverişli olan və sistemin strukturunu içəridən və xaricdən aydın və ətraflı şəkildə göstərə bilən bir plan tərtib etməlisiniz. Buna görə qapı ilə bir çərçivə düzəltməyə qərar verdim. Bunun üçün sizə lazım olacaq kvadrat şüa 30 x 30. Kontrplak 10mm. Qapı menteşələri. Əvvəlcə faner qutusu düzəltmək istədim, amma otağın ehtiyat hissələri ilə dolu olduğunu xatırladım. Belə bir qutu qoymaq üçün heç bir yer yoxdur. Buna görə də maket hazırlanacaq. Kimsə özü üçün elektron qıfıl quraşdırmaq istəyirsə, o zaman tərtibata baxaraq hər şeyi asanlıqla təkrarlaya bilər.

Bu Çin mağazasında bir qala üçün lazım olan hər şeyi tapa bilərsiniz.

Məqsəd ən səmərəli sxemləri və proqram təminatını inkişaf etdirməkdir elektron qıfıllar. Siz bu sistemləri qapılarınıza, çekmecelerinize, şkaflarınıza və gizlənəcək yerlərinizə quraşdırmaq üçün bu nəticələrdən istifadə edə bilərsiniz.

Qapı hazırdır. İndi biz elektron şəkildə necə açılıb-bağlanacağımızı anlamalıyıq. Aliexpress-dən güclü bir solenoid mandalı bu məqsədlər üçün uyğundur (yuxarıdakı mağazaya keçid). Terminallara gərginlik tətbiq etsəniz, açılacaq. Bobin müqaviməti demək olar ki, 12 ohmdur, yəni 12 volt gərginlikdə bobin təxminən 1 amper istehlak edəcəkdir. Bu vəzifənin öhdəsindən də gəlmək olar litium batareya və gücləndirici modul. Müvafiq gərginliyə uyğunlaşdırın. Baxmayaraq ki, bir az daha çox mümkündür. Qapı kənarından tutmaması və çırpılaraq bağlana bilməsi üçün qapının içərisinə məsafədən bərkidilir. Mandalın metal qutu şəklində bir qarşılığı olmalıdır. Onsuz istifadə etmək əlverişsiz və düzgün deyil. Ən azı normal işləmə görünüşünü yaratmaq üçün bir addım quraşdırmalı olacağıq.

Boş rejimdə mandalı normal şəkildə açılır, yəni qapıda bir qolu varsa, bir nəbz tətbiq edirik və qapını sapı ilə açırıq. Ancaq bir yay istifadə etsəniz, bu üsul artıq uyğun deyil. Gücləndirici çevirici yükün öhdəsindən gələ bilmir. Yaylı qapını açmaq üçün daha böyük batareyalar və daha güclü çeviricidən istifadə etməli olacaqsınız. Və ya şəbəkə enerji təchizatı istifadə edin və sistemin muxtariyyətini unutun. Çin mağazalarında kilidlər var böyük ölçülər. Onlar çekmeceler üçün uyğundur. Güc bir rele və ya mosfet tranzistoru və ya eyni tranzistorda bir güc açarı istifadə edərək verilə bilər. Daha maraqlı və daha ucuz bir seçim, hər hansı bir kilidləmə elementi - bir mandalı və ya daha ciddi bir bolt ilə birləşdirici çubuğa qoşulmuş bir servo sürücüdür. Birləşdirici çubuq kimi fəaliyyət göstərmək üçün bir parça polad toxuculuq iynəsinə də ehtiyacınız ola bilər. Belə bir sistem yüksək cərəyan tələb etmir. Ancaq daha çox yer tutur və daha hiyləgər nəzarət məntiqinə malikdir.

İki növ servo var. Ciddi metal sancaqlardakı deliklərə asanlıqla itələnə bilən kiçik zəiflər və böyük güclülər. Göstərilən hər iki variant həm qapıda, həm də işləyir çekmeceler. Çıxarılan divarda bir deşik açaraq qutu ilə işləməli olacaqsınız.

İkinci hissə

Elə oldu ki, iş yerində qapımıza kombinasiyalı qıfıl quraşdırmaq qərarına gəldik, çünki biz daim içəri qaçırıq - ofisdən qaçırıq, qapısı sakinlərin olmadığı zaman daim bağlanmalıdır. Açarlar çox vaxt içəridə unudulur. Ümumiyyətlə, birləşmiş kilidin əla bir həll olduğuna qərar verdik.

Çinin birə bazarlarını və ebay-ı gəzərək ucuz və ya daha az ciddi bir şey tapmadım və bunu özüm etmək qərarına gəldim. Dərhal deyim ki, Arduino platforması sadəliyinə görə seçilib, çünki mikrokontrollerlərlə ümumiyyətlə təcrübəm olmayıb.

İdeya

Qapının xarici tərəfində parolun daxil olduğu bir klaviatura olmalıdır və strukturun qalan hissəsi içəridə sabitlənməlidir. Qapının tam bağlanmasına nəzarət etmək üçün qamış açarı istifadə olunur. Ofisdən çıxanda adam klaviaturada “*” sıxır və yaxınlaşanla qapının bağlanmasını gözləmədən öz işinə davam edir, qapı tam bağlananda qamış açarı bağlanır və qıfıl bağlanır. . Qapı 4 rəqəmli parol daxil edib “#” düyməsini sıxmaqla açılır.

Aksesuarlar

Arduino UNO = 18 dollar
Arduino protoshield + çörək lövhəsi = 6 dollar
L293D = 1 dollar
Bradboard üçün məftil dəsti 30 ədəd = 4 dollar
2 RJ45 rozetka = 4 dollar
2 RJ45 fiş = 0,5 dollar
mərkəzi kilidləmə aktuatoru = 250 rub.
Reed açarı = köhnə pəncərədən sərbəst cırılmışdır.
Nəhəng metal kilid = pulsuz
Bir yarım millimetr dəmirdən hazırlanmış köhnə D-LINK hub-dan korpus = pulsuz
12 və 5V üçün eyni D-LINK hubdan enerji təchizatı = həm də pulsuz
Bütün bunları bədənə bağlamaq üçün bir dəstə vint və qoz-fındıq = 100 rubl.
Təhlükəsizlik siqnalizasiya idarəetmə paneli = pulsuz.

Ümumi: 33,5 dollar və 350 rub.

O qədər də az deyil, deyəcəksən və mütləq haqlı olacaqsan, amma zövq üçün pul ödəməlisən! Öz əlinizlə bir şey yığmaq həmişə xoşdur. Bundan əlavə, Arduino olmadan çılpaq MK istifadə etsəniz, dizayn dəyəri xeyli azaldıla bilər.

Montaj üçün hazırlıq

Aktuator dizaynının əsas elementinin alınması haqqında bir neçə söz demək istərdim. Yerli bir avtomobil mağazası mənə iki növ ötürücü təklif etdi: “iki naqilli və beşli”. Satıcının dediyinə görə, onlar tamamilə eyni idi və naqillərin sayındakı fərq tamamilə heç nə demək deyildi. Ancaq sonradan məlum olduğu kimi, bu belə deyil! Mən iki naqilli bir cihaz seçdim, o, 12V ilə işləyirdi. Beş naqilli dizayn qolun hərəkətini idarə etmək üçün məhdudlaşdırıcı açarlara malikdir. Yanlış aldığımı yalnız onu sökəndə başa düşdüm və onu dəyişdirmək üçün çox gec idi. Qolun vuruşu mandalı düzgün şəkildə geri çəkmək üçün çox qısa oldu, buna görə də onu bir az dəyişdirmək, yəni aktuator qolunun vuruşunu qısaltmış iki rezin yuyucunu çıxarmaq lazım idi. Bunun üçün gövdəni adi bir mişarla uzununa mişar etmək lazım idi, çünki ikinci yuyucu içəridə idi. Mavi elektrik lenti, həmişə olduğu kimi, gələcəkdə onu yenidən yığarkən bizə kömək etdi.
Ötürücü mühərriki idarə etmək üçün biz 1200 mA-a qədər pik yükə tab gətirə bilən L293D motor sürücüsündən istifadə etdik; ötürücü mühərriki dayandırdıqda pik yük yalnız 600 mA-a qədər artdı.
Klaviaturadan, dinamikdən və iki LED-dən kontaktlar təhlükəsizlik siqnalının idarəetmə panelindən çıxarılıb. Uzaqdan idarəetmə və əsas cihazın bükülmüş cüt və RJ45 konnektorlarından istifadə etməklə birləşdirilməli idi.

Proqramlaşdırma.

Beləliklə, indiyə qədər Arduino proqramlaşdırma təcrübəm yox idi. Başqalarının işlərindən və arduino.cc saytından məqalələrdən istifadə etdim. Maraqlanan hər kəs bu çirkin koda baxa bilər :)

Foto və video



Arduino və aktuator


güc qurğusu


Klaviatura


Espanolette (gücləndiriciyə metal dişli ilə qoşulmuş və gözəllik üçün istilik büzüşməsi ilə örtülmüşdür)

Cihazın işləmə prosesinin videosu:

Tərəqqi hələ də dayanmır və "Ağıllı kilidlər" getdikcə mənzillərin, qarajların və evlərin qapılarında görünür.

Bənzər bir kilid smartfonunuzdakı düyməni basdığınız zaman açılır. Xoşbəxtlikdən, smartfonlar və planşetlər artıq gündəlik həyatımıza daxil olub. Bəzi hallarda “ağıllı kilidlər” Google Disk kimi “bulud xidmətləri”nə qoşulur və uzaqdan açılır. Bundan əlavə, bu seçim qapını digər insanlara açmağa imkan verir.

Bu layihə Arduino-da dünyanın istənilən yerindən uzaqdan idarə oluna bilən ağıllı kilidin DIY versiyasını həyata keçirəcək.

Bundan əlavə, layihəyə barmaq izini müəyyən etdikdən sonra kilidi açmaq imkanı əlavə edilib. Bu məqsədlə barmaq izi sensoru inteqrasiya olunacaq. Hər iki qapının açılması variantı Adafruit IO platforması ilə təchiz ediləcək.

Belə bir kilid Ağıllı Ev layihənizdə əla ilk addım ola bilər.

Barmaq izi sensorunun qurulması

Barmaq izi sensoru ilə işləmək üçün Arduino üçün sensorun qurulması prosesini xeyli asanlaşdıran əla kitabxana var. Bu layihə istifadə edir Arduino Uno. İnternetə qoşulmaq üçün Adafruit CC3000 lövhəsi istifadə olunur.

Gücü birləşdirməyə başlayaq:

  • Arduino lövhəsindən 5V pinini qırmızı elektrik relsinə qoşun;
  • Arduino-dan olan GND pin lehimsiz dövrə lövhəsindəki mavi relsə qoşulur.

Barmaq izi sensorunu birləşdirməyə davam edək:

  • Əvvəlcə gücü birləşdirin. Bunun üçün qırmızı tel +5 V relsinə, qara tel isə GND relsinə birləşdirilir;
  • Sensorun ağ teli Arduino-nun 4-cü pininə qoşulur.
  • Yaşıl tel mikrokontrolörün 3-cü pininə keçir.

İndi CC3000 moduluna keçək:

  • CC3000 lövhəsindən IRQ pinini Arduino-da 2-ci pinlə birləşdiririk.
  • VBAT - 5-i bağlamaq üçün.
  • CS - pin 10 üçün.
  • Bundan sonra, SPI pinlərini Arduino-ya qoşmalısınız: MOSI, MISO və CLK - müvafiq olaraq 11, 12 və 13-cü pinlərə.

Yaxşı, sonunda enerji təmin etməlisiniz: Vin - Arduino 5V-ə (dövrə lövhənizdəki qırmızı rels) və GND-dən GND-yə (çörək lövhəsindəki mavi rels).

Tam yığılmış layihənin fotoşəkili aşağıda göstərilir:

Məlumatları Adafruit IO-ya yükləyəcək eskiz hazırlamazdan əvvəl barmaq iziniz haqqında məlumatları sensora ötürməlisiniz. Yoxsa gələcəkdə səni tanımaz;). Arduino-dan istifadə edərək barmaq izi sensorunu ayrıca kalibrləməyi tövsiyə edirik. Əgər bu sensorla ilk dəfə işləyirsinizsə, kalibrləmə prosesi və barmaq izi sensoru ilə işləmək üçün ətraflı təlimatlarla tanış olmağı tövsiyə edirik.

Əgər bunu etməmisinizsə, Adafruit IO ilə hesab yaradın.

Bundan sonra biz Arduino-da “ağıllı kilid”in yaradılmasının növbəti mərhələsinə keçə bilərik: daha doğrusu, məlumatları Adafruit IO-ya ötürəcək eskizin hazırlanması. Proqram kifayət qədər həcmli olduğundan, bu məqalədə biz onun yalnız əsas hissələrini vurğulayacağıq və nəzərdən keçirəcəyik, sonra isə tam eskizini yükləyə biləcəyiniz GitHub-a keçid təqdim edəcəyik.

Eskiz bütün lazımi kitabxanaları yükləməklə başlayır:

#daxildir

#daxildir

#daxildir

#daxil edin "Adafruit_MQTT.h"

#daxil edin "Adafruit_MQTT_CC3000.h"

#daxildir

#daxildir >

Bundan sonra, SSID və şifrəni göstərərək WiFi şəbəkənizin parametrlərini daxil edərək eskizi bir az düzəltməlisiniz:

#WLAN_SECURITY WLAN_SEC_WPA2> müəyyən edin

Bundan əlavə, Adafruit IO hesabınıza daxil olmaq üçün adınızı və AIO açarınızı daxil etməlisiniz:

#AIO_SERVERPORT 1883 təyin edin

#AIO_USERNAME "adafruit_io_name" təyin edin

#AIO_KEY "adafruit_io_key"> müəyyən edin

Aşağıdakı sətirlər barmaq izi sensorundan məlumatların qarşılıqlı əlaqəsi və işlənməsi üçün məsuliyyət daşıyır. Sensor işə salınıbsa (barmaq izi uyğun gəlir), "1" olacaq:

const char FINGERPRINT_FEED PROGMEM = AIO_USERNAME "/feeds/barmaq izi";

Adafruit_MQTT_Publish barmaq izi = Adafruit_MQTT_Publish(&mqtt, FINGERPRINT_FEED);

Bundan əlavə, sensorumuz üçün SoftwareSerial obyektinin nümunəsini yaratmalıyıq:

SoftwareSerial mySerial(3, 4);

Bundan sonra sensorumuz üçün bir obyekt yarada bilərik:

Adafruit_Fingerprint barmaq = Adafruit_Fingerprint(&mySerial);

Eskizin içərisində gələcəkdə hansı barmaq identifikatorunun kilidi aktivləşdirməli olduğunu göstəririk. Bu nümunə sensor tərəfindən istifadə edilən ilk barmaq izinin identifikatoruna uyğun gələn 0-dan istifadə edir:

int barmaq ID = 0;

Bundan sonra layihəmizdə sayğac və gecikməni işə salırıq. Əslində, kilidin açıldıqdan sonra avtomatik olaraq işə salınmasını istəyirik. Bu nümunə 10 saniyəlik gecikmədən istifadə edir, lakin siz bu dəyəri ehtiyaclarınıza uyğunlaşdıra bilərsiniz:

int activationCounter = 0;

int lastActivation = 0;

int activationTime = 10 * 1000;

Setup() funksiyasının korpusunda biz barmaq izi sensorunu işə salırıq və CC3000 çipinin WiFi şəbəkənizə qoşulmasını təmin edirik.

Loop() funksiyasının gövdəsində biz Adafruit IO-ya qoşuluruq. Aşağıdakı xətt buna cavabdehdir:

Adafruit IO platformasına qoşulduqdan sonra sonuncu barmaq izini yoxlayırıq. Əgər uyğun gəlirsə və kilid aktiv deyilsə, biz emal üçün Adafruit IO-ya "1" göndəririk:

əgər (barmaq izi ID == barmaq ID && lockState == yanlış) (

Serial.println(F("Giriş verilib!"));

lockState = doğru;

Serial.println(F("Uğursuz"));

Serial.println(F("OK!"));

lastActivation = millis();

Əgər loop() funksiyası daxilində kilid aktivləşdirilibsə və yuxarıda göstərilən gecikmə dəyərinə çatmışıqsa, “0” göndəririk:

əgər ((activationCounter - lastActivation > activationTime) && lockState == true) (

lockState = false;

əgər (! fingerprint.publish(state)) (

Serial.println(F("Uğursuz"));

Serial.println(F("OK!"));

Kodun son versiyasını GitHub-da yükləyə bilərsiniz.

Layihəmizi sınaqdan keçirməyin vaxtı gəldi! Arduino üçün bütün lazımi kitabxanaları yükləməyi və quraşdırmağı unutmayın!

Eskizdə bütün lazımi dəyişiklikləri etdiyinizə əmin olun və onu Arduino-ya yükləyin. Bundan sonra Serial Monitor pəncərəsini açın.

Arduino-ya qoşulduqda WiFi şəbəkələri, barmaq izi sensoru qırmızı yanıb-sönəcək. Barmağınızı sensorun üzərinə qoyun. ID nömrəsi serial monitor pəncərəsində göstərilməlidir. Uyğundursa, "OK!" mesajı görünəcək. Bu o deməkdir ki, məlumat Adafruit IO serverlərinə göndərilib.

Bir LED nümunəsindən istifadə edərək kilidin sonrakı konfiqurasiyası üçün diaqram və eskiz

İndi isə layihənin birbaşa idarəetməyə cavabdeh olan hissəsi ilə məşğul olaq qapı kilidi. Simsiz şəbəkəyə qoşulmaq və kilidi aktivləşdirmək/deaktiv etmək üçün sizə əlavə Adafruit ESP8266 modulu lazımdır (ESP8266 modulunun Adafruit-dən olması lazım deyil). Aşağıdakı nümunədən istifadə edərək, Adafruit IO istifadə edərək iki platforma (Arduino və ESP8266) arasında məlumat mübadiləsinin nə qədər asan olduğunu qiymətləndirə bilərsiniz.

Bu bölmədə biz birbaşa kilidlə işləməyəcəyik. Bunun əvəzinə, biz sadəcə olaraq LED-i kilidin daha sonra birləşdiriləcəyi pinlə birləşdirəcəyik. Bu, bizə kilid dizaynının təfərrüatlarını araşdırmadan kodumuzu sınamaq imkanı verəcək.

Sxem olduqca sadədir: əvvəlcə ESP8266-nı çörək lövhəsinə quraşdırın. Bundan sonra LED-i quraşdırın. Unutmayın ki, LED-in uzun (müsbət) ayağı bir rezistor vasitəsilə bağlanır. Rezistorun ikinci ayağı ESP8266 modulunda 5-ci pinlə birləşdirilir. LED-in ikincisini (katodunu) ESP8266-dakı GND pininə bağlayırıq.

Tamamilə yığılmış dövrə aşağıdakı fotoda göstərilmişdir.


İndi bu layihə üçün istifadə etdiyimiz eskizə baxaq. Yenə də kod kifayət qədər böyük və mürəkkəbdir, ona görə də biz yalnız onun əsas hissələrinə baxacağıq:

Lazımi kitabxanaları birləşdirərək başlayırıq:

#daxildir

#daxil edin "Adafruit_MQTT.h"

#daxil edin "Adafruit_MQTT_Client.h"

WiFi parametrlərinin konfiqurasiyası:

#WLAN_SSID "wifi_ssid"inizi təyin edin

#WLAN_PASS "wifi_parolunuzu" təyin edin

#WLAN_SECURITY WLAN_SEC_WPA2-ni təyin edin

Biz həmçinin Adafruit IO parametrlərini konfiqurasiya edirik. Əvvəlki hissədə olduğu kimi:

#AIO_SERVER "io.adafruit.com"u müəyyən edin

#AIO_SERVERPORT 1883 təyin edin

#AIO_USERNAME "adafruit_io_username" təyin edin

#AIO_KEY "adafruit_io_key" təyin edin

LED-i hansı pinlə bağladığımızı göstəririk (gələcəkdə bu bizim kilidimiz və ya rölemiz olacaq):

int relayPin = 5;

Əvvəlki hissədə olduğu kimi barmaq izi sensoru ilə qarşılıqlı əlaqə:

const char LOCK_FEED PROGMEM = AIO_USERNAME "/feeds/lock";

Adafruit_MQTT_Subscribe lock = Adafruit_MQTT_Subscribe(&mqtt, LOCK_FEED);

Setup() funksiyasının gövdəsində göstəririk ki, LED-in qoşulduğu pin OUTPUT rejimində işləməlidir:

pinMode(relayPin, OUTPUT);

Loop() döngəsi daxilində əvvəlcə Adafruit IO-ya qoşulduğumuzu yoxlayırıq:

Bundan sonra hansı siqnalın alındığını yoxlayırıq. Əgər "1" ötürülürsə, biz daha əvvəl elan etdiyimiz, LED-imizin bağlı olduğu pinini aktivləşdiririk. "0" alsaq, kontaktı "aşağı" vəziyyətinə köçürürük:

Adafruit_MQTT_Subscribe *abunə;

isə ((abunə = mqtt.readSubscription(1000)))) (

əgər (abunə == &lock) (

Serial.print(F("Aldım:"));

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

// Komandanı sətir məlumatında saxlayın

String əmri = String((char *)lock.lastread);

əgər (əmr == "0") (

digitalWrite(relayPin, LOW);

əgər (əmr == "1") (

digitalWrite(relayPin, HIGH);

Tap son versiya Eskizi GitHub-da tapa bilərsiniz.

Layihəmizi sınaqdan keçirməyin vaxtı gəldi. Arduino-nuz üçün lazım olan bütün kitabxanaları yükləməyi və eskizdə düzgün dəyişikliklər edib-etmədiyinizi yoxlamağı unutmayın.

ESP8266 çipini proqramlaşdırmaq üçün sadə USB-FTDI çeviricisindən istifadə edə bilərsiniz.

Eskizi Arduino-ya yükləyin və Serial Monitor pəncərəsini açın. Bu mərhələdə biz sadəcə Adafruit IO-ya qoşula bilib-bilmədiyimizi yoxladıq: mövcud funksionallığa daha sonra baxacağıq.

Layihənin sınaqdan keçirilməsi

İndi test etməyə başlayaq! Feeds menyusunun altında, Adafruit IO-nun istifadəçi menyusuna keçin. Barmaq izi və kilid kanallarının yaradılıb-yaradılmadığını yoxlayın (aşağıdakı çap ekranında bunlar barmaq izi və kilid xətləridir):


Əgər onlar mövcud deyilsə, onları əl ilə yaratmalı olacaqsınız.

İndi barmaq izi və kilid kanalları arasında məlumat mübadiləsini təmin etməliyik. Barmaq izi kanalı "1" dəyərini aldıqda kilid kanalı "1" qiymətini almalıdır və əksinə.

Bunun üçün biz çox güclü Adafruit IO alətindən istifadə edirik: tetikler. Tətiklər əsasən konfiqurasiya edilmiş kanallara tətbiq edə biləcəyiniz şərtlərdir. Yəni, onlar iki kanalı birləşdirmək üçün istifadə edilə bilər.

Adafruit IO-da Tətiklər bölməsindən yeni reaktiv tətik yaradın. Bu, barmaq izi sensoru və kilid kanalları arasında məlumat mübadiləsini təmin edəcək:


Hər iki tetikleyici konfiqurasiya edildikdə belə görünməlidir:

Hamısı! İndi layihəmizi həqiqətən sınaqdan keçirə bilərik! Barmağımızı sensora qoyuruq və Arduino-nun məlumat ötürülməsinə uyğun gələn bir LED ilə necə göz qırpmağa başladığını görürük. Bundan sonra ESP8266 modulundakı LED yanıb-sönməyə başlamalıdır. Bu o deməkdir ki, o, MQTT vasitəsilə məlumat almağa başlayıb. Bu anda dövrə lövhəsindəki LED də yanmalıdır.

Eskizdə təyin etdiyiniz gecikmədən sonra (standart 10 saniyədir), LED sönəcək. Təbrik edirik! Dünyanın istənilən yerindən barmaq izinizlə LED-i idarə edə bilərsiniz!

Elektron kilidin qurulması

Layihənin son hissəsinə çatdıq: birbaşa əlaqə və nəzarət. elektron kilid Arduino və barmaq izi sensorundan istifadə etməklə. Layihə asan deyil, bütün mənbələri yuxarıda təqdim olunduğu formada istifadə edə bilərsiniz, lakin bir LED əvəzinə bir röleyi birləşdirə bilərsiniz.

Kilidi birbaşa birləşdirmək üçün əlavə komponentlərə ehtiyacınız olacaq: 12 V enerji təchizatı, gücü birləşdirmək üçün bir jak, tranzistor (V) bu misalda IRLB8721PbF MOSFET istifadə olunur, lakin başqa biri istifadə edilə bilər, məsələn, TIP102 bipolyar tranzistor. Bipolyar tranzistor istifadə edirsinizsə, bir rezistor əlavə etməlisiniz.

Aşağıda göstərilmişdir elektrik diaqramı bütün komponentləri ESP8266 moduluna qoşmaq:


Qeyd edək ki, MOSFET tranzistorundan istifadə edirsinizsə, ESP8266 modulunun 5-ci pin ilə tranzistor arasında rezistora ehtiyacınız olmayacaq.

Tam yığılmış layihə aşağıdakı fotoda göstərilir:


FTDI modulundan istifadə edərək ESP8266 modulunu gücləndirin və 12V enerji təchizatı yuvasına qoşun. Əgər əlaqə üçün yuxarıda tövsiyə olunan sancaqlardan istifadə etmisinizsə, eskizdə heç nəyi dəyişməli olmayacaqsınız.

İndi barmağınızı sensorun üzərinə qoya bilərsiniz: kilid barmaq izinizə cavab olaraq işləməlidir. Aşağıdakı video avtomatik smart kilid layihəsini göstərir:

Smart Lock layihəsinin sonrakı inkişafı

Layihəmizdə yayımlandı uzaqdan nəzarət barmaq izinizlə qapını kilidləyin.

Təcrübə etməkdən, eskizi və bağlamanı dəyişdirməkdən çekinmeyin. Məsələn, siz 3D printerinizin, robot qolunuzun və ya kvadrokopterinizin gücünü idarə etmək üçün elektron qapı kilidini rele ilə əvəz edə bilərsiniz...

Özünüzü inkişaf etdirə bilərsiniz ağıllı ev". Məsələn, Arduino-da suvarma sistemini uzaqdan aktivləşdirin və ya otaqda işıqları yandırın... Unutmayın ki, eyni zamanda Adafruit IO-dan istifadə edərək demək olar ki, qeyri-məhdud sayda cihazı aktivləşdirə bilərsiniz.

Şərhlərinizi, suallarınızı və paylaşın Şəxsi təcrübə aşağıda. Yeni ideyalar və layihələr tez-tez müzakirələrdə doğulur!

Bugünkü dərsimiz sadə kilidləmə sistemi yaratmaq üçün Arduino ilə RFID oxuyucudan necə istifadə etməkdir, sadə sözlərlə- RFID kilidi.

RFID (İngiliscə Radio Frequency Identification, radio tezlik identifikasiyası) sözdə transponderlərdə və ya RFID etiketlərində saxlanılan məlumatların radio siqnallarından istifadə edərək oxunduğu və ya yazıldığı obyektlərin avtomatik identifikasiyası üsuludur. İstənilən RFID sistemi oxuma qurğusundan (oxuyucu, oxucu və ya sorğulayıcı) və transponderdən (həmçinin RFID etiketi kimi tanınır, bəzən RFID etiketi termini də istifadə olunur) ibarətdir.

Bu dərslik Arduino ilə RFID etiketindən istifadə edəcək. Cihaz oxucunun yanına yerləşdirdiyimiz hər bir RFID etiketinin unikal identifikatorunu (UID) oxuyur və onu OLED displeydə göstərir. Əgər etiketin UID-i Arduino yaddaşında saxlanılan əvvəlcədən təyin edilmiş dəyərə bərabərdirsə, ekranda “Kilidi açıldı” mesajını görəcəyik. Unikal ID əvvəlcədən təyin edilmiş dəyərə bərabər deyilsə, "Kilidi açıldı" mesajı görünməyəcək - aşağıdakı fotoya baxın.

Qala bağlıdır

Kilid açıqdır

Bu layihəni yaratmaq üçün lazım olan hissələr:

  • RFID oxuyucu RC522
  • OLED displey
  • Çörək lövhəsi
  • Tellər

Əlavə təfərrüatlar:

  • Batareya (powerbank)

Layihənin komponentlərinin ümumi dəyəri təxminən $15 idi.

Addım 2: RFID Reader RC522

Hər bir RFID etiketində kiçik bir çip var (şəkildə ağ kart). Bu RFID kartında fənər yandırsanız, kiçik çipi və onu əhatə edən sarğı görə bilərsiniz. Bu çipin enerji yaratmaq üçün batareyası yoxdur. Bundan istifadə edərək simsiz olaraq oxucudan enerji alır böyük çarx. Belə bir RFID kartı 20 mm-ə qədər məsafədən oxumaq mümkündür.

Eyni çip RFID açar fob etiketlərində də mövcuddur.

Hər bir RFID etiketinin onu müəyyən edən unikal nömrəsi var. Bu, OLED displeydə göstərilən UID-dir. Bu UID istisna olmaqla, hər bir teq məlumatları saxlaya bilər. Bu tip kart 1 minə qədər məlumat saxlaya bilər. Təsirli, elə deyilmi? Bu xüsusiyyət bu gün istifadə edilməyəcək. Bu gün maraqlı olan hər şey UID ilə müəyyən bir kartı müəyyən etməkdir. RFID oxuyucusu və bu iki RFID kartının qiyməti təxminən 4 dollardır.

Addım 3: OLED Ekran

Dərsdə 0,96" 128x64 I2C OLED monitor istifadə olunur.

Bu Arduino ilə istifadə etmək üçün çox yaxşı ekrandır. Bu OLED displeydir və bu o deməkdir ki, onun aşağı enerji sərfiyyatı var. Bu displeyin enerji istehlakı 10-20 mA civarındadır və piksel sayından asılıdır.

Ekran 128x64 piksel təsvir ölçüsünə malikdir və kiçik ölçülüdür. İki ekran variantı var. Onlardan biri monoxrom, digəri isə dərsdə istifadə olunan kimi iki rəng göstərə bilər: sarı və mavi. Üst hissə ekran yalnız sarı ola bilər və Alt hissə- mavi.

Bu OLED displey çox parlaqdır və Adafruit-in bu displey üçün hazırladığı böyük və çox gözəl kitabxanaya malikdir. Bundan əlavə, displey I2C interfeysindən istifadə edir, ona görə də Arduino-ya qoşulmaq inanılmaz dərəcədə asandır.

Vcc və GND istisna olmaqla, yalnız iki teli birləşdirmək lazımdır. Arduino-da yenisinizsə və layihənizdə ucuz və sadə ekrandan istifadə etmək istəyirsinizsə, buradan başlayın.

Addım 4: Bütün hissələri birləşdirin

Başqa nə oxumaq