Turinys:

„IOToilet“: 7 žingsniai (su nuotraukomis)
„IOToilet“: 7 žingsniai (su nuotraukomis)

Video: „IOToilet“: 7 žingsniai (su nuotraukomis)

Video: „IOToilet“: 7 žingsniai (su nuotraukomis)
Video: How To Install A Toilet Flange Extension Kit - Master Plumber Extension Kit 2024, Lapkritis
Anonim

„IOToilet“yra pirmasis išmanusis tualetinio popieriaus laikiklis, kuris stebi kasdienį tualetinio popieriaus naudojimą ir leidžia kaupti statistiką, rodančią šią metriką. Ir kodėl man turėtų rūpėti kasdienis tualetinio popieriaus naudojimas, galite paklausti? Na, kaip paaiškėja, mūsų pilvo sveikata, ypač virškinimo ciklas, turi daug įtakos tiek mūsų fizinei, tiek psichinei sveikatai. Pavyzdžiui, čia yra gražus TED pokalbis (beje, vienas iš daugelio), kuriame išsamiai aptariama ši tema:

Iš pradžių man buvo pavesta sukurti 10 šio įrenginio vienetų prekės ženklo agentūrai, kurios klipą galite pamatyti aukščiau (2 vieta), skirtai didelės įmonės rinkodaros kampanijai. Pradžioje aš atmetiau šią idėją, nes ji kilo iš kito per daug kūrybingo proto, desperatiškai bandančio laimėti kliento paskyrą, tačiau palaipsniui ji užaugo ant manęs, kol supratau per šį įrenginį surinktos informacijos vertę.

Sukurta remiantis esama aparatine įranga, kurią mano klientas gavo iš „EBay“- balso įrašymo įrenginio, įdėto į tualetinio popieriaus laikiklį. Jame buvo tinkamas formos faktorius ir visi reikalingi išoriniai įrenginiai, tokie kaip garsiakalbis, judesio jutiklis, kuris suaktyvina prietaisą, spyruoklės, skirtos pačiam tualetiniam popieriui laikyti, baterijų skyrius ir įjungimo-išjungimo jungiklis, todėl mielai pasirinkau naudojant šį paruoštą, o ne modeliavimą ir spausdinimą savo.

1 žingsnis: įrankiai ir medžiagos

Įrankiai ir medžiagos
Įrankiai ir medžiagos
Įrankiai ir medžiagos
Įrankiai ir medžiagos
Įrankiai ir medžiagos
Įrankiai ir medžiagos
Įrankiai ir medžiagos
Įrankiai ir medžiagos

Naudotos medžiagos:

Tualetinio popieriaus laikiklis

„Wemos D1 Mini“

ATTiny85 mikroschema, DIP pakuotė

2 x 2n2222 tranzistorius

220 omų rezistorius

2 * 1KOhm rezistorius

Akselerometras MPU6050

Neprivaloma, jei nenaudoju savo PCB:

„Wemos“prototipų skydas

viela, lydmetalis ir kt.

Naudojami įrankiai:

„Dremel“su pjovimo disku

„ATTiny dev“lenta (patogiai įkelti programinę -aparatinę įrangą)

USB Tiny ISP programuotojas

trikampio atsuktuvo, aš naudoju šį rinkinį:

2 veiksmas: pradinio įrenginio išardymas

Pradinio įrenginio išardymas
Pradinio įrenginio išardymas
Pradinio įrenginio išardymas
Pradinio įrenginio išardymas
Pradinio įrenginio išardymas
Pradinio įrenginio išardymas

Gavęs originalų tualetinio popieriaus veleną, atidariau jo dėklą trikampiu atsuktuvu ir išėmiau originalią PCB, atjungdamas garsiakalbį ir palikdamas prie jo kuo daugiau laidų.

Tada lituodavau šviesos diodą ir pakreipimo jutiklį iš originalios PCB, kad vėliau būtų galima įterpti į naują grandinę. Atkreipkite dėmesį, kad perkaitimo jungiklis neperkaistų, nes tai gali sugadinti. Mano buvo pilka, bet kadangi gerai neišfotografavau, kai išėmiau iš pradinio įrenginio, turėjau naudoti nuotrauką iš tinklo (žr. Aukščiau), kur ji buvo žalia. Tik smulkmena.

Atidaręs dėklą ir pašalinęs elektroniką, aš taip pat naudoju „Dremel“plastiko perteklių, kuris buvo naudojamas originaliai PCB laikyti, šias mažas plastikines lentynas ir vieną iš 4 varžtų. Jei norite, galite tai atidėti surinkimo etapui, tačiau bet kokiu atveju reikės šiek tiek apipjaustyti plastiką.

3 žingsnis: paaiškinta grandinė

Grandinė paaiškinta
Grandinė paaiškinta
Grandinė paaiškinta
Grandinė paaiškinta

Taigi, šiek tiek apie grandinės logiką:

Kad baterijos tarnautų ilgai, tarp įjungimų turėjau užmigdyti ir „Wemos D1 Mini“MPU6050 akselerometrą, ir ESP8266 procesorių. Pirmasis buvo lengvai atliktas naudojant tranzistorių, kuris įjungė ir išjungė MPU6050.

Pastaba: iš pradžių maniau, kad galiu užprogramuoti jį siųsti pertraukimo signalą, kuris pažadins pagrindinį procesorių. Deja, neradau būdo, kaip tai padaryti, tinkamų MPU6050 registrų sukonfigūravimas buvo sudėtinga užduotis, kurios aš vis dar nežinau, ar tai išvis įmanoma …

Mano antrasis variantas buvo naudoti pakreipimo jungiklį, pateiktą kartu su originaliu įrenginiu, kad pažadintumėte ESP. Pirmiausia pririšau jį tiesiai prie „Wemos RESET“kaiščio, kaip aprašyta aukščiau esančiose nuotraukose, naudojant tranzistorių mechanizmui įjungti/išjungti. Kai tranzistoriaus bazė buvo aukšta, GND galėjo praeiti per pakreipimo jungiklį ir priversti jį laikinai prisijungti prie RESET kaiščio, sukeldamas MCU atstatymą (matyt, tai vienintelis būdas pažadinti ESP iš gilaus miego). Tada prijungiau D0 prie tranzistoriaus bazės, laikydamasis prielaidos, kad ši koja yra AUKŠTA tol, kol MCU miega, ir kai tik ji atsibunda, D0 grįžta į žemą, išjungdama atstatymo mechanizmą. Galų gale man nereikėjo pasikartojančio atstatymo, tik pirmą kartą, kai tualetinio popieriaus laikiklis pradėjo judėti.

Tačiau aš sužinojau, kad D0 kaištis užtrunka gana ilgai po MCU atstatymo, kad grįžtų į žemą, maždaug 200 ms. Tai reiškė, kad jei aš pakankamai greitai sukčiau tualetinio popieriaus laikiklį, kol MCU miegojo, jis įvyktų kelis iš naujo nustatant, o ne taip, kaip reikia, skaičiuoti.

Taigi, aš bandžiau išspręsti šią naują situaciją su kai kuriais atskirais komponentais (kondensatoriais, tranzistoriais ir tt), bet man pavyko išspręsti problemą tik iš dalies.

Galiausiai pridėjau dar vieną MCU, ATTiny85, kurį pakeliantis jungiklis pažadins iš miego, tada pažadinsiu ESP8266 ir palaukiu šiek tiek laiko, kol grįšiu miegoti. Žinau, kad tai tikriausiai nėra pats ekonomiškiausias problemos sprendimas, tačiau turėjau terminą…

Išsamų sprendimą galite pamatyti mano įtrauktoje schemoje. Atminkite, kad 10K rezistoriai buvo pakeisti 1K, nes 10k buvo per aukšti, kad tranzistoriai galėtų visiškai atsidaryti.

4 žingsnis: ATTiny85 paruošimas

ATTiny85 paruošimas
ATTiny85 paruošimas

Jei niekada neužprogramavote ATTiny85, nebijokite! Naudodami mylimąjį „Arduino IDE“galite pasiekti viską. Pradėkite nuo šių instrukcijų, kaip sukonfigūruoti „Arduino IDE“:

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

Tada įdiekite USBTinyISP tvarkykles iš čia:

learn.adafruit.com/usbtinyisp/drivers

Dabar įkelkite pridėtą bandymo kodą: WakeOnExternalInterruptTest.ino

ir prijunkite (žr. ATTiny85 Pinout diagramą):

1. Paspauskite mygtuką tarp kaiščio 3 ir žemės

2. LED ir 220 omų rezistorius nuosekliai, tarp 2 kaiščio ir žemės

Kitas, Pasirinkite USBTinyISP kaip programuotoją (skiltyje Įrankiai -> Programuotojas) ir įkelkite bandymo eskizą į lentą.

Šviesos diodas turėtų mirksėti 5 kartus, tada lustas turėtų užmigti. Paspaudus mygtuką, jis atsibus ir pakartos tą seką.

Ar pavyko? puiku! Įkelkite paskutinį eskizą „Awakener“į ATTiny, kuris bus naudojamas galutinėje grandinėje.

5 žingsnis: statykite „Wemos Shield“

„Wemos“skydo kūrimas
„Wemos“skydo kūrimas
„Wemos“skydo kūrimas
„Wemos“skydo kūrimas
„Wemos“skydo kūrimas
„Wemos“skydo kūrimas
„Wemos“skydo kūrimas
„Wemos“skydo kūrimas

Taigi, norėdami sukurti skydą, turite 3 parinktis:

1. Naudokite standartinį „Wemos“apsauginį skydelį ir ant jo prilituokite grandinę.

2. Pagaminkite PCB pagal pridėtus EAGLE failus.

3. Paprašykite manęs PCB, kurią galėčiau jums atsiųsti sraigės paštu (turiu keletą gulinčių, kaina yra beveik nieko).

Bet kokiu atveju, prieš įsipareigojant PCB, rekomenduoju pastatyti grandinę ant duonos lentos!

Jei naudojate PCB parinktis, būtinai prijunkite juodą laidą, kaip parodyta nuotraukose, priekinėje arba galinėje plokštės pusėje (pastaroji man geriausiai tiko). Šis laidas jungia GND nuo „Wemos“prie „ATTiny85“ir be jo pabudimas neįvyks.

Tiesiog gerai peržiūrėkite vaizdus ir perskaitykite mano pridėtas anotacijas, to turėtų pakakti.

6 žingsnis: „Wemos“paruošimas

Jei niekada nenaudojote „Arduino IDE“programuoti „Wemos“plokštės, pirmiausia įdiekite plokštės tvarkyklę ir meniu „Įrankiai -> Lenta“pasirinkite lentą, kaip aprašyta čia:

github.com/esp8266/Arduino

Pradėkite įkeldami mirksėjimo eskizą į savo lentą ir įsitikinkite, kad kodas įkeliamas teisingai.

7 žingsnis: surinkite viską kartu

Viską sujungti
Viską sujungti
Viską sujungti
Viską sujungti
Viską sujungti
Viską sujungti

Įdiekite skydą ant „Wemos“. Galite jį lituoti, bet aš rekomenduoju naudoti moteriškas antraštes, lituojamas prie „Wemos“, kurios sudarys galimybę laikinai sujungti „Wemos“ir skydą, jei kiltų problemų. Tiesiog nepamirškite, kad antraštė turi būti nuimta paskutiniame surinkimo etape, kad įrenginys tilptų į plastikinį korpusą. Be to, kad viskas būtų šiek tiek sudėtingiau, yra didelė tikimybė, kad prijungus skydą prie „Wemos“, kodo įkėlimas bus išjungtas. Aš susidūriau su tuo reiškiniu nenuosekliai ir neturėjau laiko jo ištirti.

Patarimas: planuokite iš anksto.

Dabar, testavimas!

Įdiegę pradėkite įkeldami „BlinkAccelerometer“bandymo eskizą į „Wemos“ir įsitikinkite, kad jis įjungia ir išjungia MPU6050 šviesos diodą. Jei ne, patikrinkite tranzistoriaus, atsakingo už MPU6050 maitinimą, laidus. Jo pagrindas turi būti prijungtas prie „Wemos“kaiščio D5, kolektorius - prie akselerometro GND, o skleidėjas - prie bendro GND.

Tada įkelkite „TurnCountTest1“eskizą į „Wemos“lentą ir atidarykite „Serial Monitor“. Turėtumėte matyti monitoriuje pateiktus duomenis iš akselerometro. Jei neveikia, patikrinkite laikrodį ir duomenų laidus: CLK turi būti prijungtas prie D1, o DATA - prie D2.

Dabar lituokite pakreipimo jungiklį prie nurodytų skylių plokštėje (žr. Komentarus), įsitikinkite, kad jis yra statmenas sukimosi ašiai, kad besisukantis velenas užsidarytų ir atvertų jungtį tarp dviejų laidų.

Tada prijunkite „Battery 3V“įvestį prie „Wemos VCC“, o jos minusinį gnybtą - prie „Wemos GND“. Įsitikinkite, kad įjungus jungiklį įjungiamas įrenginys. Galiausiai prijunkite garsiakalbį prie GND ir „Wemos“kaiščio D4.

Įkelkite galutinį kodą į „Wemos“- eskizą, pavadintą „SmartWipe“. Atidarykite serijinį monitorių ir įsitikinkite, kad įrenginys užmiega po 3 minučių ir pažadinamas judinant pakreipimo jungiklį (atitinkami pranešimai turėtų pasirodyti monitoriuje).

Jei norite sutrumpinti „Wemos“budėjimo laiką (daugiausia tikrinimo tikslais), sumažinkite parametre „params.h“apibrėžtą WIFI_CONFIGURATION_IDLE_TIMEOUT vertę ir įkelkite eskizą į lentą. Įsitikinkite, kad po to, kai „Wemos“užmiega giliai, perkėlus pakreipimo jungiklį, „ATTiny“atsibunda (signalizuoja šviesos diodas), o tai savo ruožtu pažadina „Wemos“.

Pakeiskite parametro vertę atgal į 180000L (3 minutės, milisekundėmis) ir įsitikinkite, kad „Wemos“suaktyvina viešosios interneto prieigos tašką IOToilet_XXXXXXXX, kur XXXXXXX bus nuskaitytas iš lusto MAC adreso. Prisijunkite prie šio „Wifi“naudodami išmanųjį telefoną ir būsite nukreipti į registracijos formą (mechanizmą, vadinamą „Captive Portal“). Užpildykite išsamią informaciją, ypač svarbu yra vietinio „Wi -Fi“SSID ir slaptažodis, ir pateikite formą. Tada įrenginys turėtų pabandyti prisijungti prie tinklo naudodami pateiktus kredencialus ir, jei pavyks, garsiakalbyje paleisti 3 kylančius garsus. Jei prisijungus prie „Wifi“iškilo problema, bus girdimas 3 mažėjantis garsas. Po to Wemos turėtų eiti giliai miegoti, kol pažadins judesys.

Galiausiai: Sistemos bandymas nuo galo iki galo.

Keletą kartų sukite tualetinio popieriaus laikiklį išilgai jo sukimosi ašies, tada padėkite jį ant stabilaus paviršiaus (norėdami pranešti, kad ritinys baigėsi, ir bus įkeliami duomenys). Palaukite apie 10 sekundžių, kol ritinių skaičius bus išsiųstas į debesį, tada eikite į https://smartwipe-iot.appspot.com/ ir spustelėkite Užklausa. Debesyje turėtumėte matyti išsamią registracijos informaciją ir paskutinio naudojimo ritinių skaičių! Būtinai užsirašykite savo uuid, kuris yra jūsų unikalus ID sistemoje, išgautas iš jūsų „Wemos“MAC adreso.

Jei norite išgauti tik savo statistiką JSON formatu, naudokite URL, panašų į šį:

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

tiesiog pakeisk uuid savo.

Įtraukiau visus žiniatinklio programos, kuri yra priglobta „Google App“variklyje, šaltinius, kad vartotojai, norintys įgyti daugiau duomenų privatumo, galėtų juos įdiegti savo „Google“naudotojui, pridėti autentifikavimą ir pan.

Kai viskas veikia, įdėkite elektroniką į plastikinį apvalkalą, prireikus apipjaustykite plastiką „dremel“. Visas gabalas turėtų gerai tilpti į korpusą.

Bėda? Parašyk man!

UNITED WE POOP!

Rekomenduojamas: