Spisu treści:

LEIDS - Czujnik drzwi o niskiej energii IOT: 8 kroków (ze zdjęciami)
LEIDS - Czujnik drzwi o niskiej energii IOT: 8 kroków (ze zdjęciami)

Wideo: LEIDS - Czujnik drzwi o niskiej energii IOT: 8 kroków (ze zdjęciami)

Wideo: LEIDS - Czujnik drzwi o niskiej energii IOT: 8 kroków (ze zdjęciami)
Wideo: REVAN - THE COMPLETE STORY 2024, Listopad
Anonim
LEIDS - Czujnik drzwi o niskiej energii IOT
LEIDS - Czujnik drzwi o niskiej energii IOT

Czym są LEIDY?

LEIDS to czujnik IOT oparty na ESP8266. Ten czujnik wykorzystuje tę płytkę, miękki obwód zatrzaskowy, kontaktron i kilka magnesów, aby stworzyć czujnik drzwi, który wyśle ostrzeżenie, gdy drzwi się otwierają i zamykają. Ten czujnik można podłączyć do serwera MQTT, IFTTT lub wielu innych platform obsługujących ESP8266. Ten instruktaż użyje IFTTT do łatwego stworzenia czujnika, który wyśle ostrzeżenie do Twojego urządzenia mobilnego, bez względu na to, gdzie jesteś. Czujnik można również skonfigurować tak, aby umożliwiał wysyłanie wielu alertów z oddzielnych drzwi, skrzynek pocztowych, piekarników i wszystkiego, co ma fizyczną pozycję otwarcia/zamknięcia lub włączenia/wyłączenia. Zaletą LEIDS jest to, że zużywa minimalną moc i zużywa ją tylko wtedy, gdy drzwi są otwarte, a gdy drzwi są zamknięte, wysyła wiadomość ostrzegającą, że drzwi zostały zamknięte i wyłączają się. Jest to lepsze niż głębokie spanie modułu, ponieważ nie zużywa energii, jeśli drzwi nie są otwarte.

Krok 1: Materiały eksploatacyjne

Kieszonkowe dzieci
Kieszonkowe dzieci
Kieszonkowe dzieci
Kieszonkowe dzieci
Kieszonkowe dzieci
Kieszonkowe dzieci
Kieszonkowe dzieci
Kieszonkowe dzieci

Poniższe listy pokazują narzędzia i części, których użyłem do tego projektu. Czujnik można przeprojektować tak, aby używał różnych części i różnił się wyglądem/funkcjonalnością i po prostu używał podobnych koncepcji.

Narzędzia:

  • Lutownica
  • ESP01-UART lub Arduino Uno (programator dla ESP8266)
  • drukarka 3D (opcja)
  • Kable rozruchowe (opcjonalnie)
  • Deska do krojenia chleba (opcjonalnie)

Części:

  • ESP8266 ESP-01S x 1
  • Kontaktron x 1 (najlepiej NC, mogłem znaleźć tylko normalnie otwarty, więc muszę użyć dwóch magnesów, aby działał jak normalnie zamknięty)
  • Regulator AMS1117 3.3v
  • Tranzystor 2n3904 NPN x 1
  • P-Channel Mosfet x 1 (chcemy coś, co ma niski VGS, najlepiej NDP6020P)
  • Bateria Lipo 3.7 v 100 mAh x 1
  • Różne rezystory (100k ohm, 10k ohm, 220 ohm, 3k3 Ohm)
  • Magnesy 6x3mm x 2
  • Dwustronna taśma montażowa
  • Drut
  • Lutować
  • Płyta perforowana

Części drukowane 3D:

Etui na czujnik

Krok 2: Obwód miękkiego zatrzasku - sprzęt

Obwód miękkiego zatrzasku - sprzęt
Obwód miękkiego zatrzasku - sprzęt

Obwód miękkiego zatrzasku, którego używam, jest modyfikacją schematu, który znalazłem w Internecie. Nie jestem ekspertem i wierzę, że istnieją lepsze sposoby na zbudowanie tego toru, ale w moim celu ten tor spełnia swoje zadanie!

Działa to tak, że gdy kontaktron jest zamknięty przez pole magnetyczne, przepuszcza prąd do tranzystora NPN. Tranzystor NPN następnie uziemia mosfet PNP, co umożliwia przepływ prądu do ESP8266. ESP8266 włącza się, używa jednego ze swoich pinów do uziemienia mosfetu PNP, który nadal zasila ESP8266. Następnie, gdy ESP8266 wykona swoje zadania, ustawia ten pin wyjściowy na LOW, co przerywa tranzystor NPN i zamyka bramkę na mosfecie PNP.

Korzystając z takiego obwodu, ESP8266 może być zasilany przełącznikiem, a następnie może się całkowicie wyłączyć za pomocą sygnału. Dzięki temu obwód nie pobiera prądu, gdy czujnik jest zamknięty/wyłączony.

Krok 3: ESP8266 - sprzęt

ESP8266 - Sprzęt
ESP8266 - Sprzęt

ESP8266, którego używam, będzie wysyłał komunikat ostrzegający, gdy drzwi (lub inna rzecz) są otwarte, a następnie będzie czekał, aż drzwi się zamkną, aby wysłać wiadomość o zamknięciu i zamknąć się. ESP8266 będzie zasilany przez obwód miękkiego zatrzasku i użyje jednego pinu do odczytu kontaktronu, a drugiego pinu do utrzymania zasilania, a następnie do wyłączenia. Zdecydowałem się na użycie ESP-01 ze względu na ich małą obudowę. ESP wyśle żądanie internetowe, aby powiadomić nas, gdy czujnik zostanie zmieniony na „otwarty” i „zamknięty”. Najłatwiejszą metodą, jaką znalazłem, było użycie IFTTT i Arkuszy Google. Wyjaśniono to w poniższych krokach.

Krok 4: IFTTT dla zdalnych powiadomień - część 1

IFTTT dla zdalnych powiadomień – część 1
IFTTT dla zdalnych powiadomień – część 1
IFTTT dla zdalnych powiadomień – część 1
IFTTT dla zdalnych powiadomień – część 1
IFTTT dla zdalnych powiadomień – część 1
IFTTT dla zdalnych powiadomień – część 1
IFTTT dla zdalnych powiadomień – część 1
IFTTT dla zdalnych powiadomień – część 1

W tej instrukcji będziemy używać IFTTT i wdrażać webhooki i arkusze google, aby otrzymywać zdalne powiadomienia na naszym urządzeniu mobilnym. Aby skorzystać z tych usług, będziesz potrzebować:

  • Konto Google
  • Konto IFTTT (można/należy zalogować się na konto Google)
  • Aplikacja IFTTT na Twoje urządzenie mobilne

Po utworzeniu/zalogowaniu się na swoje konta utworzymy dwa aplety. Zdjęcia na górze tej sekcji pokazują, jak poruszać się po stronie. Poniższe kroki dotyczą pierwszego apletu, żądania wywołanego zdarzeniem. Ten aplet otrzyma wiadomość z czujnika i zapisze zdarzenie w dokumencie arkuszy Google. Następnie możesz wyświetlić historię swojego czujnika i zobaczyć, kiedy został otwarty i zamknięty.

  1. Przejdź do linku „Moje aplety” znajdującego się na górze
  2. Kliknij przycisk „Nowy aplet”
  3. Kliknij niebieski przycisk „+to”
  4. Wyszukaj „webhook” i kliknij na niego
  5. Na następnej stronie wybierz kartę „Odbierz zgłoszenie internetowe”
  6. Następnie ustaw nazwę wydarzenia na dowolną, którą chcesz, wybrałem nazwę „sensor_activated”
  7. Na następnej stronie kliknij niebieski przycisk „+to”
  8. Wyszukaj usługę „arkusz google” i wybierz ją
  9. Na następnej stronie wybierz funkcję „Dodaj wiersz do arkusza kalkulacyjnego”
  10. Wypełnij akcję w następujący sposób:

    • Nazwa arkusza kalkulacyjnego, nazwałem swoją „Historia czujnika”
    • Sformatowany wiersz musi wyglądać następująco

      {{OccurredA}} ||| {{Wartość1}} ||| {{Wartość2}}

    • Pozostaw ostatnie pole bez zmian, chyba że chcesz zmienić miejsce, w którym aplet będzie zapisywał stan czujnika
  11. Następnie kliknij „Utwórz działanie”
  12. Na koniec kliknij „Zakończ” na ostatnim ekranie

Teraz przetestujmy, że to działa

  1. Przejdź do tego linku
  2. Następnie kliknij przycisk „Dokumentacja” (później ponownie użyjemy tej strony „Dokumentacja”)
  3. Teraz znajdziesz się w swojej osobistej sekcji dla apletu IFTTT Webhooks
  4. Wypełnij pole „{event}” nazwą zdarzenia, w tym przypadku nazwa zdarzenia to „sensor_activated”
  5. Teraz wypełnij pole "value1", to jest pole, które będzie zawierało lokalizację twojego czujnika, wypełnię je "Drzwi przednie"
  6. Teraz wypełnij pole "value2", to jest pole, które będzie miało status czujnika, mam zamiar wypełnić "otwarty" tylko do testów
  7. Następnie kliknij niebieski przycisk „Przetestuj”
  8. Jeśli wszystko poszło dobrze, powinieneś otrzymać zielony komunikat „Wydarzenie zostało wywołane”. wiadomość na górze
  9. Teraz, jeśli chcesz zobaczyć, jak przechowuje twoją wiadomość, możesz otworzyć arkusze google i znaleźć dodany arkusz kalkulacyjny. Załączam zdjęcie, aby pokazać, jak będzie wyglądać arkusz kalkulacyjny

Przejdźmy teraz do następnego kroku, dodając aplet powiadamiający nas o zmianie statusu.

Krok 5: IFTTT dla zdalnych powiadomień - część 2

IFTTT dla zdalnych powiadomień – część 2
IFTTT dla zdalnych powiadomień – część 2
IFTTT dla zdalnych powiadomień – część 2
IFTTT dla zdalnych powiadomień – część 2
IFTTT dla zdalnych powiadomień – część 2
IFTTT dla zdalnych powiadomień – część 2

Teraz dodamy aplet, aby powiadomić nas, kiedy do arkusza kalkulacyjnego stanu zostanie dodany wiersz; innymi słowy, gdy czujnik odpala zdarzenie. Tak jak poprzednio, będziemy tworzyć nowy aplet. Poniższe kroki poprowadzą Cię w tworzeniu drugiego apletu. Ponieważ zrobiliśmy coś podobnego w poprzednim kroku, dodam tylko slajdy, które różnią się od tego kroku.

  1. Przejdź do linku „Moje aplety” znajdującego się na górze
  2. Kliknij przycisk „Nowy aplet”
  3. Kliknij niebieski przycisk „+to”
  4. Wyszukaj „arkusz google” i kliknij go
  5. Na następnej stronie wybierz kartę „Nowy wiersz dodany do arkusza kalkulacyjnego”
  6. Następnie wypełnij pola, aby wskazać arkusz kalkulacyjny, do którego pisze drugi aplet

    • W tym przykładzie ścieżka to „IFTTT/MakerWebooks/sensor_activated”
    • Nazwa pliku to „Historia czujnika”
  7. Na następnej stronie kliknij niebieski przycisk „+to”
  8. Wyszukaj usługę „powiadomienia” i wybierz ją
  9. Teraz musimy wypełnić pola usługi powiadomień

    • Tytuł zostaje zmieniony na

      {{KolumnaB}} była {{KolumnaC}}

    • Wiadomość jest ustawiona na

      {{KolumnaB}} była {{KolumnaC}} w {{KolumnaA}}

    • Link pozostaje sam
  10. Następnie kliknij „Utwórz działanie”
  11. Na koniec kliknij „Zakończ” na ostatnim ekranie

Aby przetestować drugą część systemu powiadomień IFTTT, upewnij się, że pobrałeś aplikację IFTTT na swoje urządzenie mobilne i zaloguj się za pomocą swoich danych uwierzytelniających. W moim przypadku loguję się na swoje konto Google. Teraz możemy to przetestować, wracając do strony „Dokumentacja” i uruchamiając test z nazwą zdarzenia ustawioną jako „sensor_activated”, polem „value1” ustawionym na lokalizację i polu „value2” ustawionym na status.

Powinno to wysłać powiadomienie. Jeśli go nie otrzymasz, upewnij się, że jesteś zalogowany na to samo konto i zezwoliłeś aplikacji na wysyłanie powiadomień.

Krok 6: Arduino IDE i szkic

Arduino IDE i szkic
Arduino IDE i szkic
Arduino IDE i szkic
Arduino IDE i szkic

Oprogramowanie użyte do płytki jest kompilowane przy użyciu Arduino IDE.

Logika jest następująca:

  • Kontaktron jest zamykany przez otwarcie drzwi
  • ESP jest następnie włączany i łączy się z Wi-Fi
  • Po nawiązaniu połączenia Wi-Fi wysyła żądanie http (wysyła polecenie do Internetu), które informuje nas, że drzwi lub coś innego zostały otwarte
  • Następnie odczytuje sygnał z kontaktronu, aby stwierdzić, czy drzwi zostały zamknięte
  • Gdy płyta ESP wykryje, że kontaktron jest otwarty (tj. drzwi były zamknięte), wysyła kolejne żądanie http, które mówi nam, że drzwi zostały zamknięte
  • Następnie sygnalizuje obwodowi miękkiego zatrzasku odcięcie zasilania płyty;

Pobierz Arduino IDE

Załączam kod arduino do tej sekcji do pobrania. Jeśli nie masz Arduino IDE, możesz pobrać je online pod adresem

Zainstaluj odpowiedniego menedżera zarządu

Aby przesłać kod na płytę ESP, musisz zainstalować menedżera płyty w Arduino IDE, wykonując następujące kroki.

  • Przejdź do Plik > Preferencje, aby otworzyć okno preferencji
  • W oknie preferencji znajdź pole „Additional Board Manager URLs”
  • Wklej poniższy link w to pole https://arduino.esp8266.com/stable/package_esp8266com_index.json i naciśnij przycisk "OK"
  • Teraz otwórz menedżera tablic, przechodząc do Narzędzia> Tablica, a pierwszym wpisem będzie Menedżer tablic
  • Wpisz "ESP8266" w menu płyty i zainstaluj "esp8266" Wybrałem wersję 2.5.0 ponieważ miałem pewne problemy z nowszymi wersjami
  • Teraz wróć i wybierz swoją tablicę z Narzędzia> Tablica> Ogólny moduł ESP8266
  • Następnie zamknij i ponownie otwórz arduino ide, aby upewnić się, że zmiany miały miejsce

Otwórz szkic w Arduino IDE

Musimy zmodyfikować cztery wiersze kodu, aby czujnik działał dla Ciebie

  1. Zmień SSID na SSID Wi-Fi, czyli nazwę Wi-Fi
  2. Zmień hasło, aby pasowało do hasła do Wi-Fi
  3. Zmień adres URL, aby pasował do adresu URL ze strony „Dokumentacja” usługi „webhook”
  4. Zmień lokalizację czujnika na miejsce, w którym planujesz go umieścić, mogą to być drzwi frontowe, tylne, skrzynka pocztowa itp.

Teraz, gdy zmodyfikowałeś kod, aby odpowiadał Twoim potrzebom, musimy go załadować na tablicę. W moim przypadku używam programatora USB i postępuję zgodnie z jego instrukcjami. Może to wymagać wielu rozwiązywania problemów, więc sugeruję, abyś poszukał bardziej szczegółowego samouczka w Internecie. W moim przypadku podłączam ESP-01 do programatora, następnie podłączam go do komputera, potem przełączam przełącznik z uart na prog, na koniec odłączam i ponownie podłączam programator. To teraz pozostawia ESP w trybie programowania. Teraz po prostu klikam przycisk przesyłania i pozwalam, aby przesyłanie się zakończyło. Jeśli chcesz sprawdzić, czy się łączy, możesz otworzyć monitor szeregowy i przejrzeć komunikaty o stanie. Po przesłaniu szkicu zlutujemy wszystko razem, umieścimy w obudowie i zamontujemy w wybranym miejscu.

Krok 7: Obudowa (wydruk 3D)

Obudowa (druk 3D)
Obudowa (druk 3D)
Obudowa (druk 3D)
Obudowa (druk 3D)
Obudowa (druk 3D)
Obudowa (druk 3D)

Poniższą obudowę zaprojektowałem tak, aby pomieścić wszystkie komponenty, umożliwić umieszczenie magnesu i wyrównanie kontaktronu. Druga część służy tylko do trzymania drugiego magnesu, który pozwoli na otwieranie i zamykanie przełącznika.

Gdy wszystkie elementy są ze sobą zlutowane, możemy wcisnąć je do obudowy, jeśli chcesz, możesz dodać trochę gorącego kleju na dno, aby wszystko było w środku. Następnie musimy wcisnąć jeden magnes do obudowy z elektroniką i wyrównać kontaktron w razie potrzeby. Drugi magnes należy wcisnąć w drugą obudowę. Gdy obie obudowy są gotowe, możemy je przetestować, składając je razem, a następnie rozdzielając je i łącząc z powrotem. Powinniśmy teraz otrzymać dwa powiadomienia, jedno dla czujnika otwartego, a drugie dla czujnika zamkniętego. Trzymaj je razem, aby bateria się nie rozładowała.

Przymocuj taśmę montażową z tyłu czujników i przyklej je w wybranym miejscu. Zamontowałem swój na mojej skrzynce pocztowej. Teraz sprawdź, czy wyrównanie jest prawidłowe i czy czujnik jest w stanie wysłać wiadomość o otwarciu i zamknięciu.

Voila, masz teraz swój własny czujnik, który ostrzega Cię, gdy jest otwierany i zamykany. Daj mi znać, czy Ci się podoba i czy jest coś, co Twoim zdaniem można poprawić.

Przesyłam również tę instrukcję do konkursu IOT, więc polub i zagłosuj na ten i inne projekty IOT, które Ci się podobały

Krok 8: Przyszłe ulepszenia

W przypadku tego projektu napotkałem kilka problemów. Pierwszym problemem, jaki napotkałem, było użycie mosfeta, który miał zbyt wysoki Vgs, więc musiałem przełączyć się na inny. Po drugie, kontaktron, którego użyłem, jest normalnie otwarty, aw moim przypadku normalnie zamknięty przełącznik byłby łatwiejszy do wdrożenia i zaoszczędziłby dużo miejsca. Wreszcie esp 01s był bardzo trudny w obsłudze i musiałem zepsuć piny gpio, aby działał poprawnie, ale nadal miałem pewne problemy. Myślę, że ten projekt był w stanie nauczyć mnie wielu pojęć i pomógł mi wymyślić więcej pomysłów i wdrożeń z wykorzystaniem płyt esp8266 i IFTTT.

Wyzwanie IoT
Wyzwanie IoT
Wyzwanie IoT
Wyzwanie IoT

Drugie miejsce w wyzwaniu IoT

Zalecana: