Kazalo:

IOToilet: 7 korakov (s slikami)
IOToilet: 7 korakov (s slikami)

Video: IOToilet: 7 korakov (s slikami)

Video: IOToilet: 7 korakov (s slikami)
Video: СУПЕР СМЕШНАЯ КОМЕДИЯ! "Как Извести Любовницу За 7 Дней" РУССКИЕ КОМЕДИИ НОВИНКИ, ФИЛЬМЫ HD, КИНО 2024, November
Anonim

IOToilet je prvo pametno držalo za toaletni papir, ki spremlja našo vsakodnevno uporabo toaletnega papirja in omogoča zbiranje statističnih podatkov, ki prikazujejo te meritve. In zakaj bi moral skrbeti za vsakodnevno uporabo toaletnega papirja, se boste morda vprašali? Izkazalo se je, da ima naše trebušno zdravje, zlasti prebavni cikel, veliko skupnega tako s fizičnim zdravjem kot z duševnim. Na primer, tukaj je lep pogovor o TED -u (eden od redkih), ki obravnava to temo:

Sprva sem bil naročen, da za agencijo za blagovne znamke, katere posnetek si lahko ogledate zgoraj (2. lokacija), zgradim 10 enot te naprave za namensko tržno kampanjo velikega podjetja. Na začetku sem idejo zavrnil, kot da je ena prišla iz drugega preveč ustvarjalnega uma, ki je obupno poskušal pridobiti račun stranke, vendar se je postopoma povečeval name, dokler nisem spoznal vrednosti informacij, zbranih s to napravo.

Zasnova je temeljila na obstoječem kosu strojne opreme, ki ga je moja stranka dobila od EBaya, naprave za snemanje govora, zaprte v držalo za toaletni papir. Imel je pravi faktor oblike in vse potrebne zunanje naprave, ki so že vgrajene, na primer zvočnik, senzor gibanja za sprožitev naprave, vzmeti, ki držijo sam toaletni papir, predal za baterije in stikalo za vklop / izklop, zato sem se z veseljem odločil z uporabo tega pripravljenega namesto lastnega modeliranja in tiskanja.

Korak: Orodja in materiali

Orodja in materiali
Orodja in materiali
Orodja in materiali
Orodja in materiali
Orodja in materiali
Orodja in materiali
Orodja in materiali
Orodja in materiali

Uporabljeni materiali:

Držalo za toaletni papir

Wemos D1 Mini

Čip ATTiny85, DIP embalaža

2 x 2n2222 tranzistor

220 ohmski upor

2 * 1KOhm upor

Merilnik pospeška MPU6050

Izbirno, če ne uporabljam svojega tiskanega vezja:

Prototipni ščit Wemos

žica, spajkanje itd.

Uporabljena orodja:

Dremel z rezalno ploščo

Razvojna plošča ATTiny (za priročno nalaganje vdelane programske opreme)

USB Tiny ISP programer

trikotni izvijač, uporabil sem ta komplet:

2. korak: zaničevanje prvotne enote

Omalovaževanje prvotne enote
Omalovaževanje prvotne enote
Omalovaževanje prvotne enote
Omalovaževanje prvotne enote
Omalovaževanje prvotne enote
Omalovaževanje prvotne enote

Ko sem dobil originalno vreteno toaletnega papirja, sem s trikotnim izvijačem odprl ohišje in odstranil originalno tiskano vezje, pri čemer sem odklopil zvočnik in nanj pustil čim več žice.

Nato sem iz prvotnega tiskanega vezja spajkal LED in senzor nagiba, da bi bil kasneje vgrajen v novo vezje. Pazite, da stikala za nagib ne pregrejete, saj se lahko poškoduje. Moj je bil siv, a ker ga pri odstranjevanju iz prvotne naprave nisem dobro posnel, sem moral uporabiti fotografijo iz mreže (glej zgoraj), kjer je bila zelena. Le manjša podrobnost.

Po odprtju ohišja in odstranitvi elektronike sem z Dremelom odstranil tudi odvečno plastiko, ki je bila uporabljena za držanje prvotnega tiskanega vezja na mestu, te majhne plastične police in eno od 4 vijačnih cevi. To lahko po želji preložite na fazo montaže, vsekakor pa bo potrebno nekaj obrezovanja plastike.

3. korak: Razloženo vezje

Razloženo vezje
Razloženo vezje
Razloženo vezje
Razloženo vezje

Torej, tukaj je nekaj o logiki vezja:

Da bi baterije zdržale dlje časa, sem moral merilnik pospeška MPU6050 in procesor ESP8266 v Wemos D1 Mini preklopiti v stanje spanja med aktivacijami. Prvo je bilo enostavno narediti s tranzistorjem, ki je vklopil in izklopil MPU6050.

Opomba: Sprva sem mislil, da ga lahko programiram za pošiljanje signala prekinitve, ki bo prebudil glavni procesor. Žal, nisem mogel najti načina, kako bi se to zgodilo. Konfiguriranje ustreznih registrov MPU6050 je bila težavna naloga, za katero še vedno ne vem, če je sploh mogoče …

Moja druga možnost je bila, da z nagibnim stikalom, ki je priložen originalni enoti, prebudim ESP. Najprej sem ga privezal neposredno na Wemos RESET pin, kot je opisano na zgornjih fotografijah, z uporabo tranzistorja za aktiviranje/deaktiviranje mehanizma. Ko je bila tranzistorska baza visoka, bi lahko GND prešel skozi nagibno stikalo in povzročil začasno povezavo z zatičem RESET, kar bi povzročilo ponastavitev MCU (očitno je to edini način, da prebudite ESP iz globokega spanca). Nato sem D0 povezal z bazo tranzistorja, pri čemer sem upošteval predpostavko, da je ta noga VISOKA, dokler MCU spi, in takoj ko se prebudi, se D0 vrne na LOW, pri čemer onemogoči mehanizem ponastavitve. Konec koncev mi ni bilo treba ponavljati ponastavitve, prvič, ko se je držalo za toaletni papir začelo premikati.

Vendar sem odkril, da pin D0 traja precej časa po ponastavitvi MCU, da se vrne na LOW, približno 200 ms. To je pomenilo, da bi, če bi dovolj hitro zavrtel držalo toaletnega papirja, medtem ko MCU spi, prišlo do več ponastavitev, namesto da bi štel kroge, kot bi se moralo.

Tako sem to novo situacijo poskušal rešiti z nekaterimi diskretnimi komponentami (kondenzatorji, tranzistorji itd.), Vendar mi je uspelo le delno rešiti težavo.

Na koncu sem dodal še en MCU, ATTiny85, ki bi ga preklopno stikalo prebudilo, nato pa prebudil ESP8266 in počakal nekaj časa, preden sem zaspal. Vem, da to verjetno ni najbolj ekonomična rešitev problema, vendar sem imel rok …

Podrobno rešitev lahko vidite v shemi, ki sem jo vključil. Upoštevajte, da so bili 10K upori zamenjani z 1K, saj so bili 10k upori previsoki, da bi se tranzistorji popolnoma odprli.

4. korak: Priprava ATTiny85

Priprava ATTiny85
Priprava ATTiny85

Če še nikoli niste programirali ATTiny85, se ne bojte! Z uporabo priljubljenega Arduino IDE -ja vas lahko pripelje do konca. Začnite s temi navodili, kako konfigurirati Arduino IDE:

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

Nato od tu namestite gonilnike za USBTinyISP:

learn.adafruit.com/usbtinyisp/drivers

Zdaj naložite priloženo preskusno kodo: WakeOnExternalInterruptTest.ino

in se povežite (glejte diagram izklopa ATTiny85):

1. Pritisnite gumb med kontaktom 3 in maso

2. LED in 220 ohmski upor zapored, med zatičem 2 in maso

Naslednji, Izberite USBTinyISP kot programer (pod Orodja -> Programer) in preskusno skico naložite na ploščo.

LED lučka naj utripa 5 -krat, nato pa mora čip zaspati. S pritiskom na gumb se bo prebudil in ponovil to zaporedje.

Se je lotilo dela? Super! Naložite zadnjo skico "Prebujelec" v ATTiny, ki bo uporabljena v zadnjem vezju.

5. korak: Zgradimo ščit Wemos

Gradnja Wemosovega ščita
Gradnja Wemosovega ščita
Gradnja Wemosovega ščita
Gradnja Wemosovega ščita
Gradnja Wemosovega ščita
Gradnja Wemosovega ščita
Gradnja Wemosovega ščita
Gradnja Wemosovega ščita

Torej, za izdelavo ščita lahko izbirate med 3 možnostmi:

1. Za Wemos uporabite standardni protozaslon in nanj spajkajte vezje.

2. Na podlagi priloženih datotek EAGLE izdelajte tiskano vezje.

3. Vprašajte me za tiskano vezje, ki vam ga lahko pošljem po polžji pošti (nekaj jih leži, stroški so skoraj nič).

V vsakem primeru priporočam, da vezje sestavite na plošči, preden se zavežete k tiskanemu vezju!

Če uporabljate možnosti tiskanega vezja, črno žico, kot je na fotografijah, priključite na sprednjo ali zadnjo stran plošče (slednja mi je najbolj ustrezala). Ta žica povezuje GND od Wemosa do ATTiny85 in brez nje se prebujanje ne bo zgodilo.

Samo dobro si oglejte slike in preberite opombe, ki sem jih dodal, to bi moralo biti dovolj.

6. korak: Priprava Wemosa

Če nikoli niste uporabljali Arduino IDE za programiranje plošče Wemos, začnite z namestitvijo upravitelja plošč in izbiro plošče v meniju Orodja -> Plošča, kot je opisano tukaj:

github.com/esp8266/Arduino

Začnite tako, da na vašo ploščo naložite utripajočo skico, pri čemer se prepričajte, da je koda pravilno naložena.

Korak 7: Vse skupaj

Vse skupaj
Vse skupaj
Vse skupaj
Vse skupaj
Vse skupaj
Vse skupaj

Namestite ščit na Wemos. Lahko ga spajkate, vendar priporočam uporabo ženskih glav, spajkanih na Wemos, ki bodo v primeru težav omogočile začasno povezavo med Wemosom in ščitom. Upoštevajte le, da bo ženska glava morala izstopiti v zadnji fazi sestavljanja, da se enota prilega plastični lupini. Če želite stvari še bolj zakomplicirati, obstaja velika verjetnost, da bo nalaganje kode onemogočeno, ko bo ščit priključen na Wemos. S tem pojavom sem se srečal na neskladen način in nisem imel časa za raziskovanje.

Nasvet: načrtujte vnaprej.

Zdaj pa testiranje!

Ko je nameščen, začnite z nalaganjem preskusne skice BlinkAccelerometer v Wemos in se prepričajte, da vklopi in izklopi LED MPU6050. Če ne, preverite ožičenje tranzistorja, ki je odgovoren za napajanje MPU6050. Njegova osnova mora biti priključena na pin D5 Wemosa, zbiralnik mora biti priključen na GND merilnika pospeška, oddajnik pa na skupni GND.

Nato naložite skico TurnCountTest1 na ploščo Wemos in odprite Serial Monitor. Videti bi morali podatke, ki prihajajo iz merilnika pospeška, predstavljeni na monitorju. Če ne deluje, preverite uro in podatkovno ožičenje: CLK mora biti priključen na D1, DATA pa na D2.

Zdaj spajkajte stikalo za nagibanje na označene luknje na plošči (glejte opombe), pri tem pazite, da je pravokotno na os vrtenja, tako da se z vrtenjem vretena zapre in odpre povezava med dvema vodiloma.

Nato priključite 3V vhod akumulatorja na Wemos VCC in njegov minus priključek na Wemos GND. Prepričajte se, da vklop stikala vklopi enoto. Nazadnje priključite zvočnik na GND in na pin D4 Wemosa.

Naložite končno kodo v Wemos - skico, imenovano SmartWipe. Odprite serijski monitor in se prepričajte, da naprava po 3 minutah preklopi v stanje spanja in se prebudi s premikanjem stikala za nagib (ustrezna sporočila bi se morala prikazati na monitorju).

Če želite skrajšati čas, ko je Wemos buden (predvsem za namene testiranja), zmanjšajte vrednost WIFI_CONFIGURATION_IDLE_TIMEOUT, določeno v params.h, in skico naložite na tablo. Prepričajte se, da po tem, ko Wemos preide v globok spanec, premik nagibnega stikala povzroči, da se ATTiny prebudi (signalizira LED), kar pa zbudi Wemos.

Spremenite vrednost parametra nazaj na 180000L (3 minute v milisekundah) in se prepričajte, da Wemos sproži vročo točko, imenovano IOToilet_XXXXXXXX, kjer bo XXXXXXX pridobljeno z naslova MAC čipa. Povežite se s tem Wifi s pametnim telefonom in preusmerjeni boste na obrazec za registracijo (mehanizem, imenovan Captive Portal). Izpolnite podrobnosti, še posebej pomembno je SSID in geslo vašega lokalnega wifija ter predložite obrazec. Enota se mora nato poskusiti povezati z omrežjem s priloženimi poverilnicami, če pa uspe, na zvočniku predvaja 3 naraščajoče zvoke. Če je pri priključitvi na Wi -Fi prišlo do težave, se bodo predvajali 3 padajoči zvoki. Po tem naj Wemos zaspi, dokler ga gibanje ne prebudi.

Končno: Sistemski preizkus od konca do konca.

Držalo toaletnega papirja zavrtite nekaj osi vzdolž njegove osi vrtenja, nato pa ga položite na stabilno površino (za signalizacijo zvitka je konec in sprožite nalaganje podatkov). Počakajte približno 10 sekund, da se število zvitkov pošlje v oblak, nato pojdite na https://smartwipe-iot.appspot.com/ in kliknite Poizvedi. V oblaku bi morali videti svoje podatke o registraciji in število nedavnih uporab! Zapišite svoj uuid, ki je vaš edinstven ID v sistemu, izvlečen iz naslova MAC vašega Wemosa.

Če želite izvleči samo svojo statistiko v obliki JSON, uporabite URL, podoben temu:

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

samo uuid zamenjaj s svojim.

Vključil sem vse vire za spletno aplikacijo, ki gostuje v motorju Google App, tako da jo lahko uporabniki, ki želijo pridobiti več zasebnosti za podatke, uporabijo pri svojem uporabniku Google, dodajo preverjanje pristnosti itd.

Ko vse deluje, vstavite elektroniko v plastično lupino in po potrebi obrežite plastiko z dremelom. Celoten kos naj se lepo prilega ohišju.

Težave? Piši mi!

ZDRUŽENI POOPUJEMO!

Priporočena: