Blokada kodu Arduino z kartą SD. Automatyczny "Smart" Lock and Arduino. Dalszy rozwój projektu "Inteligentny Zamek"

Tak się wydarzyło, że postanowiliśmy zainstalować blokadę kodu na twoich drzwiach w pracy, ponieważ stale biegamy - zabrakniejemy z biura, drzwi, do których powinny być stale zamknięte w przypadku braku mieszkańców. Klucze często okazują się zapomniane w środku. Ogólnie rzecz biorąc, zdecydowali, że blokada kodu była doskonała droga.

Wymagałem na chińskich rynkach pcheł i eBay, nie znalazłem niczego tańszego i mniej lub bardziej poważnego i postanowił zrobić to własne ręce. Natychmiast dokonam rezerwacji, że platforma Arduino została wybrana do swojej prostoty, ponieważ doświadczenie komunikacji z mikrokontrolerami w ogóle nie było.

Pomysł

Na drzwiach z zewnątrz drzwi powinno być klawiatura, na której wprowadza się hasło, reszta konstrukcji jest zamocowana w środku. Aby kontrolować pełne zamknięcie drzwi, jest używane przez Gerona. Wychodząc z szafki, osoba naciska na klawiaturze "*" i bez czekania, aż drzwi zamknęli się bliżej idzie w jego sprawach, gdy drzwi są całkowicie zamknięte, Geron zamyka się, a zamek zostanie zamknięty. Drzwi otwierają się, wprowadzając hasło 4x Digit i klikając "#".

Akcesoria

Arduino Uno \u003d 18 USD
Arduino Protoshield + Breadboard \u003d 6 USD
L293D \u003d 1 USD
Cios drutów 30 sztuk dla Braddatradra \u003d 4 USD
2 gniazda RJ45 \u003d 4 USD
2 wtyczki RJ45 \u003d 0,5 USD
Centralny siłownik blokujący \u003d 250 rubli.
Geron \u003d zamrażanie wolny od starego okna.
Szycie metalowe rozmiary olbrzymich \u003d wolne
Sprawa ze starej koncentratora D-link z półtora pół miliona żelaza \u003d bezpłatny
Zasilacz z tego samego koncentratora D-Link dla 12 i 5 V \u003d również za darmo
Wiązka śruby i wiadra do mocowania wszystkich dobrych do obudowy \u003d 100 rubli.
Panel sterowania OT. alarm bezpieczeństwa \u003d bezpłatny.

CAŁKOWITY: 33,5 i 350 rubli.

Nie tak mało, powiesz, a na pewno będziesz miał rację, ale dla przyjemności musisz zapłacić! I zawsze miło cię zbierać. Zanim projekt można spowolnić, jeśli używasz bare MK bez Arduino.

Przygotowanie do montażu

Chcę powiedzieć kilka słów o zakupie kluczowego elementu projektu siłownika. W lokalnym Auto-Store został zaoferowany siłowniki dwóch typów: "z dwoma przewodami i pięcioma". Według sprzedawczyni byli one absolutnie tak samo, a różnica w liczbie przewodów nie znaczyła absolutnie nic. Jednak, jak okazało się później, to nie tak! Wybrałem urządzenie z dwoma przewodami, został zasilany z 12V. W projekcie z pięciu przewodów są zainstalowane przełączniki kragowe, co pozwala na kontrolowanie ruchu dźwigni. Zdałem sobie sprawę, że nie kupiłem go tylko wtedy, gdy go zdemontowałem i się ją zmienia. Przebieg dźwigni okazał się zbyt krótki, aby normalnie popchnąć taśmę, więc konieczne było go modyfikowanie go nieco, a mianowicie, zdejmij dwie gumowe podkładki skracające dźwignię siłownika. W tym celu ciało musiało wyciąć wzdłuż zwykłej hetzy, ponieważ druga podkładka była w środku. Niebieska taśma nas, jak zawsze pomógł nam w przyszłości podczas montażu go z powrotem.
Aby sterować silnikiem, silniki L293D zastosowano silniki L293D, które wytrzymuje obciążenie szczytowego do 1200 mA, podczas zatrzymywania silnika siłownika, rozrodczym obciążeniem szczytowym wyrosło do 600 mA.
Sterowanie z klawiatury, dynamika i dwie diody LED zostały usunięte z panelu sterowania alarmem sterowania. Konsola i główne urządzenie miały być podłączone za pomocą skrętki i złączy RJ45

Programowanie.

Tak więc, jak doświadczenie programowania Arduino nie miałem do tej pory. Skorzystałem z pracy i artykułów innych ludzi z witryny Arduino.cc. Kto jest zainteresowany, może spojrzeć na ten brzydki kod :)

Zdjęcie i wideo



Arduino i siłownik.


Zasilacz


Klawiatura


Sewingale (podłączony do siłownika z metalową igłą, na której ciepło kurczą się do piękna)

Działanie wideo urządzenia:

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 "Smart Locks" są podłączone do "Usługi w chmurze" jak dysku Google i otworzyć zdalnie. Ponadto ta opcja umożliwia zapewnienie dostępu 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.

Gdy Arduino łączy się z siecią WiFi, czujnik odcisków palców 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ć się z siecią bezprzewodową i aktywować / dezaktywować blokadę, będziesz potrzebować opcjonalnego modułu Adafruti 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.

Całkowicie zebrany schemat. Pokazane 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 tym etapie po prostu sprawdziliśmy, czy połączyć się z Adafruti IO: przystępna 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 zamka. 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 kontrola zamka elektronicznego za pomocą Arduino i czujnika 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.

W pełni zmontowany projekt jest wyświetlany na poniższym zdjęciu:


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 wydał zdalny sterowanie blokadą drzwi 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!

Pewnego dnia dokonałem przeglądu filmu "New Spiderman", aw jednym etapie Peter Parker zdalnie otwiera i zamyka drzwi z laptopa. Jak tylko zobaczyłem, natychmiast zdałem sobie sprawę, że potrzebuję takiego elektronicznego zamka na drzwiach wejściowych.

Zgromadziłem się trochę, zebrałem ważny model inteligentnego zamku. W tym artykule powiem ci, jak ją zebrałem.

Krok 1: Lista materiałów





Aby złożyć elektroniczny zamek na Arduino, będziesz potrzebować następujących materiałów:

Elektronika:

  • Adapter ścienny 5 V.

Składniki:

  • 6 śrub do spinletu
  • karton
  • przewody

Instrumenty:

  • lutownica
  • pistolet kleju
  • wiercić
  • wiercić
  • wiertarka do przewodnika
  • nóż papeterii.
  • komputer z Arduino IDE

Krok 2: Jak działa zamek

Idea polega na tym, że mogę otworzyć lub zamknąć drzwi bez klucza, a nawet bez dochodzenia do niego. Ale to tylko główna idea, ponieważ nadal można dodać czujnik detonacji, dzięki czemu reaguje na specjalne pukanie, lub możesz dodać system rozpoznawania głosu!

Dźwignia serwomechanizmu podłączona do Metalle'a zamknęła ją (0 °) i otwórz (60 °) za pomocą poleceń uzyskanych za pomocą modułu Bluetooth.

Krok 3: Schemat instalacji drutu


Najpierw podłączyć serwomechanizm na płytę Arduino (chcę zauważyć, że chociaż korzystałem z opłaty Arduino Nano, w Desce UNO, lokalizacja konkluzji jest dokładnie taka sama).

  • brown Wire Servo - uziemienie, podłącz go na ziemię na Arduino
  • red Wire - Plus, podłącz go do złącza 5B na Arduino
  • pomarańczowy drut - wyjście źródła serwomechanizmu, podłączyć go do 9. wniosku na Arduino

Radzę sprawdzić działanie serwomechanizmu przed kontynuowaniem montażu. Aby to zrobić, w programie Arduino IDE w przykładach wybierz Sweep. Upewniając się, że serwomechanizm działa, możemy podłączyć moduł Bluetooth. Musisz podłączyć wyjście RX modułu Bluetooth za pomocą Arduino wyjściowego TX i wyjście TX modułu z wyjściem RX Arduino. Ale jeszcze tego nie robisz! Gdy te połączenia są lutowane, nie będzie już w stanie pobrać żadnych kodów na Arduino, więc najpierw pobierasz wszystkie swoje kody i dopiero po tym, jak połączenia lutownicze.

Oto schemat modułu i związków mikrokontrolerów:

  • Moduł RX - tablice TX Arduino
  • Moduł TX - RX Boards
  • Moduł VCC (dodatni) - 3.3 V Arduino Boards
  • Podłączenie z ziemią (ziemia ziemi)

Jeśli wyjaśnienie wydaje ci się niezrozumiałe, postępuj zgodnie ze schematem połączeń przewodów.

Krok 4: Testowanie

Teraz, gdy mamy wszystkie części aktorskie, pozwól nam upewnić się, że serwomechanizm może przesunąć setelet. Przed zamontowaniem punktacji na drzwiach zebrałem próbkę próbną, aby upewnić się, że serwomechanizm jest dość potężny. Początkowo wydawało mi się, że mój serwomechanizm był słaby i dodałem kroplę oleju do szkarłatnego, po czym wszyscy działał dobrze. Bardzo ważne jest, aby mechanizm dobrze zjechał, w przeciwnym razie ryzykujesz zablokowanie w pokoju.

Krok 5: Przypadek do elektrokomponentów



Postanowiłem umieścić kontroler tylko w przypadku i modułu Bluetooth, a serwomechanizm pozostaje na zewnątrz. Aby to zrobić, na kawałku kartonu, dostarczamy obwód obwodu Arduino Nano i dodamy 1 cm przestrzeni wokół obwodu i wyciąć. Po tym wycinamy pięć boków ciała. W przedniej ścianie konieczne będzie obniżenie otworu do przewodu zasilającego sterownika.

Rozmiary boczne przypadku:

  • Dolny - 7,5х4 cm
  • Okładka - 7,5x4 cm
  • Lewo ściana boczna - 7.5x4 cm
  • Prawa ściana boczna - 7.5x4 cm
  • Ściana przednia - 4x4 cm (z gniazda do przewodu zasilającego)
  • Tylna ściana - 4x4 cm

Krok 6: Dodatek

Aby kontrolować kontroler, potrzebujesz gadżetu na Androida lub oknach z wbudowanym Bluetooth. Nie miałem okazji sprawdzić działanie aplikacji na urządzeniach Apple, może potrzebujesz kilku kierowców.

Jestem pewien, że niektórzy z was mają okazję to sprawdzić. Na Androida Pobierz aplikację Terminal Bluetooth, pobierz Teraterm dla Windows. Następnie musisz podłączyć moduł do smartfona, nazwa musi być Linvor, Hasło - 0000 lub 1234. Po ustawieniu parowania otwórz zainstalowaną aplikację, wprowadź opcję i wybierz "Zainstaluj połączenie (niebezpieczne)". Teraz twój smartfon jest monitorem interfejsu szeregowego Arduino, który jest, możesz wymieniać dane za pomocą sterownika.

Jeśli wpiszesz 0, drzwi zamkną się, a na ekranie smartfona pojawi się komunikat "Drzwi są zamknięte".
Jeśli wejdziesz na 1, zobaczysz, jak otwierają się drzwi, a na ekranie pojawi się komunikat "Drzwi są otwarte".
W systemie Windows proces jest taki sam, z wyjątkiem tego, że musisz zainstalować aplikację TERATERM.

Krok 7: Intim The Sekretyle


Najpierw musisz podłączyć napędowy serwomerz. Aby to zrobić, wyciąć wtyczki z otworów montażowych obudowy napędu. Jeśli umieścimy dysk serwomechanizmu, otwory montażowe muszą być zamknięte z rozbiciem. Następnie musisz umieścić dźwignię serwomechanizmu do szczeliny spinletu, gdzie był uchwyt spinkita. Sprawdź, jak blokada blokada w obudowie. Jeśli wszystko jest w porządku, zabezpiecz dźwignię serwomechanizmu klejem.

Teraz musisz wiercić otwory prowadzące do drzwi do śrub. Aby to zrobić, załóż wyniki do drzwi i ołówek, zaznacz na drzwiach otworu drzwi pod śrubami. Wywierć w obserwowanych miejscach otworu pod śrubami na głębokości około 2,5 cm. Zastosuj wyników i zabezpieczyć go śrubami. Sprawdź ponownie operacja serwomechanizmu.

Krok 8: Odżywianie


Aby zakończyć urządzenie, potrzebujesz źródła zasilania, sznurka i wtyczki mini-USB, aby połączyć się z Arduino.
Podłączyć moc wyjściową źródła zasilania z wyjściem Ziemią Mini-portu USB, podłącz czerwony przewód z czerwonym drutem mini-portu USB, a następnie rozciągnij drut z zamka do pętli drzwiowej i rozciągnij to z niej do wylotu.

Krok 9: Kod

#include servo myservo; int poz \u003d 0; stan; int flaga \u003d 0; Ustawienia bez pustki () (MyServo.attach (9); Serial.begin (9600); MyServo.Write (60); Opóźnienie (1000);) Pętla pusta () (IF (Serial.Available ()\u003e 0) (Stan \u003d Serial.Read (); Flag \u003d 0;) // Jeśli stan jest "0" silnik DC wyłączy się, jeśli (stan \u003d\u003d "0") (Myservo.write (8); Opóźnienie (1000); Serial. PrintLn ("Drzwi zablokowane");) inaczej, jeśli (stan \u003d\u003d "1") (myservo.write (55); opóźnienie (1000); serial.println ("odblokowany drzwi"))

Krok 10: Kompletny zamek na podstawie Arduino

Ciesz się zamkiem z pilotem i nie zapomnij o "Chance", aby zablokować przyjaciół w pokoju.

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
  • Jeśli naciśniesz przycisk Secret Password Zmień w trybie wprowadzania hasła, wyjdziesz z niego

Arduino jest najlepszy system. Skopiować jakikolwiek sprzęt. Większość pomysłów nie byłaby w stanie spełnić bez niej. Przez długi czas jest taka myśl: Utwórz specjalny blokadę kodu na Arduino. Aby go otworzyć, konieczne jest podłączenie określonego klucza. W takim przypadku blokada nie powinna być otwarta, nawet jeśli znasz żądany przycisk. Aby go otworzyć, konieczne jest wytrzymanie pewnych interwałów za pomocą pamięci mięśniowej. Taka karna nie będzie mogła popełnić. Ale to jest teoria.

Aby go zbierać, musisz skorzystać ze specjalnego urządzenia prostokątnych impulsów, a także kilka metrów i sterty. Ale gotowe urządzenie miałoby duże wymiary I nie można go użyć. Z reguły takie myśli nie odpoczywają. Pierwszym etapem przykładu wykonania snu był stworzenie programu pod Arduino. To ona służy jako blokada kodu. Aby go otworzyć, musisz nacisnąć nie jeden klucz, ale kilka i zrób to jednocześnie. Gotowy schemat. To wygląda jak:

Jakość obrazu nie jest najlepsza, ale połączenie jest wykonywane na ziemi, D3, D5, D7, D9 i D11.

Kod jest przedstawiony poniżej:

Const Int Ina \u003d 3; Const in inb \u003d 5; CONST INC INC \u003d 9; Const Int LedPin \u003d 13; int i \u003d 1000; Bajt a \u003d 0; Bajt b \u003d 0; Bajt C \u003d 0; Bajt d \u003d 0; niepodpisany długi czas \u003d 0; // nie zapomnij o wszystkim, co przyjmuje wartość Millis () niepodpisany Długie Temp \u003d 0; // Przechowywać w niepodpisanym długim bajcie Keya \u003d (0, 0, 0, 0, 0, 0, 0, 0); // kody faktycznie bajtowe brelok \u003d (1, 1, 1, 1, 0, 1, 0, 0); Bajtowy Keyc \u003d (1, 0, 1, 0, 1, 1, 1, 0); Bajt k \u003d 0; Ustawienia nieważne () (Pinmode (Ina, Input_pullup); // wejścia podłączone do przycisków Pinmode (INB, INPELE_PULLUP); Pinmode (Inc, Input_pullup); Pinmode (LEDPIN, wyjście); // wbudowany dioda LED na 13 Sosna Pinmode (7, wyjście); Pinmode (11, wyjście); Digitalwrite (7, Niska); // Zastąp Ziemi Digitalwrite (11, Niski); Time \u003d Millis (); // Należy Czas referencyjny) Void Blinktwice ( ) (// podwójna miga dioda cyfrująca dioda LED (LEDPIN, wysoka); opóźnienie (100); Digitalwrite (Ledpin, Niska); Opóźnienie (100); Digitalwrite (Ledpin, High); Opóźnienie (100); Digitalwrite (Ledpin, Niski); Opóźnienie (200);) Pętla pusta () (jeśli (k \u003d\u003d 0) (Blinktwice (); // Zaproszenie Wprowadź kod), jeśli (K \u003d\u003d 8) (Digitalwrite (Ledpin, High); Opóźnienie (3000); K \u003d 0;) A \u003d DigitalRead (INA); // Poziomy sygnału są odczytywane z przycisków - naciśnięty / nie naciśnięty b \u003d DigitallRead (INB); C \u003d DigitalRead (Inc); Opóźnienie (100); // Dalej IF - Ochrona Pod fałszywymi pozytywami nie można używać, jeśli ((DigitallRead (Ina) \u003d\u003d a) && (DigitalRead (inb) \u003d\u003d b) && (DigitalRead (Inc) \u003d\u003d C)) (IF (A \u003d\u003d Keya [K] ) (Jeśli (b \u003d\u003d Keyb [K]) (IF (C \u003d\u003d Keyc [K] (k ++; )))) Jeśli (k \u003d\u003d 1) (jeśli (d \u003d\u003d 0) (czas \u003d Millis (); D ++;)) TEMP \u003d Millis (); TEMP \u003d TEMP - Czas; Jeśli (TEMP\u003e 10000) (K \u003d 0; D \u003d 0; czas \u003d Millis ();))

Aby nie mieć żadnych dodatkowych pytań dotyczących kodu, należy wyjaśnić kilka chwil. Funkcja konfiguracji służy do przypisywania portów. Poniższa funkcja jest Input_pullup, która jest niezbędna do zwiększenia napięcia sosny o 5 V. Jest prowadzona przy użyciu rezystora. Dzięki temu nie wystąpi różne krótkie obwody. Dla większej wygody zaleca się korzystanie z funkcji BlinkTwice. Ogólnie rzecz biorąc, tworząc różne programy, musisz wypróbować inne funkcje.

Po przypisaniu funkcji sygnał jest odczytywany z portów. Jeśli przycisk zostanie naciśnięty, zostanie to oznaczone przez numer 1, a jeśli nie - 2. Następnie istnieje analiza wszystkich wartości. Na przykład taka kombinacja pojawiła się jako 0.1.1. Oznacza to, że pierwszy klawisz jest naciśnięty, a pozostałe dwa nie są. Jeśli wszystkie wartości są wykonywane prawidłowo, stan 8 jest również prawdziwy. Wyważa to, że błyszczący dioda na panelu przednim. Następnie musisz wprowadzić konkretny kod, który będzie służyć otworzyć drzwi.

Najnowsze elementy kodu służą do upuszczania wartości mierników. Ta funkcja jest wykonywana, jeśli po ostatnim klawiszach, przekroczyła ponad 10 sekund. Bez tego kodu można było przejść przez wszystko możliwe opcjeChociaż jest wystarczająco dużo z nich. Po utworzeniu tego urządzenia konieczne jest przetestowanie go. Jeszcze

mob_info.