Innholdsfortegnelse:

IOToilet: 7 trinn (med bilder)
IOToilet: 7 trinn (med bilder)

Video: IOToilet: 7 trinn (med bilder)

Video: IOToilet: 7 trinn (med bilder)
Video: «Растения против зомби 2», телешоу «Тролль квест», «Мой говорящий Том 2», «Игры о кальмарах», Skibidi.io, «Туалетная драка» 2024, November
Anonim

IOToilet er den første smarte toalettpapirholderen, som holder oversikt over vår daglige bruk av toalettpapir og tillater statistikk som viser disse beregningene. Og hvorfor skulle jeg bry meg om min daglige bruk av toalettpapir, kan du spørre? Vel, som det viser seg, har magehelsen vår, spesielt fordøyelsessyklusen, mye å gjøre med både vår fysiske helse og vår mentale. For eksempel, her er en hyggelig TED -tale (en av ganske mange, forresten) som utdyper dette emnet:

Jeg fikk i utgangspunktet i oppdrag å bygge 10 enheter av denne enheten for et merkefirma, hvis klipp du kan se ovenfor (andre plassering), for en bestemt markedsføringskampanje for et stort selskap. I begynnelsen avviste jeg ideen som en som kom fra et annet overkreativt sinn som desperat prøvde å vinne en klientkonto, men gradvis vokste det på meg, helt til jeg innså verdien av informasjonen som ble samlet inn via denne enheten.

Bygget var basert på en eksisterende maskinvare som klienten min fikk fra EBay, en taleopptaksenhet innkapslet i en toalettpapirholder. Den hadde den riktige formfaktoren og alt nødvendig utstyr som allerede var innebygd, for eksempel en høyttaler, en bevegelsessensor for å utløse enheten, fjærer for å holde toalettpapiret selv, batterirom og en av / på-bryter, så jeg valgte gjerne bruker denne ferdige i stedet for å modellere og skrive ut min egen.

Trinn 1: Verktøy og materialer

Verktøy og materialer
Verktøy og materialer
Verktøy og materialer
Verktøy og materialer
Verktøy og materialer
Verktøy og materialer
Verktøy og materialer
Verktøy og materialer

Materialer som brukes:

Toalettpapirholder

Wemos D1 Mini

ATTiny85 chip, DIP emballasje

2 x 2n2222 transistor

220 Ohm motstand

2 * 1KOhm motstand

MPU6050 akselerometer

Valgfritt, hvis du ikke bruker kretskortet mitt:

Wemos prototypeskjold

wire, loddetinn osv.

Verktøy som brukes:

Dremel med skjæreskive

ATTiny dev -kort (for enkel opplasting av fastvare)

USB Tiny ISP programmerer

trekantet skrutrekker, jeg brukte dette settet:

Trinn 2: Deaktivering av originalenheten

Demontering av originalenheten
Demontering av originalenheten
Demontering av originalenheten
Demontering av originalenheten
Demontering av originalenheten
Demontering av originalenheten

Etter å ha fått den originale toalettpapirspindelen, åpnet jeg saken med en trekantet skrutrekker og fjernet den originale PCB -en, koblet fra høyttaleren og lot så mye ledning som mulig være koblet til den.

Jeg loddet deretter ut LED -en og tilt -sensoren fra det originale kretskortet, for senere å bli innebygd i den nye kretsen. Vær oppmerksom på at ikke vippebryteren overopphetes, da det kan skade. Mitt var grått, men siden jeg ikke tok et godt skudd av det når jeg fjernet det fra den opprinnelige enheten, måtte jeg bruke et foto fra nettet (se ovenfor), der det var grønt. Bare en liten detalj.

Etter å ha åpnet saken og fjernet elektronikken, brukte jeg også en Dremel til å fjerne overflødig plast som ble brukt til å holde den originale PCB -en på plass, disse små plasthyllene og en av de 4 skruerørene. Du kan utsette dette til monteringsstadiet hvis du vil, men det vil i hvert fall trenge litt plasttrimming.

Trinn 3: Kretsløp forklart

Kretsløp forklart
Kretsløp forklart
Kretsløp forklart
Kretsløp forklart

Så her er litt om logikken bak kretsen:

For at batteriene skulle holde lenge, måtte jeg sette både MPU6050 -akselerometeret og ESP8266 -prosessoren i Wemos D1 Mini til å sove mellom aktiveringene. Den første ble enkelt gjort ved hjelp av en transistor som slo MPU6050 av og på.

Merk: Jeg trodde først at jeg kunne programmere den til å sende et avbruddssignal som vil vekke hovedprosessoren. Akk, jeg kunne ikke finne en måte å få det til å skje, å konfigurere riktige registre til MPU6050 var en vanskelig oppgave som jeg fremdeles ikke vet om mulig i det hele tatt …

Mitt andre alternativ var å bruke vippebryteren som fulgte med den originale enheten for å vekke ESP. Jeg knyttet den først direkte til Wemos RESET -pinnen som beskrevet på bildene ovenfor, ved å bruke en transistor for å aktivere/deaktivere mekanismen. Når transistorbasen var høy, kunne GND passere gjennom vippebryteren og få den til midlertidig å koble til RESET -pinnen, noe som forårsaker MCU -tilbakestilling (dette er tilsynelatende den eneste måten å vekke en ESP fra dyp søvn). Jeg koblet deretter D0 til transistorbasen, etter forutsetningen om at dette beinet er HØY så lenge MCU sover, og så snart det våkner, går D0 tilbake til LOW, og deaktiverer tilbakestillingsmekanismen. Tross alt trengte jeg ikke en tilbakevendende tilbakestilling for å skje, bare for første gang da toalettpapirholderen begynte å bevege seg.

Det jeg oppdaget var imidlertid at pin D0 tar ganske lang tid etter MCU -tilbakestilling for å gå tilbake til LOW, omtrent 200 ms. Dette betydde at hvis jeg snurret toalettpapirholderen raskt nok mens MCU sov, ville det oppstå flere NULLSTILLINGER i stedet for å telle rundene, slik det burde.

Så jeg prøvde å løse denne nye situasjonen med noen diskrete komponenter (kondensatorer, transistorer etc.), men jeg klarte bare å få en delvis løsning på problemet.

Jeg endte opp med å legge til en annen MCU, en ATTiny85, som ville bli våknet fra søvn av vippebryteren og deretter vekke ESP8266 og vente en stund før jeg sovner. Jeg vet at dette sannsynligvis ikke er den mest økonomiske løsningen på problemet, men jeg hadde en frist …

Du kan se den detaljerte løsningen i skjemaet jeg har inkludert. Vær oppmerksom på at 10K -motstandene ble erstattet med 1K ettersom 10k -motstandene var for høye til at transistorene kunne bli helt åpne.

Trinn 4: Klargjøring av ATTiny85

Forbereder ATTiny85
Forbereder ATTiny85

Hvis du aldri har programmert en ATTiny85, ikke frykt! Ved å bruke den elskede Arduino IDE kan du komme deg hele veien. Start med disse instruksjonene for hvordan du konfigurerer Arduino IDE:

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

Deretter installerer du driverne for USBTinyISP herfra:

learn.adafruit.com/usbtinyisp/drivers

Last nå den vedlagte testkoden: WakeOnExternalInterruptTest.ino

og koble til (se ATTiny85 Pinout -diagram):

1. Taktknapp mellom pinne 3 og bakken

2. En led og en 220 Ohm motstand i serie, mellom pinne 2 og bakken

Neste, Velg USBTinyISP som programmerer (under Verktøy -> Programmerer) og last opp testskissen til tavlen.

Lysdioden skal blinke i 5 ganger, så skal brikken gå i dvale. Ved å trykke på knappen vil den våkne og gjenta denne sekvensen.

Fikk det til å fungere? flott! Last opp den siste skissen "Awakener" til ATTiny, som skal brukes på den siste kretsen.

Trinn 5: Bygg Wemos -skjoldet

Bygger Wemos -skjoldet
Bygger Wemos -skjoldet
Bygger Wemos -skjoldet
Bygger Wemos -skjoldet
Bygger Wemos -skjoldet
Bygger Wemos -skjoldet
Bygger Wemos -skjoldet
Bygger Wemos -skjoldet

Så for å konstruere skjoldet har du tre alternativer du kan velge mellom:

1. Bruk en standard protoshield for Wemos og lodd kretsene på den.

2. Lag en PCB, basert på de vedlagte EAGLE -filene.

3. Be meg om en PCB som jeg kan sende deg med sneglepost (jeg har noen få liggende, kostnaden er nesten ingenting).

Uansett anbefaler jeg å konstruere kretsen på et brødbrett før du går til PCB!

Hvis du bruker PCB -alternativene, må du koble den svarte ledningen som på bilder, enten på forsiden eller baksiden av brettet (sistnevnte fungerte best for meg). Denne ledningen kobler GND fra Wemos til ATTiny85, og uten det vil ikke våkne skje.

Bare se godt på bildene og les merknadene jeg har lagt til, dette burde være nok.

Trinn 6: Klargjøre Wemos

Hvis du aldri har brukt Arduino IDE til å programmere et Wemos -kort, starter du med å installere brettsjefen og velge brettet i Verktøy -> Brett -menyen, som beskrevet her:

github.com/esp8266/Arduino

Start med å laste opp blinkskissen til brettet ditt, og sørg for at koden lastes opp riktig.

Trinn 7: Sett alt sammen

Sette alt sammen
Sette alt sammen
Sette alt sammen
Sette alt sammen
Sette alt sammen
Sette alt sammen

Monter skjoldet på Wemos. Du kan lodde den, men jeg anbefaler å bruke kvinnelige overskrifter loddet til Wemos som vil tillate midlertidig forbindelse mellom Wemos og skjoldet, i tilfelle problemer. Bare husk at den kvinnelige overskriften må gå av i den siste fasen av monteringen for at enheten skal passe inn i plastskallet. For å gjøre ting litt mer komplisert, er det en god sjanse for at når skjold er koblet til Wemos, blir kodeopplasting deaktivert. Jeg har støtt på dette fenomenet på en ikke -konsistent måte, og hadde ikke tid til å forske på det.

Råd: planlegg på forhånd.

Nå, tester!

Når den er installert, starter du med å laste opp BlinkAccelerometer -testskissen til Wemos, og sørg for at den slår på og av MPU6050 LED. Hvis ikke, sjekk ledningene til transistoren som er ansvarlig for å drive MPU6050. Basen skal være koblet til pin D5 på Wemos, kollektoren skal være koblet til akselerometerets GND og emitteren skal være koblet til vanlig GND.

Last deretter opp TurnCountTest1 -skissen til Wemos -kortet og åpne Serial Monitor. Du bør se data som kommer fra akselerometeret som presenteres på skjermen. Hvis det ikke fungerer, må du kontrollere klokken og datakabelen: CLK skal være koblet til D1 og DATA skal være koblet til D2.

Nå lodder vippebryteren til de angitte hullene i brettet (se merknader), og sørg for at den er vinkelrett på rotasjonsaksen slik at spinningen av spindelen lukker og åpner forbindelsen mellom dens to ledninger.

Deretter kobler du batteri 3V -inngangen til Wemos VCC, og minus -terminalen til Wemos GND. Sørg for at enheten slås på når du slår på bryteren. Til slutt kobler du høyttaleren til GND og pin D4 på Wemos.

Last opp den endelige koden til Wemos - en skisse som heter SmartWipe. Åpne en seriell skjerm og sørg for at enheten går i dvale etter 3 minutter og våkner ved å flytte tiltbryteren (tilsvarende meldinger skal vises på skjermen).

Hvis du ønsker å redusere tiden Wemos er våken (hovedsakelig for testformål), må du redusere verdien av WIFI_CONFIGURATION_IDLE_TIMEOUT definert i params.h og laste opp skissen til tavlen. Sørg for at når Wemos går i dyp søvn, fører bevegelsen av vippebryteren til at ATTiny våkner (signalisert av LED -en), som igjen vekker Wemos.

Endre verdien av parameteren tilbake til 180000L (3 minutter, i millisekunder) og sørg for at Wemos skyter opp et hotspot som heter IOToilet_XXXXXXXX hvor XXXXXXX vil bli hentet fra MAC -adressen til brikken. Koble til denne Wifi ved hjelp av en smarttelefon, og du bør bli henvist til et registreringsskjema (en mekanisme som heter Captive Portal). Fyll ut detaljene, spesielt viktig er din lokale wifi -SSID og passord, og send inn skjemaet. Enheten bør deretter prøve å koble til nettverket ved hjelp av de medfølgende legitimasjonene, og hvis det lykkes, kan du spille av 3 stigende lyder på høyttaleren. Hvis det hadde vært et problem med å koble til Wifi, vil 3 synkende lyder spilles. Etter det skal Wemos gå i dyp søvn, til de blir vekket av bevegelse.

Til slutt: System -test fra ende til annen.

Rull toalettpapirholderen noen få spinn langs rotasjonsaksen, og legg den deretter på en jevn overflate (for å signalisere at rullen er avsluttet og utløse dataopplasting). Vent omtrent 10 sekunder før rulletallet blir sendt til skyen, gå deretter til https://smartwipe-iot.appspot.com/ og klikk på Spørring. Du bør se registreringsdetaljene dine og ditt siste bruksrulleantall i skyen! Husk å skrive ned uuid, som er din unike ID i systemet, hentet fra Wemos MAC -adresse.

Hvis du bare vil trekke ut statistikken din i JSON -format, kan du bruke en nettadresse som ligner denne:

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

bare bytt uuid ut med din.

Jeg har tatt med alle kildene til webappen, som er plassert i Google App -motoren, slik at brukere som ønsker å få mer personvern for dataene, kan distribuere den på sin egen Google -bruker, legge til autentisering etc.

Når alt fungerer, sett elektronikken inn i plastskallet, og trimm plast med en dremel etter behov. Hele stykket skal passe godt inn i huset.

Problemer? Skriv meg!

FORENEDE VI POOP!

Anbefalt: