Spisu treści:
- Krok 1: Części i komponenty
- Krok 2: Czujnik
- Krok 3: Dostosowywanie zegara czasu rzeczywistego
- Krok 4: Inne różne na pokładzie
- Krok 5: Schemat
- Krok 6: Oprogramowanie i logika
Wideo: Postino: Czy listonosz coś dostarczył?: 6 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
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
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
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
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.
Drugie miejsce w konkursie technologii wspomagających
Zalecana:
Robot, który mówi, czy sprzedawca elektroniki Cię oszukuje, czy nie: 6 kroków
Robot, który mówi, czy sprzedawca elektroniki cię oszukuje, czy nie: W zeszłym roku ja i mój tata poszliśmy do nowo otwartego sklepu z robotyką i elektroniką, bardzo blisko naszego miejsca zamieszkania. Jak tam wszedłem, było pełno elektroniki, serow, czujników, Raspberry pis i Arduino. Następnego dnia poszliśmy do tego samego sklepu i kupiliśmy
Samouczek Arduino MFRC522 – Czy tag RFID jest obecny, czy usunięty?: 6 kroków
Samouczek Arduino MFRC522 - czy znacznik RFID jest obecny, czy usunięty?: Ten samouczek został pierwotnie opublikowany na stronie High Voltages
Program MicroPython: Czy toaleta jest zajęta?: 8 kroków (ze zdjęciami)
Program MicroPython: Czy toaleta jest zajęta?: Nasze biuro jest dużym biurem grupowym z ograniczoną przestrzenią łazienkową. często stwierdzam, że nie mam miejsca, aby pójść do łazienki, więc muszę czekać tak długo, że czuję się zawstydzony. W eksperymencie wykorzystano MakePython ESP8266 do skonfigurowania serwera wykrywania
AvoRipe - Sprawdzanie, czy Twoje awokado jest dojrzałe: 8 kroków (ze zdjęciami)
AvoRipe - Sprawdzanie, czy Twoje awokado jest dojrzałe: Zdarzyło się to każdemu, kupujesz awokado, jeszcze nie jest dojrzałe. Mija kilka dni, a zanim dojrzeje, zapomniałeś o tym… a za kilka dni może się nie udać! Na szczęście zaprojektowaliśmy i zbudowaliśmy AvoRipe, urządzenie, które sprawdza Twoje zamiłowania
Bezprzewodowa wersja Czy moje drzwi garażowe są otwarte czy zamknięte?: 7 kroków
Bezprzewodowa wersja… Czy moja brama garażowa jest otwarta czy zamknięta?: Chcieliśmy mieć prosty, tani i niezawodny system wskazujący, czy nasze bramy garażowe są otwarte, czy zamknięte. Istnieje wiele opcji „Czy moja brama garażowa jest otwarta?” projektowanie. Zdecydowana większość tych projektów jest okablowana na stałe. W moim przypadku biegać