Spisu treści:

Zewnętrzne drzwiczki dla zwierząt IoT: 6 kroków (ze zdjęciami)
Zewnętrzne drzwiczki dla zwierząt IoT: 6 kroków (ze zdjęciami)

Wideo: Zewnętrzne drzwiczki dla zwierząt IoT: 6 kroków (ze zdjęciami)

Wideo: Zewnętrzne drzwiczki dla zwierząt IoT: 6 kroków (ze zdjęciami)
Wideo: ZROBIŁEŚ ZE MNIE ZWIERZĘ | ZBRODNIA PO POLSKU II #3 2024, Lipiec
Anonim
Zewnętrzne drzwi dla zwierząt IoT
Zewnętrzne drzwi dla zwierząt IoT
Zewnętrzne drzwi dla zwierząt IoT
Zewnętrzne drzwi dla zwierząt IoT
Zewnętrzne drzwi dla zwierząt IoT
Zewnętrzne drzwi dla zwierząt IoT
Zewnętrzne drzwi dla zwierząt IoT
Zewnętrzne drzwi dla zwierząt IoT

Ta instrukcja zainspirowała mnie do stworzenia automatycznych drzwi do kurnika. Nie tylko chciałem, aby drzwi do kurnika były sterowane zegarem, ale także chciałem podłączyć drzwi do Internetu, aby móc sterować nimi za pomocą telefonu lub komputera. Te drzwi zostały zbudowane dla mojego kurnika, jednak można je łatwo zastosować do innych typów pomieszczeń dla różnych zwierząt. Możesz również użyć różnych rodzajów silników 12 V oprócz starego silnika anteny samochodowej, którego użyłem.

Po skonfigurowaniu i podłączeniu Adafruit IO i IFTTT do mojego ESP8266, moje drzwi do kurnika mogą być sterowane online. Drzwi można otwierać lub zamykać:

1) W dokładnych godzinach, w których wchodzę na adafruit.io

2) Naciskając przycisk na moim telefonie

3) Wysyłając SMS pod wskazany numer

4) Klikając przycisk na adafruit.io

5) Naciskając fizyczny przycisk

Oprócz tych funkcji, drzwi do kurnika mogą wysyłać powiadomienia push na mój telefon za pośrednictwem aplikacji IFTTT o wszelkich problemach z drzwiami, takich jak nieumiejętność otwierania lub zamykania drzwi.

Ponieważ mój kurnik znajduje się na zewnątrz około 500 stóp od mojego routera WiFi, do realizacji tego projektu użyłem nadajnika i odbiornika 433 MHz RFM69HCW sparowanego z ESP8266. Jest czarna wewnętrzna skrzynka nadajnika ze sprzętem podłączonym do Internetu i szara zewnętrzna skrzynka odbiorcza, która steruje silnikiem.

Ta instrukcja przeprowadzi Cię przez proces tworzenia sprzętu wymaganego do sterowania silnikiem 12 V, który otwiera lub zamyka drzwi do mojego kurnika.

Użyłem następujących części:

Adafruit 32u4 z 433MHz RFM69HCW - 25 USD

Adafruit MCP23017 I2C 16 ekspander portów wejść/wyjść IC - $2.95

Pióro Adafruit HUZZAH z ESP8266 WiFi - 16,95 USD

Adafruit Radio FeatherWing 433 MHz RFM69HCW - 10 USD

Złącze Adafruit SMA do płytek drukowanych o grubości 1,6 mm - $2.50

Złącze antenowe Adafruit uFL SMA - $0.75

Przycisk Adafruit RGB - 10,95 $

Zasilanie 12V - 7 USD

Zasilacz USB 5V - 7 USD

Kabel Micro USB - 5 USD

4-kanałowa tablica przekaźnikowa (może używać 2 kanałów) - 7 USD?

Przetwornik Buck DC-DC (używany tylko jeden, ale dostępny w zestawie 5 sztuk) - 20 USD

Kontaktron (czujnik przełącznika magnetycznego drzwi) - 9 USD

Antena dookólna 2x 433 MHz - 6 USD

Adapter kabla uFL do SMA (używany tylko jeden, ale dostępny w zestawie 2) - 5 USD

Wodoodporne zewnętrzne pudełko projektowe ABS - 11 USD

Czarne pudełko projektowe ABS - $10

Wyświetlacz LCD 20x4 niebieski ze znakami - 10 USD

Silnik anteny samochodowej 12 V - ~ 25 USD w serwisie eBay

Drut i rezystory

Krok 1: Odbiornik zewnętrzny

Odbiornik zewnętrzny
Odbiornik zewnętrzny
Odbiornik zewnętrzny
Odbiornik zewnętrzny

Odbiornik zewnętrzny składa się z Adafruit 32u4 z 433MHz RFM69HCW podłączonym do kilku przekaźników, które włączają lub wyłączają zasilanie silnika 12V. Moduły te oraz konwerter 12V na 5V DC-DC znajdują się w wodoodpornym szarym pudełku projektowym. Wreszcie, do jednego z pinów mikrokontrolera Arduino 32u4 podłączony jest czujnik przełącznika drzwi, który wykrywa, czy drzwi zostały prawidłowo otwarte lub zamknięte, kiedy powinny.

Co 15 sekund nadajnik wewnętrzny wysyła komunikat „Otwiera” lub „Zamyka”. Na podstawie otrzymanego polecenia Arduino 32u4 włączy lub wyłączy przekaźnik. W przypadku silnika, który wybrałem, czyli starego silnika anteny samochodowej, musiałem włączyć lub wyłączyć dwa przekaźniki ze względu na sposób podłączenia silnika. Zasadniczo był przekaźnik do włączania zasilania, a następnie inny przekaźnik, który kontrolował, czy silnik jest wysunięty, czy cofnięty.

Po odebraniu sygnału otwarcia lub zamknięcia odbiornik zewnętrzny odpowiada komunikatem „sensorOpen” lub „sensorClosed”, aby wskazać stan czujnika przełącznika drzwi. W idealnym przypadku polecenie „otwórz” zwróci odpowiedź „sensorOpen”, jednak jeśli drzwi utkną lub silnik się zatnie, nie będą one pasować. Gdy się nie zgadzają, nadajnik wewnętrzny wyświetli te informacje, a na Twój telefon zostanie wysłane powiadomienie.

Krok 2: Podłączanie sprzętu odbiornika zewnętrznego

Podłączanie sprzętu odbiornika zewnętrznego
Podłączanie sprzętu odbiornika zewnętrznego
Podłączanie sprzętu odbiornika zewnętrznego
Podłączanie sprzętu odbiornika zewnętrznego
Podłączanie sprzętu odbiornika zewnętrznego
Podłączanie sprzętu odbiornika zewnętrznego

Okablowanie odbiornika zewnętrznego nie jest trudne. Poniżej zamieściłem schemat fritzowania, aby można było łatwo przeglądać szpilki, których użyłem.

Jak wspomniałem powyżej, używany przeze mnie silnik wymagał dwóch przekaźników. Dołączyłem zdjęcie pinouta. W momencie, gdy podłączysz 12V do czerwonego przewodu, silnik cofnie się, jeśli jest wysunięty. Jeśli podłączysz 12V do czerwonego i zielonego przewodu jednocześnie, silnik wydłuży się.

Kontaktron, który połączyłem powyżej, powinien być podłączony jako normalnie zamknięty przełącznik. Różnica między normalnie otwartym a normalnie zamkniętym jest wyjaśniona na obrazku, który załączyłem powyżej. Korzystając z oprogramowania, do pinu wejściowego 32u4 dołączony jest wewnętrzny rezystor podciągający, więc wszystko, co musisz zrobić, to podłączyć przełącznik drzwi do pinu wejściowego, a także do masy.

Będziesz musiał podłączyć antenę do Adafruit 32u4. Sprawdź naprawdę dobrze wyjaśniony samouczek Adafruit dotyczący tego kroku. Zdecydowałem się na użycie zewnętrznej anteny zamiast kawałka drutu, aby uzyskać lepszy zasięg.

Krok 3: Nadajnik wewnętrzny

Nadajnik wewnętrzny
Nadajnik wewnętrzny
Nadajnik wewnętrzny
Nadajnik wewnętrzny
Nadajnik wewnętrzny
Nadajnik wewnętrzny

Nadajnik wewnętrzny składa się z Adafruit Radio FeatherWing 433 MHz RFM69HCW ułożonego na szczycie Adafruit Feather HUZZAH z ESP8266 WiFi. Moduły te są połączone z wyświetlaczem 20x4 i srebrnym przyciskiem RGB wewnątrz czarnej skrzynki projektowej.

Wyświetlacz posiada zsynchronizowany zegar NTC, siłę RSSI w dB (mierzy siłę sygnałów radiowych), godzinę otwarcia drzwi kurnika, godzinę zamknięcia drzwi kurnika i aktualny stan drzwi. Przycisk jest czerwony, gdy drzwi są zamknięte i zielony, gdy drzwi są otwarte.

W przypadku utraty zasilania odbiornika zewnętrznego lub gdy sygnał 433MHz nie może być wysłany z jakiegokolwiek powodu, wyświetlacz i przycisk RGB przejdą w pierwszy z dwóch możliwych trybów błędu. W pierwszym trybie błędu na wyświetlaczu pojawi się „BŁĄD! Spróbuj ponownie uruchomić odbiornik zewnętrzny”. a przycisk nie będzie miał koloru. Jeśli czujnik przełącznika drzwi wykryje, że drzwi nie zostały prawidłowo zamknięte lub otwarte, wyświetlacz i przycisk RGB przejdą w drugi z dwóch trybów błędu. W drugim trybie błędu na wyświetlaczu pojawi się komunikat „BŁĄD! Problem z czujnikiem drzwi lub przełącznika”. a przycisk nie będzie miał koloru. Gdy problem sam się rozwiąże, wyświetlacz i przycisk RGB powrócą do normy. Możesz otrzymywać powiadomienia push na swój telefon, jeśli wystąpi którykolwiek z tych trybów błędu (omówię tę konfigurację w późniejszym kroku).

Krok 4: Podłączanie sprzętu nadajnika wewnętrznego

Podłączanie sprzętu nadajnika wewnętrznego
Podłączanie sprzętu nadajnika wewnętrznego
Podłączanie sprzętu nadajnika wewnętrznego
Podłączanie sprzętu nadajnika wewnętrznego

Po ułożeniu Adafruit Radio FeatherWing 433 MHz RFM69HCW na wierzchu Adafruit Feather HUZZAH z ESP8266 WiFi, pozostały tylko 2 styki, które nie są zajęte, styki I2C SDA i SCL. Dlatego wybrałem układ scalony (IC) MCP23017. To naprawdę fajny układ scalony, który łączy do 16 dodatkowych pinów wejścia/wyjścia do dowolnego mikrokontrolera przez I2C. Dodatkowo istnieje wstępnie napisana biblioteka o nazwie Adafruit-RGB-LCD-Shield, która wykorzystuje ten układ scalony z wyświetlaczem znaków, który jest technicznie napisany dla tego produktu Adafruit, jednak działa idealnie w tym projekcie.

Pomysł użycia MCP23017 z wyświetlaczem znaków pochodzi z tej bardzo dobrze napisanej instrukcji. Proszę sprawdź to!

Wziąłem to z instrukcją i zamiast podłączać wiele przycisków i wyświetlacz RGB do układu scalonego, podłączyłem tylko jeden przycisk, który miał wewnątrz diodę LED RGB i monochromatyczny wyświetlacz do układu scalonego. To pozwoliło mi zdefiniować PIN 1 układu scalonego (zwykle używany do niebieskiego podświetlenia wyświetlacza RGB) jako podświetlenie dla mojego monochromatycznego wyświetlacza, PIN 28 (zwykle używany do zielonego podświetlenia wyświetlacza RGB) jako czerwona dioda LED wewnątrz przycisk i PIN 27 (zwykle używany do czerwonego podświetlenia wyświetlacza RGB) jako zielona dioda LED wewnątrz przycisku. PIN 24 był podłączony z jednej strony przycisku, a druga strona była podłączona do masy. Wyprowadzenie przycisku widać na załączonym powyżej obrazku (niebieską katodę pozostawiłem odłączoną).

Oprócz korzystania z tego instruktażu, który połączyłem, aby pomóc okablować wyświetlacz, zamieściłem schemat fritzowania, który pomoże ci wszystko połączyć.

Będziesz musiał zewrzeć trzy piny na górze FeatherWing 433MHz RFM69HCW, jak wyjaśniono w tym samouczku Adafruit. Będziesz także musiał podłączyć antenę do FeatherWing 433MHz RFM69HCW. Sprawdź naprawdę dobrze wyjaśniony samouczek Adafruit dotyczący tego kroku. Zdecydowałem się na użycie zewnętrznej anteny z bocznym złączem SMA zamiast kawałka drutu, aby uzyskać lepszy zasięg.

Krok 5: Łączenie się z Adafruit. IO i IFTTT

Łączenie z Adafruit. IO i IFTTT
Łączenie z Adafruit. IO i IFTTT
Łączenie z Adafruit. IO i IFTTT
Łączenie z Adafruit. IO i IFTTT

Adafruit IO:

Postępuj zgodnie z instrukcjami w tym samouczku Adafruit, aby zarejestrować się w Adafruit. IO, jeśli nie masz konta. Powinieneś także przeczytać o tym, czym jest kanał i pulpit nawigacyjny.

Mówiąc prościej, pulpit nawigacyjny przypomina graficzny interfejs użytkownika, podczas gdy kanały są tym, do którego wysyłasz dane, aby można je było przechowywać w Internecie. Musisz utworzyć 1 pulpit nawigacyjny i 4 kanały. Nazwałem swój, zanim nauczyłem się poprawnie przeliterować kurnik, więc proszę wybacz niepoprawną pisownię. Jeśli nie chcesz zmieniać nazw kanałów w kodzie arduino, po prostu użyj tego samego nazewnictwa co ja.

Najpierw utwórz cztery kanały:

1) "Zamach Kurczaka" To jest dla przełącznika otwartego/zamkniętego

2) "Zegar Coup Kurczaka" To jest dla otwartego timera

3) „Zegar 2 kurcząt” To jest dla timera zamknięcia

4) „Komunikat o błędzie Kurczaka” Dotyczy komunikatów o błędach

Utwórz pulpit nawigacyjny o nazwie Chicken Coup i dodaj 4 bloki za pomocą niebieskiego przycisku +. Proszę spojrzeć na obrazek powyżej, aby zobaczyć typy bloków, które należy umieścić, a także nazwy bloków. Upewnij się, że stany przełącznika są dokładnie nazwane „Otwarty” i „Zamknięty”

IFTTT:

Część IFTTT tego projektu dodaje możliwość naciśnięcia przycisku w telefonie i wysłania SMS-a, aby otworzyć lub zamknąć drzwi do kurnika. Pozwala również aplikacji IFTTT na wysyłanie powiadomień push, jeśli coś zostanie opublikowane w kanale wiadomości o błędzie Chicken Coup. Jeśli nie chcesz tych możliwości, możesz pominąć tę sekcję.

Najpierw załóż konto IFTTT, jeśli jeszcze go nie masz. Jeśli chcesz korzystać z gotowych apletów, które utworzyłem, po prostu przejdź do mojego konta i włącz wybrane aplety. W przeciwnym razie będziesz musiał stworzyć własny i zasubskrybować lub opublikować utworzony powyżej kanał adafruit.

Krok 6: Przesyłanie kodu i edytowanie identyfikatora SSID i hasła WiFi

Musisz przejść przez tę stronę samouczka Adafruit, aby móc przesłać kod do nadajnika wewnętrznego.

Musisz przejść przez tę stronę samouczka Adafruit, aby móc przesłać kod do odbiornika zewnętrznego.

Będziesz musiał zainstalować bibliotekę RFM69, bibliotekę Adafruit_RGBLCDShield, bibliotekę zegara NTC o nazwie simpleDSTadjust oraz bibliotekę ticker. Samouczek, jak to zrobić, znajdziesz tutaj.

Otwórz Arduino IDE i prześlij kod „Outdoor_Receiver.ino” do zewnętrznego Arduino 32u4 za pomocą kabla USB.

Następnie otwórz „Indoor_Transmitter.ino”, otwórz kartę config.h i wprowadź swoją nazwę WiFi (SSID) i hasło w cudzysłowie. Następnie uzyskaj swoją nazwę użytkownika Adafruit. IO i klucz IO, postępując zgodnie z tą stroną samouczka i wprowadź ją w zakładce config.h.

Jeśli zmieniłeś nazwy kanałów Adafruit IO, będziesz musiał edytować kod w głównej zakładce Indoor_Transmitter. Edytuj następujące elementy:

AdafruitIO_Feed *toggleSwitch = io.feed("Przewrót kurczaka");

AdafruitIO_Feed *timer = io.feed("Zegar wywrotu kurczaka");

AdafruitIO_Feed *timer2 = io.feed("Zegar wywrotu kurczaka 2");

AdafruitIO_Feed *error = io.feed("Komunikat błędu zamachu kurczaka");

To powinno być wszystko, co musisz zrobić! Jeśli chcesz lepiej zrozumieć, jak działają te dwa szkice, skomentowałem kod. Daj mi znać, jeśli masz jakieś pytania. Powodzenia!

Zalecana: