INHOUDSOPGAWE:

IOToilet: 7 stappe (met foto's)
IOToilet: 7 stappe (met foto's)

Video: IOToilet: 7 stappe (met foto's)

Video: IOToilet: 7 stappe (met foto's)
Video: MUURTJE STUCEN IN 7 STAPPEN! - Knauf Doe-Het-Zelf 2024, November
Anonim

Die IOToilet is die eerste slim toiletpapierhouer wat ons daaglikse gebruik van toiletpapier byhou en statistieke toelaat wat hierdie statistieke toon. En waarom moet ek u bekommer oor my daaglikse gebruik van toiletpapier? Soos dit blyk, het ons buikgesondheid, veral die vertering, baie te doen met ons fisiese gesondheid en ons geestelike toestand. Hier is byvoorbeeld 'n lekker TED -praatjie (een van 'n hele paar, terloops) wat oor hierdie onderwerp uitwei:

Ek het aanvanklik die opdrag gekry om 10 eenhede van hierdie toestel te bou vir 'n handelsmerkagentskap, waarvan u die clip hierbo kan sien (2de plek), vir 'n doelgerigte bemarkingsveldtog vir 'n groot onderneming. Aan die begin het ek die idee afgemaak as 'n idee wat uit 'n ander te veel kreatiewe gees kom, wat desperaat probeer om 'n kliëntrekening te wen, maar dit het geleidelik op my gegroei totdat ek die waarde besef het van die inligting wat deur hierdie toestel versamel is.

Die konstruksie was gebaseer op 'n bestaande stuk hardeware wat my kliënt van EBay gekry het, 'n stemopneemapparaat wat in 'n toiletpapierhouer ingekap is. Dit het die regte vormfaktor en al die nodige randapparatuur wat reeds ingebou is, soos 'n luidspreker, 'n bewegingsensor om die toestel te aktiveer, vere om die toiletpapier self te hou, die batterykompartement en 'n aan-af-skakelaar, so ek het graag besluit deur hierdie gereedgemaakte te gebruik eerder as om my eie te modelleer en te druk.

Stap 1: gereedskap en materiaal

Gereedskap en materiaal
Gereedskap en materiaal
Gereedskap en materiaal
Gereedskap en materiaal
Gereedskap en materiaal
Gereedskap en materiaal
Gereedskap en materiaal
Gereedskap en materiaal

Materiaal wat gebruik word:

Toiletpapier houer

Wemos D1 Mini

ATTiny85 -chip, DIP -verpakking

2 x 2n2222 transistor

220 Ohm weerstand

2 * 1KOhm weerstand

MPU6050 versnellingsmeter

Opsioneel, as u nie my PCB gebruik nie:

Wemos prototipe skild

draad, soldeer, ens.

Gereedskap wat gebruik word:

Dremel met 'n snyskyf

ATTiny dev -bord (vir die oplaai van firmware maklik)

USB Tiny ISP programmeerder

driehoekige skroewedraaier, ek het hierdie kit gebruik:

Stap 2: Ontsetting van die oorspronklike eenheid

Ontsetting van die oorspronklike eenheid
Ontsetting van die oorspronklike eenheid
Ontsetting van die oorspronklike eenheid
Ontsetting van die oorspronklike eenheid
Ontsetting van die oorspronklike eenheid
Ontsetting van die oorspronklike eenheid

Nadat ek die oorspronklike toiletpapier -as gekry het, het ek die kas oopgemaak met 'n driehoekige skroewedraaier en die oorspronklike printplaat verwyder, die luidspreker ontkoppel en soveel as moontlik draad daaraan gekoppel.

Ek het toe die LED en die kantelsensor van die oorspronklike printplaat gesoldeer om later in die nuwe stroombaan ingebed te word. Let op dat die kantelknop nie oorverhit word nie, aangesien dit kan beskadig. Myne was grys, maar aangesien ek nie 'n goeie opname daarvan gemaak het toe ek van die oorspronklike toestel verwyder het nie, moes ek 'n foto van die net gebruik (sien hierbo), waar dit groen was. Net 'n klein detail.

Nadat ek die kas oopgemaak het en die elektronika verwyder het, het ek ook 'n Dremel gebruik om oortollige plastiek te verwyder wat gebruik is om die oorspronklike printplaat, hierdie klein plastiekrakke en een uit die 4 skroefpype, vas te hou. U kan dit uitstel na die monteerstadium, maar u moet in elk geval plastiek snoei.

Stap 3: Kringbane verduidelik

Stroombane verduidelik
Stroombane verduidelik
Stroombane verduidelik
Stroombane verduidelik

Hier is 'n bietjie oor die logika agter die kring:

Om die batterye lank te hou, moes ek die MPU6050 -versnellingsmeter en die ESP8266 -verwerker in die Wemos D1 Mini laat slaap tussen die aktiverings. Die eerste is maklik gedoen met behulp van 'n transistor wat die MPU6050 aan en af skakel.

Opmerking: ek het aanvanklik gedink ek kan dit programmeer om 'n onderbrekingssein te stuur wat die hoofverwerker sal laat wakker word. Helaas, ek kon nie 'n manier vind om dit te laat gebeur nie, die opstel van die regte registers van die MPU6050 was 'n moeilike taak wat ek nog glad nie weet of dit moontlik is …

My tweede opsie was om die ESP met die kantelskakelaar wat by die oorspronklike eenheid was, te gebruik. Ek het dit eers direk aan die Wemos RESET -pen vasgemaak, soos beskryf op die foto's hierbo, met 'n transistor om die meganisme te aktiveer/deaktiveer. As die transistorbasis hoog was, kon die GND deur die kantelskakelaar gaan en dit kon tydelik met die RESET -pen verbind, wat die MCU laat herstel (dit is blykbaar die enigste manier om 'n ESP uit diepe slaap wakker te maak). Daarna het ek D0 aan die transistorbasis gekoppel, met die veronderstelling dat hierdie been HOOG is, solank die MCU slaap, en sodra dit wakker word, gaan D0 terug na LOW, wat die herstelmeganisme uitskakel. Ek het immers nie die herhaling nodig gehad nie, net vir die eerste keer dat die toiletpapierhouer begin beweeg het.

Wat ek egter ontdek het, is dat pin D0 nogal lank neem nadat die MCU herstel is, terug na LOW, ongeveer 200 ms. Dit het beteken dat as ek die toiletpapierhouer vinnig genoeg draai terwyl die MCU slaap, dit verskeie RESETs sou plaasvind, in plaas daarvan om die rondtes te tel, soos dit hoort.

Dus, ek het probeer om hierdie nuwe situasie op te los met 'n paar diskrete komponente (kapasitors, transistors, ens.), Maar ek het slegs 'n gedeeltelike oplossing vir die probleem gekry.

Uiteindelik het ek nog 'n MCU bygevoeg, 'n ATTiny85, wat deur die kantelknop uit die slaap sou word en dan die ESP8266 wakker maak en 'n rukkie wag voordat ek weer gaan slaap. Ek weet dat dit waarskynlik nie die mees ekonomiese oplossing vir die probleem is nie, maar ek het 'n sperdatum gehad …

U kan die gedetailleerde oplossing sien in die skema wat ek ingesluit het. Let daarop dat die 10K -weerstande met 1K vervang is, aangesien die 10k -weerstande te hoog was om die transistors heeltemal oop te kry.

Stap 4: Voorbereiding van die ATTiny85

Berei die ATTiny85 voor
Berei die ATTiny85 voor

As u nog nooit 'n ATTiny85 geprogrammeer het nie, moenie bang wees nie! Deur die geliefde Arduino IDE te gebruik, kan u die hele pad bereik. Begin met hierdie instruksies oor hoe om die Arduino IDE op te stel:

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

Installeer vervolgens die bestuurders vir die USBTinyISP hier:

learn.adafruit.com/usbtinyisp/drivers

Laai nou die aangehegte toetskode: WakeOnExternalInterruptTest.ino

en maak verbinding (sien ATTiny85 Pinout -diagram):

1. Taktknoppie tussen pen 3 en grond

2. 'n LED en 'n weerstand van 220 Ohm in serie, tussen pen 2 en grond

Volgende, Kies die USBTinyISP as die programmeerder (onder Tools -> Programmer) en laai die toetsskets op die bord.

Die LED moet 5 keer knipper, dan moet die chip gaan slaap. As u op die knoppie druk, word dit wakker en herhaal die volgorde.

Het dit aan die werk gekom? wonderlik! Laai die finale skets "Awakener" op na die ATTiny, wat op die finale kring gebruik moet word.

Stap 5: Bou die Wemos -skild

Die bou van die Wemos -skild
Die bou van die Wemos -skild
Die bou van die Wemos -skild
Die bou van die Wemos -skild
Die bou van die Wemos -skild
Die bou van die Wemos -skild
Die bou van die Wemos -skild
Die bou van die Wemos -skild

Dus, om die skild te bou, het u drie opsies waaruit u kan kies:

1. Gebruik 'n standaard protoshield vir die Wemos en soldeer die stroombane daarop.

2. Stel 'n PCB op, gebaseer op die aangehegte EAGLE -lêers.

3. Vra my vir 'n PCB wat ek per slakpos kan stuur (ek het 'n paar wat lê, die koste is byna niks).

Ek beveel in elk geval aan om die kring op 'n broodbord te bou voordat u na die PCB gaan!

As u die PCB -opsies gebruik, moet u die swart draad verbind soos op foto's, aan die voor- of agterkant van die bord (laasgenoemde het vir my die beste gewerk). Hierdie draad verbind die GND van die Wemos met die ATTiny85 en sonder dit sal daar nie wakker word nie.

Kyk net goed na die beelde en lees die aantekeninge wat ek bygevoeg het; dit behoort genoeg te wees.

Stap 6: Berei die Wemos voor

As u nog nooit die Arduino IDE gebruik het om 'n Wemos -bord te programmeer nie, begin deur die bestuurder te installeer en kies die bord in die menu Tools -> Board, soos hier beskryf:

github.com/esp8266/Arduino

Laai die knipskets op u bord op en sorg dat die kode korrek opgelaai word.

Stap 7: Alles saamvoeg

Om alles bymekaar te sit
Om alles bymekaar te sit
Om alles bymekaar te sit
Om alles bymekaar te sit
Om alles bymekaar te sit
Om alles bymekaar te sit

Installeer die skerm op die Wemos. U kan dit soldeer, maar ek beveel aan dat u vroulike kopstukke aan die Wemos gesoldeer gebruik, wat tydelike verbinding tussen die Wemos en die skild moontlik maak, in geval van probleme. Hou net in gedagte dat die vroulike kop in die laaste stadium van montering moet afklim sodat die eenheid in die plastiekdop kan pas. Om dinge nog meer ingewikkeld te maak, is die kans groot dat die oplaai van kode gedeaktiveer sal word as die skild aan die Wemos gekoppel is. Ek het die verskynsel op 'n nie -konsekwente manier teëgekom, en ek het nie tyd gehad om dit te ondersoek nie.

Advies: beplan vooruit.

Nou, toets!

Sodra dit geïnstalleer is, begin met die oplaai van die BlinkAccelerometer -toetsskets na die Wemos, en maak seker dat dit die MPU6050 LED aan en af skakel. Indien nie, kyk na die bedrading van die transistor wat verantwoordelik is vir die voeding van die MPU6050. Die basis daarvan moet verbind word met pen D5 van die Wemos, die versamelaar moet aan die GND van die versnellingsmeter gekoppel wees en die emitter moet aan die gewone GND gekoppel word.

Laai dan die TurnCountTest1 -skets op die Wemos -bord en maak Serial Monitor oop. U behoort data te sien kom van die versnellingsmeter wat op die monitor verskyn. As dit nie werk nie, kyk na die klok en data -bedrading: CLK moet aan D1 gekoppel wees en DATA moet aan D2 gekoppel word.

Soldeer nou die kantelskakelaar aan die aangewese gate in die bord (sien aantekeninge), en maak seker dat dit loodreg op die rotasie -as is, sodat die draai van die spil sal sluit en die verbinding tussen sy twee leidings sal oopmaak.

Koppel dan die battery 3V -ingang aan die Wemos VCC en die minus -aansluiting daarvan aan die Wemos GND. Maak seker dat deur die skakelaar aan te skakel, die eenheid aangeskakel word. Koppel laastens die luidspreker aan GND en pen D4 van die Wemos.

Laai die finale kode op na die Wemos - 'n skets genaamd SmartWipe. Maak 'n seriële monitor oop en maak seker dat die eenheid na 3 minute gaan slaap en wakker word deur die kantelknop te beweeg (ooreenstemmende boodskappe moet op die monitor verskyn).

As u die tyd wat die Wemos wakker is, wil verminder (hoofsaaklik vir toetsdoeleindes), verminder die waarde van WIFI_CONFIGURATION_IDLE_TIMEOUT wat in params.h gedefinieer word, en laai die skets op na die bord. Maak seker dat die ATTiny wakker word (aangedui deur die LED) nadat die Wemos diep aan die slaap geraak het, wat op sy beurt die Wemos wakker maak.

Verander die waarde van die parameter terug na 180000L (3 minute, in millisekondes) en maak seker dat die Wemos 'n Hotspot genaamd IOToilet_XXXXXXX oprig waar XXXXXXX van die MAC -adres van die skyf gehaal sal word. Koppel aan hierdie Wifi met 'n slimfoon, en u moet na 'n registrasievorm ('n meganisme genaamd Captive Portal) verwys word. Vul die besonderhede in, veral die SSID en wagwoord van u plaaslike wifi is belangrik, en dien die vorm in. Die eenheid moet dan probeer om aan te sluit op die netwerk met behulp van die gegewens, en as dit slaag, speel 3 stygende klanke op die luidspreker. As daar 'n probleem was met die verbinding met die Wifi, sal 3 dalende klanke gespeel word. Daarna moet die Wemos diep slaap, totdat hulle wakker word deur beweging.

Laastens: stelsel -toets van einde tot einde.

Rol die toiletpapierhouer 'n paar draaie langs die rotasie -as, en plaas dit dan op 'n vaste oppervlak (om aan te dui dat die rol klaar is en die oplaai van data veroorsaak). Wag ongeveer 10 sekondes totdat die roltelling na die wolk gestuur word, gaan dan na https://smartwipe-iot.appspot.com/ en klik op Navraag. U moet u registrasiebesonderhede en u onlangse gebruiksrol in die wolk sien! Maak seker dat u uuid, wat u unieke ID in die stelsel is, uit u MAC -adres van u Wemos opgeteken het.

As u slegs u statistieke in JSON -formaat wil onttrek, gebruik 'n soortgelyke URL:

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

vervang uuid net met joune.

Ek het alle bronne ingesluit vir die webprogram, wat op die Google App -enjin gehuisves word, sodat gebruikers wat meer privaatheid vir die data wil verkry, dit op hul eie Google -gebruiker kan implementeer, verifikasie kan byvoeg, ens.

As alles werk, pas die elektronika in die plastiekdop, sny plastiek met 'n dremel af indien nodig. Die hele stuk moet mooi in die behuising pas.

Moeilikheid? Skryf vir my!

VERENIGDE ONS PAK!

Aanbeveel: