Sadržaj:
- Korak 1: Alati i materijali
- Korak 2: Dismentalizacija izvorne jedinice
- Korak 3: Objašnjenje strujnog kruga
- Korak 4: Priprema ATTiny85
- Korak 5: Izgradnja Wemos štita
- Korak 6: Priprema Wemosa
- Korak 7: Sve spojite
Video: IOToilet: 7 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
IOToilet je prvi pametni držač toaletnog papira koji prati našu svakodnevnu upotrebu toaletnog papira i omogućuje prikupljanje statističkih podataka koji pokazuju te mjerne podatke. Možda biste pitali zašto bih trebao brinuti o svakodnevnoj upotrebi toaletnog papira? Pa, pokazalo se da naše trbušno zdravlje, osobito probavni ciklus, imaju mnogo veze i s fizičkim i s mentalnim zdravljem. Na primjer, evo lijepog TED govora (usput jedan od rijetkih) koji razrađuje ovu temu:
Prvotno sam dobio narudžbu za izgradnju 10 jedinica ovog uređaja za agenciju za robnu marku, čiji isječak možete vidjeti gore (2. mjesto), za namjensku marketinšku kampanju za veliku tvrtku. U početku sam odbacio tu ideju kao ideju nekog drugog, previše kreativnog uma koji je očajnički pokušavao osvojiti korisnički račun, no postupno je to raslo na meni, sve dok nisam shvatio vrijednost podataka prikupljenih putem ovog uređaja.
Izrada se temeljila na postojećem komadu hardvera koji je moj klijent dobio od EBay -a, uređaja za snimanje glasa koji je zatvoren u držač toaletnog papira. Imao je pravi oblik i već ugrađene sve potrebne periferne uređaje, poput zvučnika, senzora pokreta za aktiviranje uređaja, opruga za držanje samog toaletnog papira, pretinca za baterije i prekidača za uključivanje i isključivanje, pa sam se rado odlučio koristeći ovo već izrađeno nego modeliranje i tiskanje vlastitog.
Korak 1: Alati i materijali
Korišteni materijali:
Držač toaletnog papira
Wemos D1 Mini
ATTiny85 čip, DIP pakiranje
2 x 2n2222 tranzistor
Otpornik od 220 ohma
2 * 1KOhm otpornik
Akcelerometar MPU6050
Izborno, u slučaju da ne koristim PCB:
Wemos prototipni štit
žica, lemljenje itd.
Korišteni alati:
Dremel s diskom za rezanje
ATTiny dev ploča (za prikladno učitavanje firmvera)
USB Tiny ISP programer
trokutasti odvijač, koristio sam ovaj komplet:
Korak 2: Dismentalizacija izvorne jedinice
Nakon što sam nabavio originalno vreteno toaletnog papira, otvorio sam njegovo kućište trokutastim odvijačem i izvadio originalnu PCB, odspojivši zvučnik i ostavivši na njemu što je moguće više žice.
Zatim sam lemio LED diodu i osjetnik nagiba s originalne PCB -a, da bi kasnije bili ugrađeni u nova kola. Pazite da ne pregrijete sklopku za nagib jer se može oštetiti. Moj je bio siv, ali budući da ga nisam dobro snimio prilikom uklanjanja s izvornog uređaja, morao sam upotrijebiti fotografiju s mreže (vidi gore), gdje je bila zelena. Samo mali detalj.
Nakon otvaranja kućišta i uklanjanja elektronike, također sam upotrijebio Dremel za uklanjanje viška plastike koja se koristila za držanje izvornog PCB -a, ovih malih plastičnih polica i jedne od 4 vijčane cijevi. To možete odgoditi do faze montaže ako želite, ali u svakom slučaju bit će potrebno odrezivanje plastike.
Korak 3: Objašnjenje strujnog kruga
Dakle, evo malo o logici koja stoji iza sklopa:
Kako bi baterije trajale dugo, morao sam staviti akcelerometar MPU6050 i procesor ESP8266 u Wemos D1 Mini u stanje mirovanja između aktivacija. Prvi je lako napravljen pomoću tranzistora koji je uključivao i isključivao MPU6050.
Napomena: U početku sam mislio da ga mogu programirati za slanje signala prekida koji će probuditi glavni procesor. Nažalost, nisam mogao pronaći način da se to dogodi, konfiguriranje odgovarajućih registara MPU6050 bilo je škakljiv zadatak za koji još uvijek ne znam je li uopće moguće …
Druga mi je mogućnost bila upotreba prekidača za naginjanje isporučenog s izvornom jedinicom za buđenje ESP -a. Prvo sam ga vezao izravno na Wemos RESET pin kao što je opisano na gornjim fotografijama, koristeći tranzistor za aktiviranje/deaktiviranje mehanizma. Kad je baza tranzistora bila visoka, GND je mogao proći kroz prekidač za nagib i uzrokovati njegovo privremeno spajanje na pin RESET, uzrokujući resetiranje MCU -a (ovo je očito jedini način da probudite ESP iz dubokog sna). Zatim sam spojio D0 na bazu tranzistora, slijedeći premisu da je ova noga VISOKA sve dok MCU spava, a čim se probudi, D0 se vraća na LOW, onemogućujući mehanizam za poništavanje. Uostalom, nije mi bilo potrebno ponavljanje resetiranja, samo po prvi put kad se držač toaletnog papira počeo micati.
Međutim, ono što sam otkrio je da pin D0 treba dosta vremena nakon resetiranja MCU -a da se vrati na LOW, oko 200ms. To je značilo da će, ako okrenem držač toaletnog papira dovoljno brzo dok MCU spava, doći do višestrukih resetiranja, umjesto brojanja rundi, kako bi trebalo.
Dakle, pokušao sam riješiti ovu novu situaciju s nekim diskretnim komponentama (kondenzatori, tranzistori itd.), Ali uspio sam dobiti samo djelomično rješenje problema.
Na kraju sam dodao još jedan MCU, ATTiny85, koji bi se iz stanja mirovanja probudio prekidačem za naginjanje, zatim probudio ESP8266 i čekao neko vrijeme prije nego što sam se vratio u san. Znam da ovo vjerojatno nije najekonomičnije rješenje problema, ali imao sam rok …
Detaljno rješenje možete vidjeti u shemi koju sam uključio. Imajte na umu da su 10K otpornici zamijenjeni 1K jer su oni 10K bili previsoki da bi se tranzistori mogli potpuno otvoriti.
Korak 4: Priprema ATTiny85
Ne bojte se ako nikada niste programirali ATTiny85! Korištenjem omiljenog Arduino IDE -a možete doći do kraja. Počnite s ovim uputama o tome kako konfigurirati Arduino IDE:
github.com/SpenceKonde/ATTinyCore/blob/mas…
Zatim instalirajte upravljačke programe za USBTinyISP odavde:
learn.adafruit.com/usbtinyisp/drivers
Sada učitajte priloženi testni kod: WakeOnExternalInterruptTest.ino
i spojite (pogledajte ATTiny85 dijagram iscrtavanja):
1. Taknite gumb između pina 3 i mase
2. LED i otpornik od 220 Ohma u nizu, između pina 2 i mase
Sljedeći, Odaberite USBTinyISP kao programera (pod Alati -> Programer) i prenesite testnu skicu na ploču.
LED bi trebao treptati 5 puta, a zatim bi čip trebao zaspati. Pritiskom na gumb probudit će se i ponoviti taj slijed.
Jeste li uspjeli? Sjajno! Prenesite konačnu skicu "Budilac" u ATTiny, koja će se koristiti u završnom krugu.
Korak 5: Izgradnja Wemos štita
Dakle, za izgradnju štita imate 3 mogućnosti koje možete birati:
1. Za Wemos upotrijebite standardni protozaslon i na njega zalemite strujna kola.
2. Napravite PCB, na temelju priloženih datoteka EAGLE.
3. Zatražite od mene PCB koji vam mogu poslati puževom poštom (nekoliko ih leži, trošak je gotovo ništa).
U svakom slučaju, preporučujem da se sklopi krug na ploči prije predaje na PCB!
Ako koristite opcije PCB -a, svakako spojite crnu žicu kao na fotografijama, s prednje ili stražnje strane ploče (potonje mi je najbolje odgovaralo). Ova žica povezuje GND od Wemosa do ATTiny85 i bez nje se neće probuditi.
Samo dobro pogledajte slike i pročitajte napomene koje sam dodao, ovo bi trebalo biti dovoljno.
Korak 6: Priprema Wemosa
Ako nikada niste koristili Arduino IDE za programiranje Wemos ploče, počnite instaliranjem upravitelja ploče i odabirom ploče u izborniku Alati -> Ploča, kako je ovdje opisano:
github.com/esp8266/Arduino
Počnite tako što ćete prenijeti treptajuću skicu na svoju ploču, pazeći da se kôd pravilno učita.
Korak 7: Sve spojite
Postavite štit na Wemos. Možete ga zalemiti, ali preporučujem korištenje ženskih zaglavlja zalemljenih na Wemos koji će omogućiti privremenu vezu između Wemosa i štita, u slučaju bilo kakvih problema. Samo imajte na umu da će žensko zaglavlje morati sići u posljednjoj fazi montaže kako bi se jedinica uklopila u plastičnu ljusku. Također, kako bismo stvari zakomplicirali, postoji velika šansa da će se prijenos koda onemogućiti kada se štit poveže s Wemosom. Susreo sam se s tom pojavom na nedosljedan način i nisam imao vremena za njeno istraživanje.
Savjet: planirajte unaprijed.
E sad, testiranje!
Nakon instaliranja počnite postavljanjem testne skice BlinkAccelerometra na Wemos i pobrinite se da uključuje i isključuje LED MPU6050. Ako nije, provjerite ožičenje tranzistora koji je odgovoran za napajanje MPU6050. Njegova bi baza trebala biti spojena na pin D5 Wemosa, kolektor bi trebao biti spojen na GND akcelerometra, a odašiljač na zajednički GND.
Zatim prenesite skicu TurnCountTest1 na ploču Wemos i otvorite Serial Monitor. Trebali biste vidjeti podatke koji dolaze sa mjerača ubrzanja prikazani na monitoru. Ako ne radi, provjerite sat i ožičenje podataka: CLK bi trebao biti spojen na D1, a DATA na D2.
Sada lemite prekidač za nagib na predviđene rupe na ploči (pogledajte napomene), pazeći da je okomit na os rotacije, tako da se okretanjem vretena zatvori i otvori veza između njegova dva vodiča.
Zatim spojite 3V ulaz baterije na Wemos VCC, a njegov minus terminal na Wemos GND. Uvjerite se da uključivanjem prekidača uređaj uključuje. Na kraju, spojite zvučnik na GND i pin D4 Wemosa.
Prenesite konačni kod u Wemos - skicu pod nazivom SmartWipe. Otvorite serijski monitor i pobrinite se da uređaj pređe u stanje spavanja nakon 3 minute i da se probudi pomicanjem prekidača za naginjanje (odgovarajuće poruke bi se trebale pojaviti na monitoru).
Ako želite smanjiti vrijeme dok je Wemos budan (uglavnom radi testiranja), smanjite vrijednost WIFI_CONFIGURATION_IDLE_TIMEOUT definiranu u params.h i prenesite skicu na ploču. Pobrinite se da nakon što Wemos ode u duboki san, pomicanjem prekidača za naginjanje probudi se ATTiny (signalizira LED), što zauzvrat budi Wemos.
Vratite vrijednost parametra na 180000L (3 minute, u milisekundama) i pobrinite se da Wemos aktivira žarišnu točku zvanu IOToilet_XXXXXXXX gdje će se XXXXXXX dohvatiti s MAC adrese čipa. Spojite se na ovaj Wifi putem pametnog telefona i trebali biste biti usmjereni na obrazac za registraciju (mehanizam koji se naziva Captive Portal). Ispunite pojedinosti, posebno je važno SSID i lozinka vašeg lokalnog WiFi -a te pošaljite obrazac. Uređaj bi se zatim trebao pokušati povezati s mrežom pomoću isporučenih vjerodajnica, a ako uspije, reproducirati 3 rastuća zvuka na zvučniku. Ako je došlo do problema pri povezivanju na Wifi, reproducirat će se 3 silazna zvuka. Nakon toga, Wemos bi trebao zaspati, dok ga pokret ne probudi.
Konačno: Sustavno testiranje s kraja na kraj.
Zamotajte držač toaletnog papira duž njegove osi rotacije nekoliko okretaja, a zatim ga postavite na stabilnu površinu (za signalizaciju pomoću role završilo je i pokretanje prijenosa podataka). Pričekajte oko 10 sekundi da se brojevi rola pošalju u oblak, a zatim idite na https://smartwipe-iot.appspot.com/ i kliknite Upit. U oblaku biste trebali vidjeti svoje podatke o registraciji i broj nedavnih upotreba! Obavezno zapišite svoj uuid, koji je vaš jedinstveni ID u sustavu, izdvojen s MAC adrese vašeg Wemosa.
Ako želite izdvojiti samo svoju statistiku u JSON formatu, upotrijebite URL sličan ovom:
smartwipe-iot.appspot.com/api?action=query&uuid=1234567890
samo zamijeni uuid sa svojim.
Uključio sam sve izvore za web aplikaciju koja je hostirana na Google App Engineu tako da korisnici koji žele steći veću privatnost podataka mogu je primijeniti na vlastitom Google korisniku, dodati autentifikaciju itd.
Kad sve radi, umetnite elektroniku u plastičnu ljusku, obrezujući plastiku dremelom po potrebi. Cijeli komad trebao bi se lijepo uklopiti u kućište.
Problemi? Napiši mi!
UJEDINJENI POOP!
Preporučeni:
Kako: Instaliranje Raspberry PI 4 bez glave (VNC) s Rpi-imagerom i slikama: 7 koraka (sa slikama)
Kako: Instaliranje Raspberry PI 4 Headless (VNC) s Rpi-imagerom i slikama: Planiram koristiti ovaj Rapsberry PI u hrpi zabavnih projekata na svom blogu. Slobodno provjerite. Htio sam se vratiti korištenju Raspberry PI -a, ali nisam imao tipkovnicu ili miš na novoj lokaciji. Prošlo je dosta vremena od postavljanja maline
Kako napraviti brojač koraka?: 3 koraka (sa slikama)
Kako napraviti brojač koraka?: Nekada sam se dobro snašao u mnogim sportovima: hodanje, trčanje, vožnja bicikla, igranje badmintona itd. Volim jahanje da bih brzo putovao. Pa, pogledaj moj trbušni trbuh … Pa, u svakom slučaju, odlučujem ponovno početi vježbati. Koju opremu trebam pripremiti?
Brojač koraka - Mikro: Bit: 12 koraka (sa slikama)
Brojač koraka - Micro: Bit: Ovaj projekt će biti brojač koraka. Za mjerenje koraka koristit ćemo senzor akcelerometra koji je ugrađen u Micro: Bit. Svaki put kad se Micro: Bit protrese, zbroju ćemo dodati 2 i prikazati ga na ekranu
Atari Punk konzola s bebom Sekvencer za 8 koraka: 7 koraka (sa slikama)
Atari Punk konzola s Baby 8 Step Sequencer-om: Ova srednja verzija je sve-u-jednom Atari Punk Console i Baby 8 Step Sequencer koje možete glodati na stolnom PCB glodalici Bantam Tools. Sastoji se od dvije ploče: jedna je ploča korisničkog sučelja (UI), a druga je pomoćna bo
Kako rastaviti računalo jednostavnim koracima i slikama: 13 koraka (sa slikama)
Kako rastaviti računalo jednostavnim koracima i slikama: Ovo uputstvo o tome kako rastaviti računalo. Većina osnovnih komponenti je modularna i lako se uklanja. Međutim, važno je da se oko toga organizirate. To će vam pomoći da spriječite gubitak dijelova, a također i prilikom ponovnog sastavljanja