Obsah:

IOToilet: 7 kroků (s obrázky)
IOToilet: 7 kroků (s obrázky)

Video: IOToilet: 7 kroků (s obrázky)

Video: IOToilet: 7 kroků (s obrázky)
Video: 🚽 Skibidi Toilet BABIES?! 💩 | DuckyOMG 2024, Listopad
Anonim

IOToilet je první chytrý držák toaletního papíru, který sleduje naše každodenní používání toaletního papíru a umožňuje shromažďovat statistiky ukazující tyto metriky. A proč bych se měl ptát na své každodenní používání toaletního papíru? Jak se ukazuje, naše břišní zdraví, zejména trávicí cyklus, má mnoho společného jak s fyzickým, tak s mentálním. Například zde je pěkná přednáška TED (mimochodem, jedna z mála), která toto téma zpracovává:

Původně jsem byl pověřen postavením 10 jednotek tohoto zařízení pro značkovou agenturu, jejíž klip můžete vidět výše (2. místo), pro účelovou marketingovou kampaň pro velkou společnost. Na začátku jsem tuto myšlenku zavrhl jako myšlenku přicházející od jiné příliš kreativní mysli, která se zoufale snaží získat klientský účet, ale postupně to na mě rostlo, až jsem si uvědomil hodnotu informací shromážděných prostřednictvím tohoto zařízení.

Stavba byla založena na stávajícím hardwaru, který můj klient získal z EBay, zařízení pro záznam hlasu zapouzdřeného v držáku toaletního papíru. Měl správný tvarový faktor a všechny potřebné periferie již byly zabudovány, jako reproduktor, pohybový senzor pro spuštění zařízení, pružiny pro držení samotného toaletního papíru, přihrádka na baterie a vypínač, takže jsem se rád rozhodl pomocí tohoto ready made spíše než modelování a tisku vlastního.

Krok 1: Nástroje a materiály

Nástroje a materiály
Nástroje a materiály
Nástroje a materiály
Nástroje a materiály
Nástroje a materiály
Nástroje a materiály
Nástroje a materiály
Nástroje a materiály

Použité materiály:

Držák na toaletní papír

Wemos D1 Mini

Čip ATTiny85, balení DIP

2 x 2n2222 tranzistor

Rezistor 220 Ohm

2 * 1KOhm odpor

Akcelerometr MPU6050

Volitelné v případě, že nepoužívám desku plošných spojů:

Wemos prototyping štít

drát, pájka atd.

Použité nástroje:

Dremel s řezacím kotoučem

Deska ATTiny dev (pro pohodlné nahrávání firmwaru)

USB Tiny ISP programátor

trojúhelníkový šroubovák, použil jsem tuto sadu:

Krok 2: Odstraňování znečištění původní jednotky

Odstraňování znečištění původní jednotky
Odstraňování znečištění původní jednotky
Odstraňování znečištění původní jednotky
Odstraňování znečištění původní jednotky
Odstraňování znečištění původní jednotky
Odstraňování znečištění původní jednotky

Po získání původního vřetene toaletního papíru jsem pomocí trojúhelníkového šroubováku otevřel jeho pouzdro a vyjmul původní DPS, odpojil reproduktor a nechal k němu připojeno co nejvíce vodičů.

Poté jsem pájel LED a snímač náklonu z původní desky plošných spojů, abych je později vložil do nových obvodů. Dávejte pozor, abyste nepřehřáli spínač naklonění, protože by se mohl poškodit. Moje byla šedá, ale protože jsem ji při vyjmutí z původního zařízení pořádně nevyfotil, musel jsem použít fotografii ze sítě (viz výše), kde byla zelená. Jen drobný detail.

Po otevření pouzdra a vyjmutí elektroniky jsem také pomocí Dremelu odstranil přebytečný plast, který sloužil k držení původní DPS na místě, těchto malých plastových polic a jedné ze 4 šroubovacích trubek. Pokud chcete, můžete to odložit do fáze montáže, ale v každém případě bude vyžadováno nějaké plastové oříznutí.

Krok 3: Vysvětlení obvodů

Obvod vysvětlen
Obvod vysvětlen
Obvod vysvětlen
Obvod vysvětlen

Zde tedy trochu o logice za obvodem:

Aby baterie dlouho vydržely, musel jsem do režimu Wemos D1 Mini dát mezi aktivacemi jak akcelerometr MPU6050, tak procesor ESP8266 do Wemos D1 Mini. První byl snadno proveden pomocí tranzistoru, který zapínal a vypínal MPU6050.

Poznámka: Původně jsem si myslel, že bych to mohl naprogramovat tak, aby vyslal signál přerušení, který probudí hlavní procesor. Bohužel jsem nemohl najít způsob, jak toho dosáhnout, konfigurace správných registrů MPU6050 byla ošemetná úloha, o které stále nevím, jestli je vůbec možné…

Moje druhá možnost bylo použít k probuzení ESP přepínač naklonění dodávaný s původní jednotkou. Nejprve jsem jej přivázal přímo na pin Wemos RESET, jak je popsáno na fotografiích výše, pomocí tranzistoru k aktivaci/deaktivaci mechanismu. Když byla základna tranzistoru vysoká, GND mohl projít přepínačem náklonu a dočasně se připojit ke kolíku RESET, což způsobilo reset MCU (to je jediný způsob, jak probudit ESP z hlubokého spánku, zřejmě). Poté jsem připojil D0 k tranzistorové základně podle předpokladu, že tato noha je VYSOKÁ, pokud MCU spí, a jakmile se probudí, D0 přejde zpět na LOW a deaktivuje resetovací mechanismus. Koneckonců jsem nepotřeboval, aby se opakoval reset, jen poprvé, když se držák toaletního papíru začal pohybovat.

Zjistil jsem však, že pin D0 trvá poměrně dlouho, než se MCU resetuje zpět na LOW, asi 200 ms. To znamenalo, že když jsem dostatečně rychle roztočil držák toaletního papíru, zatímco MCU spal, došlo by k několika RESETům místo počítání kol, jak by mělo.

Zkusil jsem tedy vyřešit tuto novou situaci některými diskrétními součástkami (kondenzátory, tranzistory atd.), Ale podařilo se mi získat pouze částečné řešení problému.

Nakonec jsem přidal další MCU, ATTiny85, který se probudil ze spánku pomocí přepínače náklonu, poté probudil ESP8266 a chvíli počkal, než se vrátil do režimu spánku. Vím, že to pravděpodobně není nejekonomičtější řešení problému, ale měl jsem termín …

Podrobné řešení můžete vidět ve schématu, které jsem zahrnul. Vezměte prosím na vědomí, že 10K odpory byly nahrazeny 1K, protože 10k odpory byly příliš vysoké na to, aby se tranzistory úplně otevřely.

Krok 4: Příprava ATTiny85

Příprava ATTiny85
Příprava ATTiny85

Pokud jste nikdy neprogramovali ATTiny85, nebojte se! Používání milovaného Arduino IDE vás dovede celou cestu. Začněte těmito pokyny, jak konfigurovat IDE Arduino:

github.com/SpenceKonde/ATTinyCore/blob/mas…

Dále nainstalujte ovladače pro USBTinyISP odtud:

learn.adafruit.com/usbtinyisp/drivers

Nyní načtěte přiložený testovací kód: WakeOnExternalInterruptTest.ino

a připojte se (viz diagram ATTiny85 Pinout):

1. Taktovací tlačítko mezi kolíkem 3 a zemí

2. LED a odpor 220 Ohm v sérii, mezi pinem 2 a zemí

Další, Vyberte USBTinyISP jako programátor (v části Nástroje -> Programátor) a nahrajte testovací skicu na tabuli.

LED by měla bliknout 5krát, poté by měl čip přejít do režimu spánku. Stisknutím tlačítka se probudí a tato sekvence se opakuje.

Funguje to? skvělý! Nahrajte konečný náčrt „Awakener“do ATTiny, který bude použit na závěrečném okruhu.

Krok 5: Budování štítu Wemos

Budování štítu Wemos
Budování štítu Wemos
Budování štítu Wemos
Budování štítu Wemos
Budování štítu Wemos
Budování štítu Wemos
Budování štítu Wemos
Budování štítu Wemos

K sestavení štítu tedy máte 3 možnosti, z nichž si můžete vybrat:

1. Pro Wemos použijte standardní protoshield a připájejte na něj obvody.

2. Vytvořte desku plošných spojů na základě připojených souborů EAGLE.

3. Požádejte mě o desku plošných spojů, kterou vám mohu poslat šnečí poštou (několik jich mám povalených, cena téměř nic).

V každém případě doporučuji před zapojením do desky plošných spojů postavit obvod na prkénko!

Pokud používáte možnosti desky plošných spojů, nezapomeňte připojit černý vodič jako na fotografiích, a to na přední nebo zadní stranu desky (pro mě to fungovalo nejlépe). Tento vodič spojuje GND z Wemosu s ATTiny85 a bez něj se probuzení neuskuteční.

Stačí se pořádně podívat na obrázky a přečíst si anotace, které jsem přidal, tohle by mělo stačit.

Krok 6: Příprava Wemos

Pokud jste nikdy nepoužili Arduino IDE k programování desky Wemos, začněte instalací správce desek a výběrem desky v nabídce Nástroje -> Deska, jak je popsáno zde:

github.com/esp8266/Arduino

Začněte nahráním skici mrknutím na tabuli a ujistěte se, že se kód nahraje správně.

Krok 7: Dát to všechno dohromady

Dát to všechno dohromady
Dát to všechno dohromady
Dát to všechno dohromady
Dát to všechno dohromady
Dát to všechno dohromady
Dát to všechno dohromady

Nainstalujte štít na Wemos. Můžete jej pájet, ale doporučuji použít ženské hlavičky připájené k Wemos, které v případě jakýchkoli potíží umožní dočasné spojení mezi Wemos a štítem. Jen mějte na paměti, že zásuvka musí v konečné fázi montáže vystoupit, aby se jednotka vešla do plastové skořepiny. Také, aby to bylo trochu komplikovanější, je velká šance, že když je štít připojen k Wemos, nahrávání kódu bude deaktivováno. Setkal jsem se s tímto jevem nekonzistentním způsobem a neměl jsem čas jej zkoumat.

Slovo rady: plánujte dopředu.

Nyní testování!

Jakmile je nainstalován, začněte odesláním testovacího náčrtu BlinkAccelerometer na Wemos a ujistěte se, že zapíná a vypíná LED MPU6050. Pokud ne, zkontrolujte zapojení tranzistoru, který je zodpovědný za napájení MPU6050. Jeho základna by měla být připojena ke kolíku D5 Wemos, kolektor by měl být připojen k GND akcelerometru a vysílač by měl být připojen ke společnému GND.

Dále nahrajte skicu TurnCountTest1 na desku Wemos a otevřete Serial Monitor. Měli byste vidět data pocházející z akcelerometru zobrazeného na monitoru. Pokud nefunguje, zkontrolujte hodiny a datové zapojení: CLK by mělo být připojeno k D1 a DATA by mělo být připojeno k D2.

Nyní připájejte přepínač náklonu do určených otvorů v desce (viz anotace) a ujistěte se, že je kolmý na osu otáčení, aby se otáčením vřetena uzavřelo a otevře spojení mezi jeho dvěma vývody.

Dále připojte vstup baterie 3V k Wemos VCC a jeho mínus terminál k Wemos GND. Ujistěte se, že zapnutím vypínače se jednotka zapne. Nakonec připojte reproduktor k GND a kolíku D4 Wemos.

Nahrajte konečný kód do Wemos - skica s názvem SmartWipe. Otevřete sériový monitor a ujistěte se, že se jednotka po 3 minutách přepne do režimu spánku a probudí se pohybem přepínače naklonění (na monitoru by se měly objevit odpovídající zprávy).

Pokud chcete zkrátit dobu, po kterou je Wemos vzhůru (hlavně pro testovací účely), snižte hodnotu WIFI_CONFIGURATION_IDLE_TIMEOUT definovanou v paramets.h a nahrajte skicu na tabuli. Ujistěte se, že poté, co Wemos přejde do hlubokého spánku, posunutí přepínače náklonu způsobí, že se ATTiny probudí (signalizováno LED), což Wemose zase probudí.

Změňte hodnotu parametru zpět na 180000L (3 minuty, v milisekundách) a ujistěte se, že Wemos spustí hotspot s názvem IOToilet_XXXXXXXX, kde bude XXXXXXX načteno z MAC adresy čipu. Připojte se k této Wifi pomocí chytrého telefonu a měli byste být přesměrováni na registrační formulář (mechanismus zvaný Captive Portal). Vyplňte údaje, obzvláště důležité je SSID a heslo vaší místní wifi, a odešlete formulář. Jednotka by se poté měla pokusit připojit k síti pomocí dodaných přihlašovacích údajů a pokud bude úspěšná, přehrajte na reproduktoru 3 vzestupné zvuky. Pokud došlo k problému s připojením k síti Wifi, přehrají se 3 sestupné zvuky. Poté by Wemos měli jít do hlubokého spánku, dokud je neprobudí pohyb.

Nakonec: End to end System test.

Otočte držák toaletního papíru o několik otáček podél jeho osy otáčení a poté jej položte na stabilní povrch (pro signalizaci konce role a spuštění odesílání dat). Počkejte asi 10 sekund, než bude počet rolí odeslán do cloudu, poté přejděte na stránku https://smartwipe-iot.appspot.com/ a klikněte na Dotaz. V cloudu byste měli vidět své registrační údaje a počet nedávných rolí využití! Nezapomeňte si napsat své uuid, což je vaše jedinečné ID v systému, extrahované z MAC adresy vašeho Wemosu.

Pokud chcete extrahovat pouze své statistiky ve formátu JSON, použijte adresu URL podobnou této:

smartwipe-iot.appspot.com/api?action=query&uuid=1234567890

stačí vyměnit uuid za svůj.

Zahrnul jsem všechny zdroje pro webovou aplikaci, která je hostována na Google App Engine, takže uživatelé, kteří chtějí získat větší soukromí dat, je mohou nasadit na svém vlastním uživateli Google, přidat autentizaci atd.

Když vše funguje, vložte elektroniku do plastové skořepiny a plast podle potřeby ořízněte dremelem. Celý kus by měl pěkně zapadnout do pouzdra.

Problémy? Napište mi!

SPOJENÉ POKOPÁVÁME!

Doporučuje: