Arduino Light & Knock Detecting Door Lock: 4 kroki

Arduino Light & Knock Detecting Door Lock: 4 kroki

Spisu treści:

Anonim

To świetny gadżet dla tajnego klubu i dla ludzi takich jak ja, którzy zawsze tracą klucze! Ten projekt opiera się na oryginalnej Tajnej Blokadzie Knock instruowanej przez Grathio (dostępnej poniżej) z następującymi głównymi modyfikacjami:

1) Ma drugie tajne wejście, gdy ludzie są w pobliżu i mogą podsłuchać twoje pukanie. Teraz fotodioda może zarejestrować „pukanie do zdjęć” (błysk światła) przez otwór szybu!

2) Zawiera mostek H, umożliwiający zarówno odblokowanie, jak i zablokowanie drzwi (zmienia kierunek napięcia na silniku)

3) Programowanie rejestruje teraz średnie (tło) poziomy szumów / dźwięku i odpowiednio dostosowuje czułość (wartości progowe)

*** Informacje tutaj są dostosowane do instrukcji Grathio. Podziękowania i podziękowania dla Grathio Labs za udostępnienie tak obszernego przewodnika pozostałym z nas! Przeprowadzę Cię przez kolejne etapy programowania i okablowania elektroniki, a następnie wyślę cię do kroku w Grathio, w którym można wykonać montaż drzwi PCV (niestety, wciąż jestem w trakcie tworzenia obudowy funkcjonalnej)

Aby zapoznać się z oryginalną blokadą Knock-Lock Grathio, przejdź na stronę

Kieszonkowe dzieci:

Krok 1: Narzędzia, materiały i umiejętności

Umiejętności:

Aby ukończyć ten projekt, powinieneś być w stanie:

Czy podstawowe lutowanie.

Przeczytaj schemat.

Znajomość mikrokontrolerów (będę używał Arduino).

Improwizować

Przybory:

Wiertarka (najlepiej wiertarka) i asortyment wierteł.

Piła do cięcia rur PCV. (tj.: ładna mcuh jakakolwiek piła.)

Lutownica i lut.

Szczypce.

Śrubokręty.

Rurki termokurczliwe i / lub taśma elektryczna.

Ściągacz izolacji.

Wice.

Okulary ochronne.

Rękawiczki.

Inne rzeczy, które mogą ci się przydać: miarka / taśma miernicza, multimetr, deska do krojenia chleba, taśma, magiczny marker, papier ścierny, pilniki, gorący klej. A jeśli jesteś jak ja dobrze zaopatrzony zestaw pierwszej pomocy.

Materiały:

Elektronika:

1 Mikrokontroler Arduino Uno (lub podobny)

1 12 v Silnik redukujący bieg o wysokim momencie obrotowym

1 Mały mikrofon

1 chwilowy przycisk SPST. (zwykle „wyłączony” / „otwarty”)

1 Czerwona dioda LED

1 Zielona dioda LED

1 Fotodioda

1 Czwórkowy połówkowy mostek SN754410NE H-Bridge

1 opornik 100 kΩ (1/4 wata)

1 opornik 10 kΩ (1/4 wata)

1 rezystor 1M ohm (1/4 wata)

2 560 omów rezystora (lub cokolwiek uruchomi czerwoną i zieloną diodę LED przy 5v)

1 mały kawałek deski perf. 5x15 otworów lub więcej.

1 wtyczka ścienna 12 V do Arduino

Dobrym pomysłem jest również posiadanie deski do pieczenia do ustawiania i testowania obwodu, zanim go przylutujesz. Będziemy to robić w kroku 3.

Walizka:

(Ten projekt pochodzi bezpośrednio ze źródła Grathio.)

20 "PVC Pipe 1/2".

3 złącza kątowe PVC 1/2 ".

1 5-drożny łącznik PVC 1/2 ". (Przykład)

Końcówka końcowa 2 1/2 ”PVC.

3 przyssawki 1 1/2 ". (Dostępne w sklepach ze sprzętem i centrach rzemieślniczych.) UWAGA: Jeśli Twoje drzwi nie nadają się do przyssawek, zastąp je trzema zaślepkami końcowymi, a do zamocowania zamka możesz użyć pasków samoprzylepnych lub śrub.

6 ”z 1/2” szerokości i 1/64 ”grubości taśmy metalowej (stal, cyna, miedź itp.) (Dostępne w sklepach ze sprzętem, rzemiosłem i dostawami sztuki).

4.5 "z szerokiej blachy o grubości 1", grubości 1/32 "(stal, cyna, miedź itp.) (Dostępne w sklepach ze sprzętem, rzemiosłem i dostawami sztuki).

2 śruby 3/32 ”x 3/8” z nakrętkami. (1/8 "zadziała, jeśli nie możesz znaleźć mniejszych.)

2 śruby 1,6 M (metryczne) 16 mm. Idealnie z łbem stożkowym, jeśli możesz je znaleźć. (Do zabezpieczenia silnika. Sprawdź specyfikacje silnika, aby sprawdzić, czego potrzebuje śruba. Jeden silnik, którego próbowałem, używał 1,6 M, drugi 2 M. Prawdopodobnie będziesz musiał kupić długie i przyciąć je na długość).

1 duża ssawka (do fotodiody)

Krok 2: Zaprogramuj swoje Arduino

Będziesz chciał załadować nasz szkic przed wykonaniem jakiejkolwiek elektroniki, abyśmy mogli przetestować je w miarę upływu czasu. Kod jest załączony poniżej i zawiera komentarze w całym tekście. Musisz zainstalować oprogramowanie / sterowniki Arduino na tym etapie!

1) Pobierz plik załączony poniżej

2) Podłącz Arduino do wejścia USB w komputerze.

3) Otwórz plik w Arduino Sketch (lub jeśli to sprawia ci kłopoty, zmień plik na.txt i skopiuj / wklej kod do pustego szkicu) i skompiluj / zweryfikuj

4) Prześlij go do swojego Arduino!

W kolejnych krokach przedstawię wskazówki dotyczące rozwiązywania problemów obejmujące określone części kodu (niektóre parametry będą musiały zostać dostosowane dla każdego systemu). Dla każdego, kto interesuje się specyfiką kodu, podałem poniżej streszczenie. Szkic jest dobrze skomentowany w całym tekście, ale jest to spory plik i trochę niezgrabny do interpretacji w czasie (nie krępuj się, aby uczynić to bardziej eleganckim i pamiętaj, aby podzielić się jakimkolwiek sukcesem w komentarzach!).

Linie 4-33: Określa piny, stałe i zmienne Arduino, których będziemy używać w kodzie.

- Prawdopodobnie będziesz chciał je ulepszyć dla konkretnego drzwi / systemu. Poprowadzę cię przez to

Linie 35-47 (konfiguracja): Definiuje tryby pinów i inicjuje monitorowanie szeregowe

Linie 49-84, (pętla): Określa zachowanie obwodu, ponieważ oczekuje na usłyszenie (zobacz) pukanie (błysk)

- Tutaj ustawiamy funkcję tła / uśredniania, która w sposób ciągły pobiera dane i odpowiednio kalibruje wartości progowe. Jeśli sygnał świetlny lub dźwiękowy jest zarejestrowany powyżej wartości progowej, to wykonuje „listenToSecretKnock”

Linie 86-161 (listenToSecretKnock): Rejestruje stuknięcia zarejestrowane przez mikrofon

- Rejestruje czas pomiędzy uderzeniami (długość opóźnienia) w tablicy i wysyła dane do validateKnock. Część tej sekcji poświęcona jest kierowaniu wskaźnikami LED, które migają wraz z zarejestrowanymi uderzeniami. Jeśli zamek zostanie zweryfikowany, drzwi zablokują lub odblokują drzwi w zależności od „stanu drzwi” (który informuje, czy nasz ostatni był zablokowany lub odblokowany).

Linie 163-238 (listenToSecretPhotoKnock): rejestruje błyski światła zarejestrowane przez fotodiodę

- Zasadniczo takie same jak linie 86-161, ale teraz z sygnałem / parametrami fotodiody. Jest to dobre miejsce, aby rozpocząć, jeśli chcesz nieco usprawnić kod, ponieważ powtarza się wiele z tego, co jest używane wcześniej (na mojej liście zadań)

Linie 239-255 (triggerDoorUnlock): włącza silnik, aby odblokować drzwi

- Zrozumienie tej sekcji wiąże się ze znajomością zachowania mostka h, który dyktuje kierunek napięcia na silniku. Możesz zajrzeć do arkusza speck dla swojego chipa, aby zrozumieć więcej (był to ten, którego użyłem: http://html.alldatasheet.com/html-pdf/28616/TI/SN754410NE/24/1/SN754410NE.html)

Linie 257-272 (triggerDoorLock): uruchamia silnik w odwrotnej kolejności, aby zablokować drzwi

- Ta sekcja powtarza również pewne kodowanie i może odnieść korzyści z niewielkiego czyszczenia.

Linie 274-349 (validateKnock): Sprawdza, czy zapisany wzór jest zgodny z kluczem.

- To normalizuje każde pukanie do najdłuższej przerwy i porównuje względne odstępy między uderzeniami. Oznacza to, że możesz wykonać ten sam wzór powoli lub szybko i nadal powinien on uruchamiać silnik.

Krok 3: Testowanie obwodu na desce do krojenia chleba

Zamontujemy całą elektronikę na płytce kuchennej i sprawdzimy, czy wszystko działa tak, jak idziemy. Schemat płytki i schemat układu można znaleźć na powyższych obrazkach. NALEŻY UWAŻAĆ, ŻEBY NIE NALEŻY DOTYKAĆ ŻADNYCH PRZEWODÓW NIEZAMIERZONO I PAMIĘTAĆ O WYŁĄCZENIU ARDUINO / OBWODU ZE ŹRÓDEŁ MOCY PODCZAS OKABLOWANIA!

1) Podłącz mikrofon

Przylutuj do mikrofonu parę przewodów o długości 30 cm (12 cali), a następnie podłącz do styku analogowego 0 i masy, a także do opornika analogowego 0 i masy podłącz rezystor 1M ohm.

TEST: Po podłączeniu Arduino do komputera otwórz okno Serial Monitor (w prawym górnym rogu okna szkicu). Powinieneś zobaczyć tekst „Uruchom program”. Stuknij w mikrofon i powinieneś powiedzieć „knock start” i „knock” za każdym dotknięciem. Zatrzymaj się na sekundę lub dwie i prawdopodobnie zobaczysz „Tajne pukanie nie powiodło się”. Spróbuj dotknąć Shave and a Haircut i sprawdź, czy możesz uzyskać „Door Unlocked!” wiadomość! Następnie arduino nasłuchuje sygnału, aby zamknąć drzwi. Domyślnie jest to (zmienne w kodzie) cztery równomiernie rozmieszczone uderzenia.

ROZWIĄZYWANIE PROBLEMÓW:

- Jeśli nie widzisz niczego lub śmieci z monitorowania szeregowego, upewnij się, że twój port szeregowy jest ustawiony na 9600 bodów i zresetuj zasilanie

- Aby dostosować czułość rozpoznawania / sprawdzania wzoru stukania, zagraj wartościami „rejectValue” i „averageRejectValue” (linie 13 i 14). Jeśli pojedyncze pukanie jest wyłączone o więcej niż wartość rejectValue (procent) lub jeśli średni czas uderzeń jest wyłączony o więcej niż średniaRejectValue, arduino nie zweryfikuje stuknięcia lub uruchomienia silnika

- Jeśli pojedyncze pukanie jest rejestrowane więcej niż jeden raz lub dwa stuknięcia są rejestrowane jako to samo pukanie, wyreguluj „knockFadeTime” (linia 15), która określa milisekundy, które pozwalamy stuknąć, aby zaniknąć, zanim zaczniemy słuchać kolejnego (skuteczne odrzucenie regulator czasowy).

2) Podłącz fotodiodę

Podłączyć stronę anodową (zwykle z krótszym przewodem) do 5 V, a katodę do styku analogowego 3 i do uziemienia przez rezystor 100 K (patrz schemat).

TEST: Świeć błyskiem światła na fotodiodę, aw oknie seryjnym powinieneś zobaczyć tekst „pukanie do zdjęć” i „pukanie do zdjęć” za każdym razem, gdy migasz światłem. Spróbuj świecić światłem błyskającym w tym samym wzorze „Golenie i strzyżenie”, jak w przypadku stuknięć mikrofonu.

ROZWIĄZYWANIE PROBLEMÓW:

- Jeśli nic nie widzisz, gdy miga lampka na diodzie, spróbuj przetestować napięcie na rezystorze 100k i upewnij się, że zachowuje się zgodnie z oczekiwaniami (napięcie wzrasta do + 5V, gdy nasycone światłem i do 0, gdy ciemne).

- Jeśli pojedyncza lampa błyskowa jest rejestrowana więcej niż jeden raz lub dwa błyski są zarejestrowane jako jedno, dostosuj „photoknockFadeTime” (linia 16)

3) Podłącz diody LED

Pozwala na podłączenie niektórych diod LED, dzięki czemu nie musimy używać kabla szeregowego, aby zobaczyć, co się dzieje. Podłączyć czerwoną diodę LED do styku cyfrowego 4 i zieloną diodę LED do styku cyfrowego 5 z odpowiadającymi im rezystorami 560 * ohm w linii.

TEST: Jeśli włączysz obwód, zielona dioda LED powinna zaświecić się i przyciemnić chwilowo dla każdego pukania. Jeśli arduino zweryfikuje prawidłową sekwencję, zielona dioda powinna migać kilka razy. Zła sekwencja powinna migać na czerwono.

ROZWIĄZYWANIE PROBLEMÓW:

- Sprawdź polaryzację diod LED i wszystkich połączeń. Twoje diody LED mogą wymagać innej rezystancji, aby działać przy 5V, więc jeśli są zbyt słabe lub wyłączone, możesz spróbować obniżyć opór.

4) Podłączyć przycisk programowania

Przylutuj przewody 8 "do przycisku. Podłącz jedną stronę przycisku do + 5v. Drugim pinem przycisku podłącz do cyfrowego pin 2 i przez rezystor 10K do masy.

TEST: Włącz zasilanie. Po naciśnięciu przycisku czerwone światło powinno się zapalić. Przytrzymaj przycisk i stuknij prostą sekwencję. Podczas stukania podczas programowania obie diody LED powinny migać. Kiedy skończysz, wzór, który właśnie stuknąłeś, powinien się powtórzyć na obu światłach. Po zakończeniu odtwarzania nowy kod puknięcia zostaje zapisany, a światła na przemian świecą się na czerwono i zielono.

ROZWIĄZYWANIE PROBLEMÓW:

- Upewnij się, że przycisk jest zwykle otwarty („chwilowo zamknięty”) za pomocą omomierza, aby zapisać rezystancję, naciskając przycisk. Jeśli zwraca zero lub niską wartość, masz zły typ przycisku.

5) Podłącz przewód do mostka h i silnika

W przypadku mostka h połącz: piny 1 i 16 do + 5 V; styki 4 i 5 do GND, styk 2 do cyfrowego styku 3 Arduino, styk 7 do cyfrowego styku 6 arduino i styk 8 do arduino Vin. Przylutuj 8 ”przewodów do silnika i podłącz je do kołków 3 i 6 mostka h.

TEST: Włącz zasilanie obwodu. Poprawnie stuknij domyślne pukanie „Golenie i strzyżenie”, a silnik powinien działać. Ponownie stuknij właściwy wzór, a silnik powinien obrócić się w przeciwnym kierunku.

ROZWIĄZYWANIE PROBLEMÓW:

- Upewnij się, że Twój układ jest zasilany i uziemiony.

- Sprawdź, w którą stronę obraca się silnik. Po pierwszym uruchomieniu powinien obrócić się w ten sam sposób, w jaki obróciłeś swój deadbolt, aby go odblokować. Jeśli nie, przełącz przewody silnika, które powinny odwrócić silnik.

- Aby twój silnik obrócił się o 180 stopni, wyreguluj „lockTurnTime” (linia 17), aż silnik obróci 1/2 obrotu za każdym razem, gdy zostanie wyzwolony

Gratulacje! Zrobiłeś tajny obwód detektora pukania!

Krok 4: Budowanie dodatku do obudowy i fotodiody

Aby uzyskać szczegółowe informacje na temat montażu uchwytu / obudowy, przejdź tutaj:

Mój wierzch bazuje na tym projekcie z kilkoma modyfikacjami (miałem dostęp do mniej popularnych narzędzi w mojej szkole, Pomona College). Utknąłem w konstrukcji z PVC, ponieważ był lekki i przenośny. Miałem dostęp do sprzętu, który pozwolił mi wydrukować płytkę drukowaną, więc niewiele przewodów musiało być wypchanych w obudowie. Po wlutowaniu finalnej płytki drukowanej, nakleiłem spód (zwrócony w stronę arduino), aby upewnić się, że nic nie dotknęło arduino, które nie powinno. Mój silnik nie zawierał redukcji biegów, więc skonstruowaliśmy zestaw kół zębatych i aluminiową skrzynię biegów. Mikrofon jest przymocowany do końca długiego metalowego paska (pokrytego różową taśmą do dekoracji).

Aby wykonać ADAPTER FOTODIODOWY, wywierć otwór w przyssawce nieco mniejszy niż rozmiar Twojej diody (aby nie uszkodzić ssania) i umieść fotodiodę patrząc z przyssawki w kierunku powierzchni drzwi. Pozostaw fotodiodę na długich przewodach, aby rozciągnąć odległość między wizjerem a zasuwą.