Sadržaj:

IOToilet: 7 koraka (sa slikama)
IOToilet: 7 koraka (sa slikama)

Video: IOToilet: 7 koraka (sa slikama)

Video: IOToilet: 7 koraka (sa slikama)
Video: Крутой Сериал! За Первого Встречного 12 серия! 2024, Novembar
Anonim

IOToilet je prvi pametni držač toaletnog papira koji prati našu svakodnevnu upotrebu toaletnog papira i omogućava prikupljanje statističkih podataka koji pokazuju ove metrike. Možda biste pitali zašto bih trebao brinuti o svakodnevnom korištenju toaletnog papira? Pa, pokazalo se da naše trbušno zdravlje, posebno probavni ciklus, imaju mnogo veze kako s fizičkim zdravljem tako i s mentalnim. Na primjer, evo lijepog TED govora (usput jedan od rijetkih) koji razrađuje ovu temu:

Prvobitno mi je bilo naloženo da napravim 10 jedinica ovog uređaja za agenciju za brendiranje, čiji isječak možete vidjeti gore (2. lokacija), za namjensku marketinšku kampanju za veliku kompaniju. U početku sam odbacio ideju kao ideju nekog drugog, previše kreativnog uma koji je očajnički pokušavao osvojiti korisnički račun, ali postupno je to raslo na meni, sve dok nisam shvatio vrijednost podataka prikupljenih putem ovog uređaja.

Konstrukcija 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 faktor oblika i sve potrebne periferne uređaje koji su već ugrađeni, 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ć pripremljeno umjesto modeliranja i štampanja vlastitog.

Korak 1: Alati i materijali

Alati i materijali
Alati i materijali
Alati i materijali
Alati i materijali
Alati i materijali
Alati i materijali
Alati i materijali
Alati i materijali

Upotrebljeni materijali:

Nosač toaletnog papira

Wemos D1 Mini

ATTiny85 čip, DIP pakovanje

2 x 2n2222 tranzistor

220 Ohm otpornik

2 * 1KOhm otpornik

Akcelerometar MPU6050

Opcionalno, u slučaju da ne koristim PCB:

Wemos prototipni štit

žica, lemljenje itd.

Upotrebljeni alati:

Dremel sa 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 originalne jedinice

Sramoćenje originalne jedinice
Sramoćenje originalne jedinice
Sramoćenje originalne jedinice
Sramoćenje originalne jedinice
Sramoćenje originalne jedinice
Sramoćenje originalne jedinice

Nakon što sam nabavio originalno vreteno toaletnog papira, otvorio sam njegovo kućište pomoću trokutastog odvijača i uklonio originalnu PCB, odspojivši zvučnik i ostavivši na njemu što je moguće više žice.

Zatim sam lemio LED i senzor nagiba s originalne štampane ploče, da bi kasnije bili ugrađeni u nova kola. Pazite da ne pregrijete prekidač za nagib jer se može oštetiti. Moj je bio siv, ali budući da ga nisam dobro snimio prilikom uklanjanja s originalnog 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 originalne PCB -a na mjestu, ovih malih plastičnih polica i jedne od 4 vijčane cijevi. Možete odgoditi ovo do faze montaže ako želite, ali u svakom slučaju bit će potrebno odrezivanje plastike.

Korak 3: Objašnjenje kola

Objašnjenje kola
Objašnjenje kola
Objašnjenje kola
Objašnjenje kola

Dakle, evo malo o logici koja stoji iza kola:

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 obavljen 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 to ostvarim, konfiguriranje odgovarajućih registara MPU6050 bilo je škakljiv zadatak za koji još uvijek ne znam je li uopće moguće …

Moja druga mogućnost je bila upotreba prekidača za naginjanje isporučenog s originalnom jedinicom da probudim ESP. Prvo sam ga vezao direktno 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 bi mogao proći kroz prekidač za nagib i uzrokovati njegovo privremeno povezivanje s RESET pinom, uzrokujući resetiranje MCU -a (ovo je jedini način da se ESP probudi 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 je MCU spavao, doći do višestrukih RESET -ova, umjesto brojanja rundi, kako bi trebalo.

Stoga sam pokušao riješiti ovu novu situaciju s nekim diskretnim komponentama (kondenzatori, tranzistori itd.), Ali uspio sam samo djelomično riješiti problem.

Na kraju sam dodao još jedan MCU, ATTiny85, koji bi se probudio iz sna pomoću prekidača za naginjanje, a zatim probudio ESP8266 i čekao neko vrijeme prije nego što sam se vratio u san. Znam da ovo vjerovatno 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

Priprema ATTiny85
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 dugme 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 otpremite testnu skicu na ploču.

LED bi trebao treptati 5 puta, a zatim bi čip trebao zaspati. Pritiskom na dugme probudit će se i ponoviti taj niz.

Jesi li uspio? odlično! Otpremite konačnu skicu "Budilac" na ATTiny, koja će se koristiti na završnom krugu.

Korak 5: Izgradnja Wemos štita

Izgradnja Wemos štita
Izgradnja Wemos štita
Izgradnja Wemos štita
Izgradnja Wemos štita
Izgradnja Wemos štita
Izgradnja Wemos štita
Izgradnja Wemos štita
Izgradnja Wemos štita

Dakle, za izgradnju štita imate 3 mogućnosti koje možete birati:

1. Za Wemos upotrijebite standardni protozaslon i lemite krugove na njega.

2. Napravite PCB, na osnovu 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 matičnoj ploči prije predaje na PCB!

Ako koristite opcije PCB -a, obavezno spojite crnu žicu kao na fotografijama, s prednje ili stražnje strane ploče (ovo 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 postaviti blink skicu na svoju ploču, pazeći da se kôd pravilno učita.

Korak 7: Sastavite sve zajedno

Spajajući sve zajedno
Spajajući sve zajedno
Spajajući sve zajedno
Spajajući sve zajedno
Spajajući sve zajedno
Spajajući sve zajedno

Postavite štit na Wemos. Možete ga zalemiti, ali preporučujem upotrebu ž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 da bi se jedinica uklopila u plastičnu školjku. Također, kako bismo stvari zakomplicirali, postoji velika šansa da će, kada je štit povezan s Wemosom, biti onemogućen prijenos koda. Susreo sam se s tom pojavom na nedosljedan način i nisam imao vremena da je istražim.

Savjet: planirajte unaprijed.

Sada, 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 baza bi trebala biti spojena na pin D5 Wemosa, kolektor bi trebao biti spojen na GND akcelerometra, a emiter na zajednički GND.

Zatim postavite 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.

Otpremite 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 postavite skicu na ploču. Pobrinite se da nakon što Wemos zaspi, pomicanje prekidača za nagib uzrokuje buđenje ATTiny -a (signalizira LED), što zauzvrat budi Wemos.

Vratite vrijednost parametra na 180000L (3 minute, u milisekundama) i pobrinite se da Wemos pokrene žarišnu točku zvanu IOToilet_XXXXXXXX gdje će se XXXXXXX dohvatiti s MAC adrese čipa. Povežite se na ovaj Wifi putem pametnog telefona i trebali biste biti preusmjereni na obrazac za registraciju (mehanizam koji se naziva Captive Portal). Ispunite detalje, posebno je važno SSID i lozinka vaše lokalne WiFi mreže i pošaljite obrazac. Uređaj bi se zatim trebao pokušati povezati s mrežom pomoću prilož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, sve dok ga pokret ne probudi.

Konačno: Sistemski test 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 rolne je kraj i pokretanje otpremanja podataka). Sačekajte oko 10 sekundi da se broj rola pošalje u oblak, a zatim idite na https://smartwipe-iot.appspot.com/ i kliknite Upit. Trebali biste vidjeti svoje podatke o registraciji i broj nedavnih upotreba u oblaku! Obavezno zapišite svoj uuid, koji je vaš jedinstveni ID u sistemu, izdvojen iz 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 engine -u tako da korisnici koji žele steći veću privatnost podataka mogu ih postaviti na svog Google korisnika, dodati autentifikaciju itd.

Kad sve radi, umetnite elektroniku u plastičnu školjku, obrezujući plastiku dremelom po potrebi. Cijeli komad trebao bi se lijepo uklopiti u kućište.

Nevolja? Pišite mi!

UJEDINJENI POOP!

Preporučuje se: