Spisu treści:
- Krok 1: Narzędzia i materiały
- Krok 2: Demontaż jednostki oryginalnej
- Krok 3: Wyjaśnienie obwodów
- Krok 4: Przygotowanie ATTiny85
- Krok 5: Budowanie tarczy Wemos
- Krok 6: Przygotowanie Wemos
- Krok 7: Złóż wszystko razem
Wideo: IOToilet: 7 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
IOToilet to pierwszy inteligentny uchwyt na papier toaletowy, który śledzi nasze codzienne zużycie papieru toaletowego i umożliwia gromadzenie statystyk pokazujących te wskaźniki. Możesz zapytać, dlaczego powinienem dbać o codzienne zużycie papieru toaletowego? Jak się okazuje, zdrowie naszego brzucha, a zwłaszcza cykl trawienny, ma wiele wspólnego zarówno ze zdrowiem fizycznym, jak i psychicznym. Na przykład, oto miły wykład TED (przy okazji, jeden z wielu), który rozwija ten temat:
Początkowo zlecono mi zbudowanie 10 sztuk tego urządzenia dla agencji brandingowej, której klip widzicie powyżej (druga lokalizacja), do celowej kampanii marketingowej dla dużej firmy. Na początku odrzuciłem ten pomysł jako pochodzący z innego nadmiernie kreatywnego umysłu desperacko próbującego zdobyć konto klienta, ale stopniowo na mnie to rosło, aż zdałem sobie sprawę z wartości informacji zebranych za pomocą tego urządzenia.
Kompilacja została oparta na istniejącym sprzęcie, który mój klient otrzymał z serwisu eBay, urządzeniu do nagrywania głosu zamkniętym w uchwycie na papier toaletowy. Miała odpowiednią formę i wbudowane wszystkie potrzebne urządzenia peryferyjne, takie jak głośnik, czujnik ruchu uruchamiający urządzenie, sprężyny do trzymania samego papieru toaletowego, komora baterii i wyłącznik, więc chętnie się zdecydowałem używając tego gotowego, a nie modelując i drukując własne.
Krok 1: Narzędzia i materiały
Użyte materiały:
Uchwyt na papier toaletowy
Wemos D1 Mini
Układ ATTiny85, opakowanie DIP
Tranzystor 2x2n2222
Rezystor 220 Ohm
Rezystor 2*1 KOhm;
Akcelerometr MPU6050
Opcjonalnie, jeśli nie używam mojej płytki:
Tarcza prototypowa Wemos
drut, lut itp.
Narzędzia użyte:
Dremel z tarczą tnącą
Płytka deweloperska ATTiny (do wygodnego przesyłania oprogramowania układowego)
Programator USB Tiny ISP
śrubokręt trójkątny, ja użyłem tego zestawu:
Krok 2: Demontaż jednostki oryginalnej
Po uzyskaniu oryginalnego trzpienia papieru toaletowego otworzyłem jego obudowę za pomocą trójkątnego śrubokręta i wyjąłem oryginalną płytkę drukowaną odłączając głośnik i zostawiając jak najwięcej podłączonego do niego przewodu.
Następnie przylutowałem diodę LED i czujnik nachylenia z oryginalnej płytki drukowanej, aby później osadzić je w nowym obwodzie. Uważaj, aby nie przegrzać przełącznika przechyłu, ponieważ może to spowodować uszkodzenie. Mój był szary, ale ponieważ nie zrobiłem dobrego zdjęcia przy wyjmowaniu z oryginalnego urządzenia, musiałem użyć zdjęcia z siatki (patrz wyżej), gdzie było zielone. Tylko drobny szczegół.
Po otwarciu obudowy i wyjęciu elektroniki użyłem narzędzia Dremel do usunięcia nadmiaru plastiku, który był używany do utrzymywania oryginalnej płytki drukowanej na miejscu, tych małych plastikowych półek i jednej z 4 rurek śrubowych. Możesz odłożyć to na etap montażu, jeśli chcesz, ale w każdym przypadku konieczne będzie przycięcie z tworzywa sztucznego.
Krok 3: Wyjaśnienie obwodów
Oto trochę logiki stojącej za obwodem:
Aby baterie starczyły na długi czas, musiałem uśpić zarówno akcelerometr MPU6050, jak i procesor ESP8266 w Wemos D1 Mini między aktywacjami. Pierwszy był łatwy do wykonania za pomocą tranzystora, który włączał i wyłączał MPU6050.
Uwaga: Początkowo myślałem, że mogę go zaprogramować do wysyłania sygnału przerwania, który obudzi główny procesor. Niestety, nie mogłem znaleźć sposobu, aby to się stało, konfiguracja właściwych rejestrów MPU6050 była trudnym zadaniem, o którym nadal nie wiem, czy w ogóle jest to możliwe…
Moją drugą opcją było użycie przełącznika przechyłu dostarczonego z oryginalną jednostką do wybudzenia ESP. Najpierw przywiązałem go bezpośrednio do pinu Wemos RESET, jak opisano na powyższych zdjęciach, używając tranzystora do aktywacji/dezaktywacji mechanizmu. Gdy baza tranzystora była wysoka, GND mogło przejść przez przełącznik przechyłu i spowodować tymczasowe połączenie z pinem RESET, powodując reset MCU (jest to najwyraźniej jedyny sposób na wybudzenie ESP z głębokiego snu). Następnie podłączyłem D0 do bazy tranzystora, zgodnie z założeniem, że ta noga jest WYSOKA, dopóki MCU śpi, a gdy tylko się obudzi, D0 wraca do NISKIEGO, wyłączając mechanizm resetowania. W końcu nie potrzebowałem powtarzającego się resetu, tylko po raz pierwszy, gdy uchwyt na papier toaletowy zaczął się poruszać.
Jednak odkryłem, że pin D0 zajmuje dość dużo czasu po zresetowaniu MCU, aby powrócić do LOW, około 200 ms. Oznaczało to, że gdybym wystarczająco szybko obrócił uchwyt na papier toaletowy, gdy MCU spał, wystąpiłoby wiele resetów, zamiast liczyć rundy, tak jak powinno.
Próbowałem więc rozwiązać tę nową sytuację za pomocą niektórych elementów dyskretnych (kondensatorów, tranzystorów itp.), ale udało mi się uzyskać tylko częściowe rozwiązanie problemu.
Skończyło się na tym, że dodałem kolejny MCU, ATTiny85, który został wybudzony ze snu przez przełącznik przechyłu, a następnie obudził ESP8266 i odczekał trochę czasu przed ponownym zaśnięciem. Wiem, że to chyba nie jest najbardziej ekonomiczne rozwiązanie problemu, ale miałem termin…
Możesz zobaczyć szczegółowe rozwiązanie w załączonym schemacie. Należy pamiętać, że rezystory 10K zostały zastąpione 1K, ponieważ te 10k były zbyt wysokie, aby tranzystory mogły się w pełni otworzyć.
Krok 4: Przygotowanie ATTiny85
Jeśli nigdy nie programowałeś ATTiny85, nie bój się! Korzystanie z ukochanego Arduino IDE może Ci pomóc. Zacznij od tych instrukcji, jak skonfigurować Arduino IDE:
github.com/SpenceKonde/ATTinyCore/blob/mas…
Następnie zainstaluj sterowniki dla USBTinyISP stąd:
learn.adafruit.com/usbtinyisp/drivers
Teraz załaduj załączony kod testowy: WakeOnExternalInterruptTest.ino
i podłącz (patrz schemat wyprowadzeń ATTiny85):
1. Przycisk taktu między pinem 3 a ziemią
2. Szeregowo dioda LED i rezystor 220 Ohm, między stykiem 2 a masą
Następny, Wybierz USBTinyISP jako programator (w menu Narzędzia -> Programator) i wgraj szkic testowy na płytkę.
Dioda powinna zamigać 5 razy, a następnie chip powinien przejść w stan uśpienia. Naciśnięcie przycisku spowoduje jego wybudzenie i powtórzenie tej sekwencji.
Czy to działa? Świetnie! Prześlij końcowy szkic „Awakener” do ATTiny, aby użyć go na ostatnim obwodzie.
Krok 5: Budowanie tarczy Wemos
Tak więc, aby skonstruować tarczę masz 3 opcje do wyboru:
1. Użyj standardowego protoshield dla Wemos i przylutuj do niego obwody.
2. Wyprodukuj płytkę PCB na podstawie załączonych plików EAGLE.
3. Poproś mnie o płytkę, którą mogę wysłać pocztą (mam kilka leżących dookoła, koszt prawie nic).
W każdym razie zalecam zbudowanie obwodu na płytce stykowej przed zaangażowaniem się w płytkę drukowaną!
Jeśli korzystasz z opcji PCB, pamiętaj, aby podłączyć czarny przewód jak na zdjęciach, z przodu lub z tyłu płytki (u mnie najlepiej działała ta ostatnia). Ten przewód łączy GND z Wemos do ATTiny85 i bez niego wybudzenie nie nastąpi.
Wystarczy przyjrzeć się zdjęciom i przeczytać dodane przeze mnie adnotacje, to powinno wystarczyć.
Krok 6: Przygotowanie Wemos
Jeśli nigdy nie używałeś Arduino IDE do programowania płytki Wemos, zacznij od zainstalowania menedżera płytki i wybrania płytki w menu Narzędzia -> Płytka, jak opisano tutaj:
github.com/esp8266/Arduino
Zacznij od wgrania migającego szkicu na swoją tablicę, upewniając się, że kod został przesłany poprawnie.
Krok 7: Złóż wszystko razem
Zainstaluj osłonę na Wemos. Można go przylutować, ale polecam stosować żeńskie złącza wlutowane do Wemosa, które pozwolą na tymczasowe połączenie Wemosa z nakładką w razie problemów. Pamiętaj tylko, że żeńska głowica będzie musiała zejść w końcowej fazie montażu, aby urządzenie zmieściło się w plastikowej obudowie. Ponadto, aby nieco bardziej skomplikować sprawę, istnieje duża szansa, że po podłączeniu shielda do Wemosa przesyłanie kodu zostanie wyłączone. Spotkałem się z tym zjawiskiem w sposób niekonsekwentny i nie miałem czasu go zbadać.
Rada: planuj z wyprzedzeniem.
Teraz testowanie!
Po zainstalowaniu zacznij od przesłania szkicu testowego BlinkAccelerometer do Wemos i upewnij się, że włącza i wyłącza diodę LED MPU6050. Jeśli nie, sprawdź okablowanie tranzystora odpowiedzialnego za zasilanie MPU6050. Jego podstawę należy podłączyć do pinu D5 Wemosa, kolektor należy podłączyć do GND akcelerometru, a emiter do wspólnego GND.
Następnie prześlij szkic TurnCountTest1 na tablicę Wemos i otwórz Monitor szeregowy. Powinieneś zobaczyć dane pochodzące z akcelerometru prezentowane na monitorze. Jeśli nie działa, sprawdź okablowanie zegara i danych: CLK powinno być podłączone do D1, a DATA powinno być podłączone do D2.
Teraz przylutuj przełącznik przechyłu do wyznaczonych otworów w płytce (patrz adnotacje), upewniając się, że jest prostopadły do osi obrotu, aby obracające się wrzeciono zamknęło i otworzyło połączenie między jego dwoma wyprowadzeniami.
Następnie podłącz wejście baterii 3 V do Wemos VCC, a jego ujemny zacisk do Wemos GND. Upewnij się, że włączenie przełącznika włącza urządzenie. Na koniec podłącz głośnik do GND i pinu D4 Wemos.
Prześlij ostateczny kod do Wemos - szkic o nazwie SmartWipe. Otwórz monitor szeregowy i upewnij się, że urządzenie przechodzi w stan uśpienia po 3 minutach i zostaje wybudzone przez przesunięcie przełącznika przechyłu (odpowiedni komunikat powinien pojawić się na monitorze).
Jeśli chcesz skrócić czas czuwania Wemosa (głównie do celów testowych), zmniejsz wartość WIFI_CONFIGURATION_IDLE_TIMEOUT zdefiniowaną w params.h i prześlij szkic na tablicę. Upewnij się, że po tym, jak Wemos przejdzie w głęboki sen, przesunięcie przełącznika przechyłu powoduje wybudzenie ATTiny (sygnalizowane przez diodę LED), co z kolei budzi Wemos.
Zmień wartość parametru z powrotem na 180000L (3 minuty, w milisekundach) i upewnij się, że Wemos uruchamia Hotspot o nazwie IOToilet_XXXXXXXX, gdzie XXXXXXX zostanie pobrany z adresu MAC układu. Połącz się z tym Wifi za pomocą smartfona, a powinieneś zostać przekierowany do formularza rejestracyjnego (mechanizm zwany Captive Portal). Podaj dane, szczególnie ważny jest identyfikator SSID i hasło lokalnego Wi-Fi, i wyślij formularz. Urządzenie powinno następnie spróbować połączyć się z siecią przy użyciu dostarczonych danych uwierzytelniających, a jeśli się powiedzie, odtworzyć na głośniku 3 narastające dźwięki. Jeśli wystąpił problem z połączeniem z Wi-Fi, zostaną odtworzone 3 dźwięki opadające. Następnie Wemos powinien zapaść w głęboki sen, aż obudzi go ruch.
Na koniec: Test systemu od końca do końca.
Obróć uchwyt na papier toaletowy kilka obrotów wzdłuż jego osi obrotu, a następnie umieść go na stabilnej powierzchni (aby zasygnalizować, że rolka się skończyła i uruchomić przesyłanie danych). Poczekaj około 10 sekund na przesłanie licznika rzutów do chmury, a następnie przejdź do https://smartwipe-iot.appspot.com/ i kliknij Zapytanie. Powinieneś zobaczyć swoje dane rejestracyjne i ostatnią liczbę rzutów w chmurze! Pamiętaj, aby zapisać swój uuid, który jest unikalnym identyfikatorem w systemie, wyodrębnionym z adresu MAC twojego Wemos.
Jeśli chcesz wyodrębnić tylko swoje statystyki w formacie JSON, użyj adresu URL podobnego do tego:
smartwipe-iot.appspot.com/api?action=query&uuid=1234567890
po prostu zastąp uuid swoim.
Uwzględniłem wszystkie źródła aplikacji internetowej, która jest hostowana w silniku Google App, aby użytkownicy, którzy chcą uzyskać większą prywatność danych, mogli wdrożyć ją na swoim własnym użytkowniku Google, dodać uwierzytelnianie itp.
Gdy wszystko działa, włóż elektronikę do plastikowej obudowy, w razie potrzeby przycinając plastik dremelem. Całość powinna ładnie pasować do obudowy.
Kłopot? Napisz do mnie!
ZJEDNOCZONE KUPUJEMY!
Zalecana:
Kask ochronny Covid, część 1: wprowadzenie do obwodów Tinkercad!: 20 kroków (ze zdjęciami)
Kask ochronny Covid, część 1: wprowadzenie do obwodów Tinkercad!: Witaj, przyjacielu! W tej dwuczęściowej serii nauczymy się korzystać z obwodów Tinkercad - zabawnego, potężnego i edukacyjnego narzędzia do nauki działania obwodów! Jednym z najlepszych sposobów uczenia się jest robienie. Dlatego najpierw zaprojektujemy nasz własny projekt: th
Zegar lokalizacyjny „Weasley” z 4 wskazówkami: 11 kroków (ze zdjęciami)
Zegar lokalizacji „Weasley” z czterema wskazówkami: Tak więc, mając Raspberry Pi, które od jakiegoś czasu się bawiło, chciałem znaleźć fajny projekt, który pozwoli mi go jak najlepiej wykorzystać. Natknąłem się na ten wspaniały instruktażowy zegar lokalizacji Weasley'a autorstwa ppeters0502 i pomyślałem, że
Licznik kroków - Micro:Bit: 12 kroków (ze zdjęciami)
Licznik kroków - Micro:Bit: Ten projekt będzie licznikiem kroków. Do pomiaru kroków użyjemy czujnika przyspieszenia wbudowanego w Micro:Bit. Za każdym razem, gdy Micro:Bit się trzęsie, dodamy 2 do licznika i wyświetlimy go na ekranie
Bolt - DIY Wireless Charging Night Clock (6 kroków): 6 kroków (ze zdjęciami)
Bolt - DIY Wireless Charging Night Clock (6 kroków): Ładowanie indukcyjne (znane również jako ładowanie bezprzewodowe lub ładowanie bezprzewodowe) to rodzaj bezprzewodowego przesyłania energii. Wykorzystuje indukcję elektromagnetyczną do dostarczania energii elektrycznej do urządzeń przenośnych. Najpopularniejszym zastosowaniem jest stacja ładowania bezprzewodowego Qi
Jak zdemontować komputer za pomocą prostych kroków i zdjęć: 13 kroków (ze zdjęciami)
Jak zdemontować komputer za pomocą prostych kroków i zdjęć: To jest instrukcja demontażu komputera. Większość podstawowych komponentów ma budowę modułową i jest łatwa do usunięcia. Jednak ważne jest, abyś był w tym zorganizowany. Pomoże to uchronić Cię przed utratą części, a także ułatwi ponowny montaż