Spisu treści:

Postino: Czy listonosz coś dostarczył?: 6 kroków (ze zdjęciami)
Postino: Czy listonosz coś dostarczył?: 6 kroków (ze zdjęciami)

Wideo: Postino: Czy listonosz coś dostarczył?: 6 kroków (ze zdjęciami)

Wideo: Postino: Czy listonosz coś dostarczył?: 6 kroków (ze zdjęciami)
Wideo: GĘŚ PIECZONA 9,5 GODZIN W DYNI. MIĘSO 🥩 w OGROMNEJ DYNI. ANGIELSKIE NAPISY 2024, Lipiec
Anonim
Postino: Czy listonosz coś dostarczył?
Postino: Czy listonosz coś dostarczył?

Nie mój pomysł: pewnego dnia przyjaciel poprosił mnie o możliwość zdalnego sprawdzenia, czy w jego skrzynce pocztowej nie leży jakakolwiek poczta. Skrzynka pocztowa nie znajduje się na ścieżce prowadzącej do jego drzwi, więc ponieważ jest leniwym chłopcem, zastanawiał się, czy gadżet technologiczny powinien być w stanie ostrzec go o każdym piśmie w skrzynce pocztowej. Spojrzałem na rynek i nie mogłem znaleźć żadnego gotowego urządzenia odpowiadającego jego potrzebom, więc postawiłem sobie wyzwanie: dlaczego nie zaprojektować i zbudować?

Ograniczeniami były:

  • zasilany bateryjnie z rozsądną żywotnością między wymianami baterii;
  • komunikacja Wi-Fi;
  • sprawdzaj tylko raz dziennie, czy była poczta, czy nie;

Główne pytanie brzmiało: jaki rodzaj czujnika mógłby spełnić moje wymagania? Czujnik zbliżeniowy nie mógł działać, ponieważ kontrolę trzeba było przeprowadzać tylko raz dziennie, a nie w czasie rzeczywistym; ani czujnika wagi, ponieważ zwiększyłoby to złożoność i problemy z czułością (kartka papieru może być bardzo lekka). Mój wybór padł na czujnik Time-of-Flight (mikro laserowy). Po skalibrowaniu go do rozmiaru skrzynki pocztowej wszystko, co znajduje się w środku, uruchomiłoby czujnik! Biorąc pod uwagę 3 ograniczenia, zdecydowałem się użyć ESP8266 (uruchamiającego oprogramowanie i łączącego się z Wi-Fi), czujnika czasu przelotu VL6180 do pomiaru i zegara czasu rzeczywistego DS3231 do wyzwalania wszystkich obwodów raz dziennie: w ten sposób Narodził się Postino!

Krok 1: Części i komponenty

  • ESP8266-01 (lub ESP-12E NodeMCU)
  • VL6108 czujnik czasu lotu
  • DS3231 Zegar czasu rzeczywistego
  • IRLZ44 N-kanałowy MosFET
  • Tranzystor BC547
  • Rezystory
  • Bateria CR123

Krok 2: Czujnik

Czujnik
Czujnik

Sercem systemu jest czujnik VL6180. Jest to przełomowa technologia umożliwiająca pomiar odległości bezwzględnej niezależnie od współczynnika odbicia celu. Zamiast szacować odległość, mierząc ilość światła odbitego z powrotem od obiektu (na co istotny wpływ ma kolor i powierzchnia), VL6180X precyzyjnie mierzy czas potrzebny na dotarcie światła do najbliższego obiektu i odbicie z powrotem do czujnika (czas lotu). Łącząc emiter podczerwieni, czujnik zasięgu i czujnik światła otoczenia w gotowym do użycia pakiecie trzy w jednym, VL6180X jest łatwy do zintegrowania i oszczędza producentowi produktu końcowego długie i kosztowne optymalizacje projektu optycznego i mechanicznego.

Moduł przeznaczony jest do pracy przy małej mocy. Użyłem płytki zaciskowej Pololu, która ma na pokładzie regulatory napięcia, które pozwalają jej pracować w zakresie napięcia wejściowego od 2,7 V do 5,5 V.

Czujnik umożliwia 3 ważne współczynniki skalowania, które ustawiają maksymalny zakres pomiaru od 20 do 60 cm, przy różnych czułościach. Konfigurując współczynnik skalowania zakresu, można zwiększyć potencjalny maksymalny zasięg czujnika kosztem niższej rozdzielczości. Ustawienie współczynnika skalowania na 2 zapewnia zasięg do 40 cm przy rozdzielczości 2 mm, podczas gdy współczynnik skalowania 3 zapewnia zasięg do 60 cm przy rozdzielczości 3 mm. Musisz przetestować 3 wagi z wymiarami skrzynki pocztowej. Ponieważ mój miał 25 cm (H), użyłem współczynnika skali=1.

Krok 3: Dostosowywanie zegara czasu rzeczywistego

Do RTC użyłem płytki zaciskowej DS3231, która zawiera pamięć EEPROM (bezużyteczną dla mojego celu) i baterię wielkości monety. Ponieważ zdecydowałem się zasilać RTC przez główną baterię urządzenia (3v CR123), wyjąłem baterię monetową; aby oszczędzać energię usunąłem też EEPROM (ostrożnie obcinając jego szpilki) oraz diodę na płycie.

Bateria monetowa nie była dla mnie przydatna, ponieważ nie musiałem przechowywać daty/godziny/minuty/sekundy w czasie rzeczywistym, ale RTC musiał tylko liczyć przez 24 godziny, a następnie uruchomić alarm, aby włączyć urządzenie.

Krok 4: Inne różne na pokładzie

Inne różne na pokładzie
Inne różne na pokładzie
Inne różne na pokładzie
Inne różne na pokładzie

Zasilanie urządzenia realizowane jest przez tranzystor i układ MosFET, wyzwalane alarmem RTC. Po zresetowaniu alarmu obwód odcina zasilanie urządzenia na kolejny 24-godzinny cykl. Po osiągnięciu alarmu DS3231 przełącza pin z wysokiego na niski: w normalnych warunkach tranzystor jest nasycony i zwiera się do masy bramki MosFET. Gdy alarm zbliży bazę tranzystora do masy, otwiera się i umożliwia tranzystorowi MosFET zamknięcie obwodu i zasilenie pozostałych komponentów.

Dodatkowo dodałem zworkę „test-1M”. Celem tego przełącznika jest – jeśli jest aktywowany – zmiana cyklu z raz dziennie na raz na minutę w celu przeprowadzenia testów wdrożeniowych. Aby zmienić interwał z jednego dnia na jedną minutę należy najpierw zamknąć zworkę „Test-C” na około 15 sekund, ominąć okres aktywacji alarmu zegara i włączyć urządzenie. Po zakończeniu testów otwórz zworki i zresetuj urządzenie (włącz ponownie).

Krok 5: Schemat

Schematyczny
Schematyczny

Krok 6: Oprogramowanie i logika

Podczas testów użyłem (ze względów praktycznych) kontrolera NodeMCU, więc oprogramowanie zadba o to ustawiając zmienną CHIP na „NodeMCU” lub „esp8266”.

Szkic implementuje bibliotekę WiFiManager, aby umożliwić urządzeniu łączenie się z prawidłowym punktem dostępu WiFi podczas pierwszego uruchomienia. W takim przypadku urządzenie przechodzi w tryb AP, dzięki czemu można się z nim połączyć i wybrać odpowiednią sieć WiFi do przyłączenia. Następnie konfiguracja sieci jest zapisywana w EPROM dla kolejnych cykli.

Zmienna REST_MSG zawiera wiadomość http do wysłania, gdy czujnik znajdzie obiekt w skrzynce pocztowej. W moim przypadku wysyła wiadomość na serwer domotic REST, ale możesz to zmienić według własnego uznania: wiadomość Telegram BOT, zdarzenie IFTTT WebHook itp.

Reszta szkicu znajduje się w funkcji setup(), ponieważ pętla nigdy nie zostanie osiągnięta. Po skonfigurowaniu potrzebnych kilku bibliotek program ustawia zegar na 00:00:01 i alarm na raz dziennie (lub raz na minutę, jeśli zworka „test-1M” jest załączona). Następnie dokonuje pomiaru, wysyła powiadomienie (jeśli w skrzynce znajduje się jakiś przedmiot) i resetuje pin alarmowy, wyłączając urządzenie. Pod koniec cyklu włączony jest tylko RTC, licząc przez 24 godziny. Zworkę Test-1M podłącza się do pinu RX układu ESP8266 używanego jako GPIO-3 za pomocą ustawienia: setMode(PIN, FUNCTION_3). Z tego powodu nie można używać monitora szeregowego podczas uruchamiania ESP8266: linia „ #define DEBUG” (która pozwala na wszystkie wydruki szeregowe w szkicu) jest używana tylko wtedy, gdy NodeMCU jest zainstalowane zamiast ESP8266.

ESP8266 obsługuje komunikację I2C z RTC i czujnikiem poprzez swoje piny GPIO-0 i GPIO-2, zainicjowane w bibliotece Wire.

Pełny kod można pobrać z tego linku.

Pomocniczy konkurs techniczny
Pomocniczy konkurs techniczny
Pomocniczy konkurs techniczny
Pomocniczy konkurs techniczny

Drugie miejsce w konkursie technologii wspomagających

Zalecana: