Menu
Jest wolny
Zameldować się
główny  /  PRZEZ / Zamek elektroniczny na Arduino Nano. Niezwykły zamek kodu na Arduino

Elektroniczny zamek na Arduino Nano. Niezwykły zamek kodu na Arduino

Wprowadzenie blokady drzwi kontrolowanej przez klucz częstotliwości radiowej.

Blokada działa w ten sposób: przyniósł nasze klucz (etykieta RFID) - zamknięta blokada, umieść klucz ponownie - otworzona blokada. Wizualizacja operacji zamka, stosuje się sześć dwóch diod LED (linijki). Podczas zamykania - Red Light działa, podczas otwierania jest zielony. Jeśli przynosisz kogoś innego, czerwone diody LED błysku.

Jako siłownik postanowiłem użyć napędu centralnego zamku samochodu. Możesz kupić nowy, możesz użyć ceny, różnica w cenie nie jest duża, więc użyłem nowego, jest niezawodna. Ręk napędowy podłączony z sektora. Spivenites nadal radzieccy, silni. Tak, i potężny "anty-wandty" Nie potrzebuję.

"Maszyna" jest kontrolowana przez dwa przewody. Jedna polaryzacja przedkłada pręt, odwrotna polaryzacja ciągnie pręta. Przy napięciu 12 woltów prąd wynosi 6 amperów, dużo ...
W "Maszyna do pisania" nie ma żadnych przełączników limitów.

W oparciu o fakt, że schemat blokady (na pomysł) ma gwarantowane odżywianie, bateria wynosi 12 woltów, aby zapewnić działanie blokady, w przypadku zniknięcia ~ 220. Opracowano sterowanie mostem "Maszyna". Specjalne kurczaki z programu jest jego nieliniowości, co zapewnia niezawodne działanie mechanizmu blokady, a jednocześnie - delikatny tryb działania "maszyny" i tranzystorów kluczowych.

Na diagramie (powyżej) ramię "zamknij" jest podświetlony na czerwono, a ramię "otwarte" - zielony. Ramiona pasują osobno przez rezystory (znajdujące się w zasilaczu). Dzielenie się ramionami mostu, wprowadzone do wykluczenia fałszywych pozytywów.

Objaśnienie: Przez rezystory 33m (na schemacie zasilania), 12 VOLT VOLTAGE opłaty kondensatory (2000 -mkf, w każdym ramieniu). Gdy sterownik kontroluje arduino_promini- 168 Na wejściu "Zamknij" (lub podobne do "Otwórz"), przez Optocouple PVT322 - otwierają się odpowiednie klawisze barku. Jednocześnie występuje następujące czynności: W momencie otwarcia kluczy energia z kondensatorów jest potężny "twirl" silnika "maszyna". Jako wydzielanie kondensatorów (tak się dzieje szybko) silnik "Maszyny" jest zasilany przez rezystor bieżący (33th). Z tego powodu, na końcu procesu "zamknięcia" - "odkrycia" zamku, pręt porusza się dość powoli.

Ta metoda zarządzania silnikiem jest optymalna.

Transformator diagramu blokowego zasilania. Ogólnie, schemat blokady jest zasilany przez baterię 12 V, 2,8 - i H. A schemat BP obsługuje baterię na poziomie nominalnym. LED "Sieć" wskazuje normalne działanie zasilania.

Wszystkie diody 1N4007 (zapomniały wskazać schemat, a osoba zadała pytanie - co?).

(1) Zgromadzony jest maksymalny ogranicznik prądu. Rezystor R. 1 Górny próg prądu jest ustawiony na 300..
Na integralny stabilizator LM317 (2) Podpisany stabilizator napięcia. Napięcie stabilizacyjne jest skonfigurowane przez rezystoraR. 2 . Napięcie na baterii powinno wynosić 13,7 V.

Napięcie z baterii serwowane jest w trzech punktach.
Przez rezystory (o 33 s) na (x), (y) - moc klawisza "sterownika" silnika "maszyn".

Większość ich urządzeń gromadzi się z faktu, że został złapany. Ten projekt nie jest wyjątkiem. Używam obudowy jako przypadku :) Z balastów elektronicznych:

Diody LEDS # -2 ... №-7 - dwa kolor. Znajdują się w linii. Służy do wizualizacji "otwarcia" i "zamykania" zamku. Przystrojenie.

Ten projekt jest modułowy, tj. Możesz podłączyć / wyłączyć różne elementy i uzyskać różne funkcje. Powyższe zdjęcia pokazują opcję z pełną funkcjonalnością, a mianowicie:

  • Zamykający mechanizm. Używane do otwierania i zamykania drzwi. Ten projekt omawia użycie trzech różnych mechanizmów:
    • Serwomechanizm. Są duże, są małe. Bardzo kompaktowy i w połączeniu z ciężką obudową - świetna opcja
    • Zamek elektryczny napęd samochodowy drzwi. Duża i potężna rzecz, ale zjada tylko szalone prądy
    • Solenoid Pike. Dobra opcjaPonieważ się slamuje

    W ustawieniach firmware można wybrać dowolne z trzech typów (ustawienie rodzaj blokady)

  • Przycisk wewnątrz. Służy do otwarcia i zamykania drzwi od wewnątrz. Można umieścić na uchwycie drzwi (z dłoni lub z boku palców), na samej drzwiach lub na dżemie
  • Przycisk na zewnątrz. Służy do zamykania drzwi, a także do przebudzenia z oszczędności energii. Można umieścić na uchwycie drzwi (z dłoni lub z boku palców), na samej drzwiach lub na dżemie
  • Kontekst na zamknięciu drzwi. Używany do automatycznego zamykania zamka podczas zamykania drzwi. Oni mogą być:
    • Przycisk zegara
    • Czujnik hali + magnes na samej drzwiach
    • Gercon + magnes na samej drzwiach
  • Sekret przycisk resetowania dostępu. Służy do zresetowania hasła / wprowadzania nowego hasła / zapamiętywania nowego klucza / kombinacji itp. Może być ukryty gdzieś w przypadku
  • Dioda LED Wskazać pracę. LED RGB, używane kolory czerwone i zielone (gdy mieszano jest żółty):
    • Gorite Green - Zamek jest otwarty. Gorbs nie zapominają zamknąć drzwi
    • Żółty płonie - system obudził się i oczekuje, że wprowadzanie hasła
    • Migający czerwony - usiadł baterię

Każdy z tych elementów można wyłączyć z systemu:

  • Usuwamy zamieszanie. W oprogramowaniu układowym w ustawieniach, również go wyłącz (ustawienie tail_button.). Teraz, aby zamknąć zamek, musisz nacisnąć przycisk.
  • Usuwamy przycisk na zewnątrz. W oprogramowaniu układowym w ustawieniach, również go wyłącz (ustawienie wake_button.). Teraz system nie musi się obudzić, budzi się sam (zużycie energii jest nieco większe). A także teraz nie mamy przycisku, aby zamknąć się na drzwiach wejściowych i potrzebujesz zamieszania. Albo zamek - TIKOLL
  • Usuwamy przycisk wewnętrzny. Ta opcja jest odpowiednia do szaf i sejfów. Nie musisz niczego zmieniać w ustawieniach
  • Usuwamy diodę LED. Nie musisz niczego zmieniać w ustawieniach
  • Przycisk resetowania dostępu można zniknąć po pierwszym użyciu lub przepisać kod dla siebie
  • Drzwi są zamknięte, klikając na zewnątrz - Obudź się, poczekaj na etykietę wejścia / RFID hasła / klucz elektroniczny / odcisk palca
  • Drzwi są zamknięte, system się obudził, czekając na hasło. Czas można skonfigurować (ustawienie czas spania.)
  • Drzwi są zamknięte, wprowadzono hasło / etykietę / klucz itp. - Otwarty
  • Drzwi są zamknięte, naciśnięte wewnątrz - otwarte
  • Drzwi są otwarte, kliknięcia z zewnątrz - zamknij
  • Drzwi są otwarte, wciśnięty wewnątrz - zamknij
  • Drzwi są otwarte, naciskane - zamknij

Blokada zapewnia pracę baterii w trybie oszczędzania niskiego źródła mocy (Włącz Wyłączenie: Setup sleep_enable.), mianowicie:

  • Budząc się co kilka sekund, postępuj zgodnie z wydarzeniem (opcjonalna opcja, jeśli nie ma przycisku na zewnątrz. Możesz włączyć w ustawieniu wake_button.)
  • Co kilka minut, aby monitorować napięcie Akum (ustawienie ON / OFF bateria_monitor.)
  • Jeśli akum zostanie zwolniony (napięcie jest ustawione w ustawieniu bat_low.):
    • otwarte drzwi (opcjonalne, można skonfigurować w oprogramowaniu układowym open_bat_low.)
    • zabronić dalszego otwarcia i zamykania
    • po kliknięciu przycisków, aby flashować czerwoną diodę LED
    • przestań oglądać zdarzenie (I.e. Hasło / etykietę itp.)

Gdy system nie spał, naciśnij przycisk Shift Hasło (ukryty przycisk). Znajdź B. tryb zmiany hasła:
Wprowadzamy hasło z numerów ( Maksymalnie 10 cyfr !!!)

  • Kliknięcie * Hasło jest rejestrowane w pamięci, a system wychodzi z zmiany hasła
  • Po kliknięciu hasła jest resetowany (możesz wprowadzić ponownie)
  • Jeśli nie naciskasz niczego 10 sekund, automatycznie zostaw tryb zmiany hasła, hasło pozostanie stare

Gdy system nie spał (obudziłem się przyciski lub snu jest wyłączone), kliknij *, aby wprowadzić tryb wpisu hasła
Jeśli system śpi i okresowo budzi się, aby sprawdzić zdarzenie, a następnie naciśnij * i przytrzymaj, aż czerwona dioda LED świeci się
Tryb wprowadzania hasła:

  • Przetwarzanie hasła jest wykonane w taki sposób, że poprawne hasło jest liczone tylko wtedy, gdy jest ustawiony na prawidłową sekwencję liczb, czyli, jeśli hasło ma 345, a następnie można wprowadzić dowolne numery, aż pojawi się sekwencja 345 30984570345 otworzy blokadę, ponieważ kończy 345.
  • Jeśli hasło zostanie wprowadzone poprawnie, drzwi będą otwarte
  • Jeśli nic nie naciska, po 10 sekundach, system powróci do zwykłego trybu (Duty)
  • Jeśli klikniesz #, natychmiast wyjdź z trybu wprowadzania hasła
  • naciśnij sekretny przycisk Zmiana hasła w trybie wprowadzania hasła, to wyjdziesz z niego

Mam domek, jak większość, z których jest związany ze słowami: odpoczynku, kebab, komfortem i innym przyjemnym duchem i korpusem ruchu, ale jest tył brzeg: Ogród, Dig, Naprawa, Budownictwo itp.

Przez 10 lat staramy się zastanowić i stworzyć maksymalny komfort na naszym Dachie. Realizujemy, naprawiamy itp. Dom, szopa, kąpiel ... .. I wreszcie przyszedł na uliczne ogrodzenie, bramki i bramy. Czy to sumienie, budżet i wygodę.

Po omówieniu niektórych szczegółów przyjęto, że brama powinna być opóźniona na automatyzacji. Cóż, furtka ma pewne właściwości SCOIT. Dzięki bramie pytanie zostało rozwiązane przez kupowanie zestawu automatyki (napęd, szynę, konsola itp.), A za pomocą bramy potrzebnej do rozwiązania pewnych zadań o nich poniżej.

Zadania były następujące:

  1. Zamek miał współpracować z wcześniejszymi zainstalowany film wideo. Interkom (otwórz bramę bez wychodzenia z domu)
  2. Bądź w stanie otworzyć drzwi zwykłym kluczem i bez klucza z ulicy i dziedzińca.
  3. Zrób pozostały budżet do 5000 p.

Wyszukiwania w Roet przedstawił następujący przedział cenowy od 7000 i nieokreślony. Zakup gotowego rozwiązania zniknął i został pomyślany przez alternatywę z szerokim możliwościami, mianowicie, aby umyć drzwi do siebie!

Po kilku liczych i obliczeniach było zwyczajowe, aby kupić blokadę elektromechaniczną około 2000 r., Wodoodporna klawiatura 350r., Cóż, który będzie tu sterować. Ponieważ było kilka tablic Nanoino, przekaźników i rozpraszających i niektórych przewodów, różnica między kosztem gotowego zestawu wynosiła ponad 4000 TR. Dla mnie doskonały bonus na portfel i samorozwój.

Cóż, a teraz ze słów do działania:

Po zakupie wszystkich wymagane komponenty Zaczął cięć.

Obwód połączenia klawiatury

Dodatkowe wskazanie LED (biały, zielony, czerwony) panel z sygnałami klawiaturowymi (wejście, poprawne drzwi haseł otwarte, odmówiono).

  • szpilka 9 żółta
  • pin 10 Green.
  • pIN 11 czerwony

Panel (kratka) z pleksi, przeciąć pudełko cukierków i uśmiechnij sąsiadów w biurze. Ale kopalnie najmniejsze okazało się być trochę gruby, musiałem pracować jako drzemkę.

Cóż, to weekendy, przeniosłem się do domku.

Aby otworzyć blokadę elektromechaniczną, potrzebny jest 12 V. Zasilanie, które karmią MK wynosiło 5 C, roztwór, aby umieścić zwiększenie konwertera DC-DC z poprzeczką do zamka. Wszystko, co połączone zaczęło się sprawdzać, działa, ale gdy napięcie jest przesyłane do solenoidu blokady Dunya, ponowne uruchomiono KZ na zasilaczu. Ponadto, po podłączeniu panelu połączenia z interkomu wideo do zamka, po naciśnięciu otwartych drzwi, drzwi się nie stało, mały prąd na zamek. Wyciągnij nowe przewody nie jest opcją, już zabijały na wyjściu z domu. Postanowiłem dodać kolejny przekaźnik do panelu i dostarczyć dodatkowy zasilacz do 12 V. Na zamek. Po parsowaniu / kolekcji wszystko działało, MK zatrzymał się ponownie. Cały ten biznes ukrył w polu resetowania odpornego na wilgoć, ukrył przewody, klej, silikonowe i gotowe!

Postęp nie stoi wciąż, a "inteligentne zamki" coraz częściej pojawiają się na drzwiach apartamentów, garaży i domów.

Podobny blokad otwiera się po naciśnięciu przycisku na smartfonie. Na szczęście smartfony i tablety zostały już wprowadzone do naszego użytku. W niektórych przypadkach podłączony jest "inteligentne zamki" usługa chmury"Wydaje się, że google zdaje się zdalnie i otwiera zdalnie. Ponadto ta opcja umożliwia dostęp do otwarcia drzwi do innych osób.

Ten projekt zostanie zaimplementowany przez wersję DIY inteligentnego zamka na Arduino, który można zarządzać zdalnie z dowolnego punktu ziemi.

Ponadto projekt dodał możliwość otwierania blokady po identyfikacji odcisków palców. Aby to zrobić, czujnik odcisków palców zostanie zintegrowany. Oba opcje do otwierania drzwi będą działać na podstawie platformy adafruitowej IO.

Podobny zamek może być doskonałym pierwszym krokiem w projekcie swojego inteligentnego domu.

Ustawianie czujnika linii papilarnych

Aby pracować z czujnikiem linii papilarnych, istnieje doskonała biblioteka dla Arduino, co znacznie ułatwia proces regulacji czujnika. Arduino Uno jest używany w tym projekcie. Adnafruit CC3000 służy do łączenia się z Internetem.

Zacznijmy łączyć moc:

  • Podłącz kontakt 5 V z płyty Arduino do czerwonej szyny;
  • Kontakt GND z Arduino łączy się z niebieską szyną na podwójnej płytce drukowanej.

Idź do podłączenia czujnika odcisków palców:

  • Najpierw podłącz zasilanie. Aby to zrobić, czerwony przewód jest podłączony do szyny +5 V, a czarny - z szynami GND;
  • Biały drut czujnika łączy się z 4 do Arduino.
  • Zielony drut przechodzi do kontaktu 3 na mikrokontroler.

Teraz zajmiemy się modułem CC3000:

  • Skontaktuj się z IRQ z kart CC3000 Połącz się z PIN 2 na Arduino.
  • VBAT - skontaktować się z 5.
  • CS - skontaktować się z 10.
  • Po tym musisz połączyć kontakty SPI do Arduino: MOSI, MISO i CLK do kontaktów 11, 12 i 13, odpowiednio.

Cóż, na koniec konieczne jest zapewnienie posiłków: Vin - do Arduino 5 V (czerwona szyna na pokładzie montażu) i GND do GND (niebieska szyna na Laype).

Zdjęcie w pełni złożonego projektu jest pokazane poniżej:

Przed opracowaniem szkicu, który załaduje dane na Adafruit IO, musisz przenieść dane o czujniku odcisków palców. W przeciwnym razie w przyszłości cię nie rozpoznaje;). Zalecamy kalibracja czujnika odcisków palców za pomocą Arduino oddzielnie. Jeśli po raz pierwszy pracujesz z tym czujnikiem, zalecamy przeczytanie procesu kalibracji i szczegółowe instrukcje dotyczące pracy z czujnikiem linii papilarnych.

Jeśli jeszcze tego nie zrobiłeś, rozpoczniesz konto na Adafruit IO.

Potem możemy przejść do następnego etapu rozwoju "inteligentnego zamka" na Arduino: a mianowicie rozwój szkicu, który przekazuje dane na Adafruit IO. Ponieważ program jest dość obszerny, w artykule, który będziemy podkreślać i rozważyć tylko swoje główne części, a następnie podajmy link do GitHub, gdzie można pobrać pełny szkic.

Skatch zaczyna się od ładowania wszystkich niezbędnych bibliotek:

#Zawierać.

#Zawierać.

#Zawierać.

#Include "adafruit_mqtt.h"

#Include "adafruit_mqtt_cc3000.h"

#Zawierać.

#Zawierać. >

Następnie musisz poprawnie poprawić szkic, wkładając parametry sieci WiFi, określając SSID i hasło (hasło):

#Define Wlan_security WLAN_SEC_WPA2\u003e

Ponadto należy wprowadzić nazwę i klawisz AIO (Key), aby wprowadzić konto Adafruti IO:

#Define AIO_SERDERPORT 1883.

#Define aio_username "adafruitic"

#Define aio_key "adafruit_io_key"\u003e

Następujące linie są odpowiedzialne za interakcję i przetwarzanie danych z czujnika linii papilarnych. Jeśli czujnik został aktywowany (odcisk zbiegłym), będzie "1":

const char fingerprint_feed progmem \u003d aio_username "/ pasza / odcisk palca";

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

Ponadto musisz utworzyć instancję obiektu miękkiego dla naszego czujnika:

Softwareserial mysereal (3, 4);

Potem możemy utworzyć obiekt dla naszego czujnika:

Adafruit_fingerprint palec \u003d adafruit_fingerprint (& myserial);

Wewnątrz szkicu okreśrzymy, który palec powinien aktywować blokadę w przyszłości. Ten przykład używa 0, który odpowiada pierwszym identyfikatorem linii papilarnych, który jest używany przez czujnik:

int flowerd \u003d 0;

Po tym, zainicjuj licznik i opóźnienie (opóźnienie) w naszym projekcie. W istocie chcemy, aby blokować automatycznie działać po otwarciu. Ten przykład wykorzystuje opóźnienie 10 sekund, ale możesz dostosować tę wartość dla własnych potrzeb:

int ActivationCounter \u003d 0;

int lastactiwacja \u003d 0;

int aktywacji \u003d 10 * 1000;

W ciele funkcji Setup (), zainicjujemy czujnik linii papilarnych i zapewniamy połączenie układu CC3000 do sieci WiFi.

W korpusie pętli () funkcji podłącz do Adafruit IO. Poniższa linia jest za to odpowiedzialna:

Po podłączeniu do platformy IO Adafruit, sprawdź ostatni odcisk palca. Jeśli pokrywa się, a blokada nie jest aktywowana, wysyłamy "1" do przetwarzania w Adafruit IO:

jeśli (fingerprintid \u003d\u003d fingerid && lockstate \u003d\u003d false) (

Serial.println (F ("Dostęp przyznany!");

lockstate \u003d true;

Serial.println (f ("nie powiodło się"));

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

lastactiwacja \u003d Millis ();

Jeśli w funkcji LOOP (), blokada jest aktywowana i osiągnęliśmy wartość opóźnienia, która została wskazana powyżej, wysyłając "0":

jeśli ((ActivationCounter - Lastactiwacja\u003e ActivationTime) && LockState \u003d\u003d Prawda) (

lockstate \u003d false;

jeśli (! FingerPrint.Publish (stan)) (

Serial.println (f ("nie powiodło się"));

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

Możesz pobrać najnowszą wersję kodu na GitHub.

Nadszedł czas, aby przetestować nasz projekt! Nie zapomnij pobrać i zainstalować wszystkich niezbędnych bibliotek dla Arduino!

Upewnij się, że wprowadziłeś wszystkie niezbędne zmiany na szkicu i pobrać go do swojego arduino. Po tym otwórz okno monitora szeregowego.

Kiedy Arduino się łączy Sieć wifiCzujnik linii papilarnych będzie migać na czerwono. Legenda palec do czujnika. Okno monitora szeregowego powinien pojawić numer identyfikacyjny. Jeśli się zbiega, pojawi się komunikat: "OK!". Oznacza to, że dane zostały wysłane do serwerów Adafruit IO.

Schemat i szkic na dalsze ustawienie blokady na przykładzie LED

Teraz zajmiemy się częścią projektu, który jest bezpośrednio odpowiedzialny za zarządzanie zamkiem drzwi. Aby połączyć K. sieć bezprzewodowa Potrzebna będzie aktywacja / dezaktywacja blokady dodatkowy moduł. Adafruit ESP8266 (Moduł ESP8266 nie musi być z adafruit). Na przykładzie, które rozważymy poniżej, będziesz mógł ocenić, jak łatwo jest zapewnić wymianę danych między dwiema platformami (Arduino i ESP8266) przy użyciu Adafruit IO.

W tej sekcji nie będziemy pracować bezpośrednio z zamkiem. Zamiast tego po prostu podłączamy Dioda LED do kontaktu, gdzie blokada zostanie podłączony dalej. Daje to możliwość przetestowania naszego kodu, bez pogłębiania w cechach projektu zamku.

Schemat jest dość prosty: najpierw ustaw ESP8266 na breadboard. Po tym ustaw LED. Nie zapominaj, że długa (pozytywna) noga diody LED jest połączona za pomocą rezystora. Druga stopa rezystora jest podłączona do kontaktu 5 na module ESP8266. Druga (katoda) dioda LED jest podłączona do PIN GND na ESP8266.

W pełni zmontowany schemat jest wyświetlany na zdjęciu poniżej.


Teraz wymyślmy z szkicem, który wykorzystuje do tego projektu. Ponownie kod jest dość obszerny i skomplikowany, więc rozważymy tylko jego główne części:

Zaczynamy od połączenia niezbędnych bibliotek:

#Zawierać.

#Include "adafruit_mqtt.h"

#Include "adafruit_mqtt_client.h"

Skonfiguruj WiFi:

#Define WLAN_SSSID "YOUR_WIFI_SSSID"

#Define wlan_pass "your_wifi_pall"

#Define WLAN_Security WLAN_SEC_WPA2.

Skonfiguruj również parametry Adafruit IO. Tak jak w poprzedniej sekcji:

#Define aio_server "io.adafruit.com"

#Define AIO_SERDERPORT 1883.

#Define aio_username "adafruit_io_" użytkownik "

#Define aio_key "adafruit_io_key"

Wskazamy, do której sosny podłąliśmy LED (w przyszłości będzie naszym zamkiem lub przekaźnikiem):

int relaypin \u003d 5;

Interakcja z czujnikiem odcisków palców, jak w poprzedniej sekcji:

const char lock_feed progmem \u003d aio_username "/ pasza / blokada";

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

W ciele funkcji konfiguracji określamy, że kod PIN, do którego podłączony jest dioda LED, powinna obsługiwać w trybie wyjściowym:

pinmode (Relaypin, wyjście);

W obrębie cyklu pętli () najpierw sprawdź, czy podłączyliśmy się do Adafruit IO:

Następnie sprawdź, który sygnał przychodzi. Jeśli "1" jest przesyłany, aktywuj kontakt, który ogłosiliśmy wcześniej, do którego podłączony jest nasza dioda LED. Jeśli mamy "0", tłumaczymy kontakt do "niskiego" stanu:

Adafruit_mqtt_subscribe * subskrypcja;

podczas gdy ((subskrypcja \u003d mqtt.readsubscription (1000))) (

jeśli (subskrypcja \u003d\u003d i blokada) (

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

Serial.println ((Char *) Lock.lastread);

// Zapisz polecenie Dane typu Data

Komenda string \u003d ciąg (Char *) Lock.lastread);

jeśli (polecenie \u003d\u003d "0") (

digitalwrite (relaypin, niska);

jeśli (polecenie \u003d\u003d "1") (

digitalwrite (Relaypin, High);

Znaleźć ostatnia wersja Szkic Możesz na GitHub.

Czas przetestować nasz projekt. Nie zapomnij pobrać wszystkich niezbędnych bibliotek dla swojego Arduino i sprawdzić, czy wprowadziłeś zmiany na szkicu.

Aby zaprogramować Układ ESP8266, możesz użyć prostego konwertera USB-FTDI.

Załaduj skok na Arduino i otwórz okno monitora szeregowego. Na ten etap Właśnie sprawdziliśmy, czy połączenie się z adafruitem IO: niedrogie funkcjonalność Będziemy wyglądać dalej.

Projekt testowy.

Teraz przejdź do testowania! Przejdź do menu użytkownika Adafruit IO, w Menu Feeds. Sprawdź, utworzono lub nie ma kanałów do odcisku palca i blokady (na ekranie drukowania poniżej, odciski palca i blokada):


Jeśli nie ma, musisz tworzyć ręcznie.

Teraz musimy zapewnić wymianę danych między odciskami palców i kanałów blokujących. Kanał blokady musi utworzyć wartość "1", gdy kanał odcisków palców przyjmuje wartość "1" i odwrotnie.

Aby to zrobić, użyj bardzo potężnego narzędzia adafruit io: wyzwalacze. Wyzwalacze są w warunkach esji, które można zastosować do skonfigurowanych kanałów. Oznacza to, że mogą być używane do nawiązania dwóch kanałów.

Utwórz nowy wyzwalacz reaktywny z sekcji wyzwalacza w Adafruit IO. Zapewni to możliwość wymiany danych między kanałami czujnika odcisków palców i zamku:


W ten sposób powinien wyglądać, gdy oba wyzwalacze są dostosowane:

Wszystko! Teraz możemy naprawdę przetestować nasz projekt! Nałóż palec do czujnika i zobacz, że Arduino zaczął mrugać przez diody LED, co odpowiada transmisji danych. Następnie dioda LED mruga na module ESP8266. Oznacza to, że zaczął otrzymywać dane przez MQTT. Dioda LED na płytce drukowanej w tym punkcie powinna również włączyć.

Po opóźnieniu, który zainstalowałeś w szkicu (domyślnie wartość ta wynosi 10 sekund), dioda LED wyłączy się. Gratulacje! Możesz kontrolować LED z odciskiem palcami, będąc w dowolnym punkcie na świecie!

Dostosuj zamek elektroniczny

Dotarliśmy do ostatniej części projektu: bezpośrednie połączenie i zarządzanie blokada elektroniczna. z za pomocą Arduino. i czujnik linii papilarnych. Projekt nie jest łatwy, możesz użyć wszystkich źródeł w formie, w której są wyruszane, ale zamiast diody LED do podłączenia przekaźnika.

Aby bezpośrednio podłączyć blokadę, będziesz potrzebować dodatkowych elementów: zasilanie do 12 V, gniazdo do zasilania, tranzystor (w tym przykładzie, używany Iirb8721PBF MOSFET, ale można również użyć innego, na przykład, bipolar tranzystor Tip102. Jeśli Ty Użyj tranzystora dwubiegunowego, będziesz potrzebować dodania rezystora.

Poniżej przedstawiono obwód elektryczny Podłączanie wszystkich komponentów do modułu ESP8266:


Należy pamiętać, że jeśli używasz tranzystora MOSFET, nie będziesz potrzebować rezystora między sworzniem 5 modułu ESP8266 i tranzystora.

Całkowicie zebrany projekt. Pokazane na zdjęciu poniżej:


Wave moduł ESP8266 za pomocą modułu FTDI i podłączyć zasilanie 12 V do gniazda. Jeśli użyłeś zalecanych kołków, aby połączyć się, nie musisz niczego zmieniać na szkicu.

Teraz możesz oprzeć palec do czujnika: zamek musi pracować, odpowiadając na odcisk palca. Poniższy film pokazuje projekt automatycznego zamku "Smart" w akcji:

Dalszy rozwój projektu "Inteligentny Zamek"

W naszym projekcie wydany pilot Zamek drzwiowy za pomocą odcisku palca.

Możesz bezpiecznie eksperymentować, zmodyfikować szkic i spinanie. Na przykład, można wymienić zamek elektroniczny drzwi do przekaźnika, aby zarządzać drukarką 3D, manipulatorem lub quadcopter ...

Możesz rozwinąć " inteligentny dom"Na przykład, zdalnie aktywować system nawadniania na Arduino lub zawierać światło w pomieszczeniu ... Nie zapomnij, że można jednocześnie aktywować niemal nieograniczoną liczbę urządzeń za pomocą Adafruit IO.

Zostaw swoje komentarze, pytania i udostępnij osobiste doświadczenie poniżej. Nowe pomysły i projekty często narodziły się w dyskusji!

W tej lekcji nauczysz się robić prosty system, który wypisuje zamek klucz elektroniczny (Etykieta).

W przyszłości możesz udoskonalić i rozwijać funkcjonalność. Na przykład dodaj "Dodaj nowe klucze i usuń je z pamięci". W przypadku podstawowej sprawy rozważ prosty przykład, gdy unikalny identyfikator Klucz jest wstępnie ustawiony w kodzie programu.

W tej lekcji będziemy potrzebować:

Aby wdrożyć projekt, musimy zainstalować biblioteki:

2) Teraz musisz podłączyć brzęczyk, który służy sygnałem, jeśli klawisz działał i otworzy się blokadę, a drugi sygnał, gdy zamyka blokada.

Brzęczyk jest podłączony w następującej sekwencji:

Arduino. Brzęczyk
5V. VCC.
Gnd. Gnd.
szpilka 5. Io.

3) Serwor zostanie użyty jako mechanizm odblokowywania. Serwo można wybrać dowolne, w zależności od rozmiaru i wysiłku wymaganego dla Ciebie, co tworzy serwomechanizm. Servo Drive ma 3 kontakty:

Bardziej żywo widać, jak podłączyliśmy wszystkie moduły na poniższym rysunku:

Teraz, jeśli wszystko jest podłączone, możesz przejść do programowania.

Naszkicować:

#Zawierać. #Zawierać. #Zawierać. // Biblioteka "RFID". #Define ss_pin 10 #define rst_pin 9 mfrc522 MFRC522 (SS_PIN, RST_PIN); Niepodzielony długie Uiddec, UidDecmp; // dla etykiety etykiety w formacie dziesiętnym Servo Servo; Konfiguracja pustki () (Serial.begin (9600); Serial.println ("Czekanie na kartę ..."); spi.begin (); // Inicjalizacja SPI / IT init Bus. MFRCRC522.pcd_init (); // Inicjalizacja MFRCRC522 / init MFRC522 Card. Servo.attach (6); Servo.Write (0); // Zainstaluj serwer w Saving Saving) Void Loop () (// Wyszukaj nowy, jeśli etykieta (! MFRC522.PICC_ISNEWCardPresent) )) (Powrót;) // Wybieranie, jeśli (! MFRC522.PICC_READCardserial ()) (powrót;) Uiddec \u003d 0; // Emisja numer seryjny Tagi. dla (bajt i \u003d 0; ja< 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); // Делаем sygnał dźwiękowy., Otwarcie servo.Write (90); // Obróć serwer pod kątem 90 stopni (odkręcanie dowolnego mechanizmu: zawór, obróć klucz itp.) Opóźnienie (3000); // pauza 3 sekundy, a mechanizm jest zablokowany. Ton (5, 500, 500); // wykonaj sygnał dźwiękowy, zamykający) Servo.Write (0); // Zainstaluj serwer w zamkniętym zapisaniu)

Bardzo szczegółowo zbadamy szkic:

Aby dowiedzieć się, że karty UID (znaczniki) musisz napisać ten szkic w Arduino, zbieraj schemat określony powyżej i otwórz konsolę (monitorowanie portu szeregowego). Po wprowadzeniu etykiety na RFID, numer w konsoli

Powstały UID musi być wprowadzony w następującej linii:

Jeśli (Uiddec \u003d\u003d 3763966293) // Porównaj tagi UID, jeśli jest równe określonym, serwomechanizm otwiera zawór.

Każda karta ma unikalny identyfikator i nie jest powtarzany. W taki sposób, kiedy przyniesie kartę, której identyfikator jest ustawiony w programie, system otworzy dostęp za pomocą serwomechanizmu.

Wideo: