Innehållsförteckning:
- Steg 1: Verktyg och material
- Steg 2: Avaktivera originalenheten
- Steg 3: Kretsar förklarade
- Steg 4: Förbereda ATTiny85
- Steg 5: Bygg Wemos -skölden
- Steg 6: Förbereda Wemos
- Steg 7: Sätta ihop allt
Video: IOToilet: 7 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
IOToilet är den första smarta toalettpappershållaren som håller reda på vår dagliga användning av toalettpapper och tillåter ackumulerad statistik som visar dessa mätvärden. Och varför ska jag bry mig om min dagliga användning av toalettpapper kan du fråga? Som det visar sig har vår bukhälsa, särskilt matsmältningscykeln, mycket att göra med både vår fysiska hälsa och vår mentala. Här är till exempel ett trevligt TED -samtal (ett av ganska många, förresten) som utarbetar detta ämne:
Jag fick ursprungligen uppdraget att bygga 10 enheter av denna enhet för en varumärkesbyrå, vars klipp du kan se ovan (andra platsen), för en avsedd marknadsföringskampanj för ett stort företag. I början avfärdade jag idén som en som kom från ett annat överkreativt sinne som desperat försökte vinna ett klientkonto, men gradvis växte det på mig tills jag insåg värdet av informationen som samlats in via denna enhet.
Bygget baserades på en befintlig maskinvara som min klient fick från EBay, en röstinspelningsenhet inkapslad i en toalettpappershållare. Den hade rätt formfaktor och alla nödvändiga kringutrustning som redan var inbyggda, till exempel en högtalare, en rörelsessensor för att utlösa enheten, fjädrar för att hålla själva toalettpappret, batterifacket och en av-omkopplare, så jag valde gärna använder denna färdiga snarare än att modellera och skriva ut min egen.
Steg 1: Verktyg och material
Material som används:
Toalettpappershållare
Wemos D1 Mini
ATTiny85 -chip, DIP -förpackning
2 x 2n2222 transistor
220 Ohm motstånd
2 * 1KOhm motstånd
MPU6050 accelerometer
Valfritt, om jag inte använder mitt kretskort:
Wemos prototypsköld
tråd, lödning etc.
Verktyg som används:
Dremel med skärskiva
ATTiny dev -kort (för att enkelt ladda upp firmware)
USB Tiny ISP programmerare
triangulär skruvmejsel, jag använde detta kit:
Steg 2: Avaktivera originalenheten
Efter att ha fått den ursprungliga toalettpappersspindeln öppnade jag höljet med en triangulär skruvmejsel och tog bort det ursprungliga kretskortet, kopplade bort högtalaren och lämnade så mycket tråd som möjligt ansluten till den.
Jag lödde sedan ut lysdioden och lutningssensorn från det ursprungliga kretskortet, för att senare bli inbäddade i den nya kretsen. Var uppmärksam på att inte tippomkopplaren överhettas, eftersom det kan skada. Mitt var grått, men eftersom jag inte tog ett bra skott av det när jag tog bort det från den ursprungliga enheten, var jag tvungen att använda ett foto från nätet (se ovan), där det var grönt. Bara en liten detalj.
Efter att ha öppnat höljet och tagit bort elektroniken använde jag också en Dremel för att ta bort överflödig plast som användes för att hålla den ursprungliga kretskorten på plats, dessa små plasthyllor och en av de fyra skruvrören. Du kan skjuta upp detta till monteringsstadiet om du vill, men i vilket fall som helst krävs lite plasttrimning.
Steg 3: Kretsar förklarade
Så här är lite om logiken bakom kretsen:
För att batterierna ska hålla länge måste jag lägga både MPU6050 -accelerometern och ESP8266 -processorn i Wemos D1 Mini för att sova mellan aktiveringarna. Den första gjordes enkelt med en transistor som slog på och av MPU6050.
Obs! Jag trodde först att jag kunde programmera den för att skicka en avbrottsignal som väcker huvudprocessorn. Tyvärr, jag kunde inte hitta ett sätt att få det att hända, att konfigurera rätt register för MPU6050 var en knepig uppgift som jag fortfarande inte vet om möjligt alls …
Mitt andra alternativ var att använda lutningsomkopplaren som medföljde originalenheten för att väcka ESP. Jag knöt den först direkt till Wemos RESET -stift enligt beskrivningen på bilderna ovan med en transistor för att aktivera/inaktivera mekanismen. När transistorbasen var hög kunde GND passera genom lutningsomkopplaren och få den att tillfälligt ansluta till RESET -stiftet, vilket orsakar MCU -återställning (detta är tydligen det enda sättet att väcka en ESP från djup sömn). Jag kopplade sedan D0 till transistorbasen, med förutsättningen att detta ben är HÖG så länge MCU sover, och så snart det vaknar går D0 tillbaka till LÅG, vilket inaktiverar återställningsmekanismen. Jag behövde trots allt inte en återkommande återställning för att hända, bara för första gången när toalettpappershållaren började röra sig.
Vad jag dock upptäckte var att stift D0 tar ganska lång tid efter MCU -återställning för att gå tillbaka till LÅG, cirka 200 ms. Detta innebar att om jag snurrade toalettpappershållaren tillräckligt snabbt medan MCU sov, skulle det få flera ÅTERSTÄLLNINGAR, istället för att räkna rundorna, som det borde.
Så jag försökte lösa denna nya situation med några diskreta komponenter (kondensatorer, transistorer etc.) men jag lyckades bara få en delvis lösning på problemet.
Jag slutade med att lägga till en annan MCU, en ATTiny85, som skulle vakna från sömnen av lutningsomkopplaren och sedan väcka ESP8266 och vänta en stund innan jag somnar igen. Jag vet att detta förmodligen inte är den mest ekonomiska lösningen på problemet, men jag hade en deadline …
Du kan se den detaljerade lösningen i schemat jag har inkluderat. Observera att 10K -motstånden ersattes med 1K eftersom de 10k var för höga för att transistorerna skulle bli helt öppna.
Steg 4: Förbereda ATTiny85
Om du aldrig har programmerat en ATTiny85, var inte rädd! Med den älskade Arduino IDE kan du komma hela vägen. Börja med dessa instruktioner om hur du konfigurerar Arduino IDE:
github.com/SpenceKonde/ATTinyCore/blob/mas…
Installera sedan drivrutinerna för USBTinyISP härifrån:
learn.adafruit.com/usbtinyisp/drivers
Ladda nu den bifogade testkoden: WakeOnExternalInterruptTest.ino
och anslut (se ATTiny85 Pinout -diagram):
1. Taktknapp mellan stift 3 och jord
2. En led och ett 220 Ohm motstånd i serie, mellan stift 2 och jord
Nästa, Välj USBTinyISP som programmerare (under Verktyg -> Programmerare) och ladda upp testskissen till tavlan.
Lysdioden ska blinka fem gånger, sedan ska chipet somna. Genom att trycka på knappen kommer den att vakna och upprepa den sekvensen.
Fick det att fungera? bra! Ladda upp den sista skissen "Awakener" till ATTiny, som ska användas på den sista kretsen.
Steg 5: Bygg Wemos -skölden
Så för att konstruera skölden har du tre alternativ du kan välja mellan:
1. Använd en standard protoshield för Wemos och löd kretsarna på den.
2. Skapa ett kretskort, baserat på bifogade EAGLE -filer.
3. Be mig om ett kretskort som jag kan skicka dig via snigelpost (jag har några liggande, kostnaden är nästan ingenting).
I alla fall rekommenderar jag att du konstruerar kretsen på en brödbräda innan du går till PCB!
Om du använder PCB -alternativen, var noga med att ansluta den svarta ledningen som på bilderna, antingen på framsidan eller baksidan av kortet (det senare fungerade bäst för mig). Denna kabel ansluter GND från Wemos till ATTiny85 och utan det kommer inte att vakna.
Ta bara en titt på bilderna och läs de kommentarer jag har lagt till, detta borde vara tillräckligt.
Steg 6: Förbereda Wemos
Om du aldrig har använt Arduino IDE för att programmera ett Wemos -kort, börja med att installera korthanteraren och välja kortet i Verktyg -> Kort -menyn, enligt beskrivningen här:
github.com/esp8266/Arduino
Börja med att ladda upp blinkskissen till ditt bräde, se till att koden laddas upp korrekt.
Steg 7: Sätta ihop allt
Installera skärmen på Wemos. Du kan lödda den, men jag rekommenderar att du använder kvinnliga rubriker lödda på Wemos som möjliggör tillfällig anslutning mellan Wemos och skölden vid problem. Tänk bara på att honhuvudet måste gå av i det sista monteringsfasen för att enheten ska passa in i plastskalet. För att göra saker och ting lite mer komplicerade finns det en god chans att när skärmen är ansluten till Wemos kommer kodöverföringen att inaktiveras. Jag har stött på det fenomenet på ett icke -konsekvent sätt och hade inte tid att undersöka det.
Råd: planera i förväg.
Nu, testar!
När den är installerad börjar du med att ladda upp BlinkAccelerometer -testskissen till Wemos och se till att den tänder och släcker MPU6050 -lysdioden. Om inte, kontrollera ledningarna till transistorn som är ansvarig för att driva MPU6050. Dess bas ska vara ansluten till stift D5 på Wemos, kollektorn ska vara ansluten till accelerometerns GND och sändaren ska anslutas till gemensam GND.
Ladda sedan upp TurnCountTest1 -skissen till Wemos -kortet och öppna Serial Monitor. Du bör se data komma från accelerometern som visas på monitorn. Om det inte fungerar, kontrollera klockan och datakablarna: CLK ska vara ansluten till D1 och DATA ska vara ansluten till D2.
Löd nu lutningsomkopplaren till de angivna hålen i brädet (se anteckningar) och se till att den är vinkelrät mot rotationsaxeln så att snurran spindeln stängs och öppnar anslutningen mellan dess två ledningar.
Anslut sedan batteri 3V -ingången till Wemos VCC och dess minuspol till Wemos GND. Se till att enheten slås på genom att slå på strömbrytaren. Anslut slutligen högtalaren till GND och stift D4 på Wemos.
Ladda upp den slutliga koden till Wemos - en skiss som heter SmartWipe. Öppna en seriell bildskärm och se till att enheten somnar efter 3 minuter och vaknar genom att flytta tiltkontakten (motsvarande meddelanden ska visas på monitorn).
Om du vill minska tiden för Wemos är vaken (främst för teständamål), dimera värdet av WIFI_CONFIGURATION_IDLE_TIMEOUT som definieras i params.h och ladda upp skissen till tavlan. Se till att efter att Wemos har gått i djup sömn, när du flyttar tiltkontakten får ATTiny att vakna (signaleras av lysdioden), vilket i sin tur väcker Wemos.
Ändra värdet på parametern tillbaka till 180000L (3 minuter, i millisekunder) och se till att Wemos startar en Hotspot som heter IOToilet_XXXXXXXX där XXXXXXX kommer att hämtas från MAC -adressen för chipet. Anslut till denna Wifi med en smart telefon, och du bör hänvisas till ett registreringsformulär (en mekanism som kallas Captive Portal). Fyll i detaljerna, särskilt viktigt är ditt lokala wifi: s SSID och lösenord och skicka formuläret. Enheten ska sedan försöka ansluta till nätverket med de medföljande referenserna, och om det lyckas kan du spela upp 3 stigande ljud på högtalaren. Om det hade uppstått problem med att ansluta till Wifi kommer 3 fallande ljud att spelas upp. Efter det ska Wemos gå i djup sömn tills de väcks av rörelse.
Slutligen: System -test från början till slut.
Rulla toalettpappershållaren längs dess rotationsaxel några snurr, placera den sedan på en stadig yta (för att signalera att rullen har slutat och utlösa dataöverföring). Vänta cirka 10 sekunder tills rullningsräkningen skickas till molnet, gå sedan till https://smartwipe-iot.appspot.com/ och klicka på Fråga. Du bör se dina registreringsuppgifter och dina senaste användningsrulleantal i molnet! Var noga med att skriva ner din uuid, som är ditt unika id i systemet, extraherat från din Wemos MAC -adress.
Om du bara vill extrahera din statistik i JSON -format använder du en URL som liknar denna:
smartwipe-iot.appspot.com/api?action=query&uuid=1234567890
ersätt bara uuid med din.
Jag har inkluderat alla källor för webbappen, som finns på Google App -motorn så att användare som vill få mer sekretess för data, kan distribuera den på sin egen Google -användare, lägga till autentisering etc.
När allt fungerar, montera elektroniken i plastskalet, trimma plast med en dremel efter behov. Hela biten ska passa in i huset.
Problem? Skriv till mig!
UNITED WE POOP!
Rekommenderad:
Ta fantastiska bilder med en iPhone: 9 steg (med bilder)
Ta fantastiska bilder med en iPhone: De flesta av oss har en smartphone med oss överallt nuförtiden, så det är viktigt att veta hur du använder din smartphone -kamera för att ta fantastiska bilder! Jag har bara haft en smartphone i ett par år, och jag har älskat att ha en bra kamera för att dokumentera saker jag
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: 7 steg (med bilder)
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: Jag planerar att använda denna Rapsberry PI i ett gäng roliga projekt tillbaka i min blogg. Kolla gärna in det. Jag ville börja använda mitt Raspberry PI men jag hade inte ett tangentbord eller en mus på min nya plats. Det var ett tag sedan jag installerade en hallon
Hur man digitaliserar bilder och filmnegativ med en DSLR: 12 steg (med bilder)
Hur man digitaliserar diabilder och filmnegativ med en DSLR: En mångsidig och stabil inställning för digitalisering av diabilder och negativ med en DSLR eller en kamera med ett makroalternativ. Denna instruerbara är en uppdatering av Hur man digitaliserar 35 mm negativ (uppladdad juli 2011) med flera förbättringar för att utöka dess
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter - Rc helikopter - RC -plan med Arduino: 5 steg (med bilder)
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter | Rc helikopter | Rc -plan med Arduino: Att driva en Rc -bil | Quadcopter | Drone | RC -plan | RC -båt, vi behöver alltid en mottagare och sändare, antag att för RC QUADCOPTER behöver vi en 6 -kanals sändare och mottagare och den typen av TX och RX är för dyr, så vi kommer att göra en på vår
Hur man tar isär en dator med enkla steg och bilder: 13 steg (med bilder)
Hur man tar isär en dator med enkla steg och bilder: Detta är en instruktion om hur man demonterar en dator. De flesta av de grundläggande komponenterna är modulära och lätt att ta bort. Det är dock viktigt att du är organiserad kring det. Detta hjälper dig att inte förlora delar, och även för att göra ommonteringen