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, Studeni
Anonim

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

Alati i materijali
Alati i materijali
Alati i materijali
Alati i materijali
Alati i materijali
Alati i materijali
Alati i materijali
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

Sramoćenje izvorne jedinice
Sramoćenje izvorne jedinice
Sramoćenje izvorne jedinice
Sramoćenje izvorne jedinice
Sramoćenje izvorne jedinice
Sramoćenje 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

Objašnjeno strujno kolo
Objašnjeno strujno kolo
Objašnjeno strujno kolo
Objašnjeno strujno kolo

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

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 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

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 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

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 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: