Koll på tvättmaskinen (ESP8266)

Här kan man starta en egen tråd för sitt stora eller lilla projekt, för att få inspiration, beröm, hjälp om man kör fast etc.
Användarvisningsbild
hanpa
Inlägg: 116
Blev medlem: tor 18 maj 2017, 20:11

Koll på tvättmaskinen (ESP8266)

#1

Inläggav hanpa » mån 31 jul 2017, 22:31

Behovet av det här projektet är egentligen inte så stort, jag har mest gjort det för den tekniska utmaningen. Tanken är att jag ska kunna se om tvättmaskinen går och få meddelande när den är klar för tömning. Har gjort så här:

Använder en strömtransformator SCT-013-030 för att se hur mycket ström maskinen använder.

Skärmavbild 2017-07-31 kl. 21.50.38.png
Skärmavbild 2017-07-31 kl. 21.50.38.png (201.37 KiB) Visad 1662 gånger


Det finns olika modeller, en del ger ström ut och man måste då koppla till ett motstånd för att omvandla till spänning. Den modellen jag har valt har inbyggt motstånd och levererar ut en växelspänning där 1V motsvarar 30A. Jag är inte intresserad av att mäta strömmen i sig utan bara kunna avgöra om tvättmaskinen jobbar. Jag har anslutit den till ena fasen (L1) inne i maskinen, det var mest praktiskt för min del. Man sätter klämman runt fasledningen och så agerar den transformator via magnetfältet som blir då ström går i fasledningen.

Jag har en anpassningskrets liknande denna för att kunna mäta via A/D-omvandlaren i en ESP8266, Wemos D1 mini. Jag valde dock lite andra komponenter. 10k motstånd och 47uF som jag råkade ha tillgängliga. Det spelar inte så stor roll exakt vilka värden man väljer och speciellt inte för min del då jag inte vill mäta värdet i sig. Syftet med kretsen är att flytta upp växelspänningen så att man inte får in negativa värden på ingången till A/D-omvandlaren, jag har 3.3V istället för 5V som i bilden. Kondensatorn är för att snygga till signalen lite så att den inte är för brusig.

Skärmavbild 2017-07-31 kl. 21.56.19.png
Skärmavbild 2017-07-31 kl. 21.56.19.png (27.48 KiB) Visad 1662 gånger


Jag får ut ett värde mellan 0 och 1023 från mätningen i ESP8266 på A0 (analog ingång). Jag vill bara veta om det går ström så jag tar reda på max och min under ett antal mätningar och så tar jag skillnaden. Då får jag ungefär vilket strömspann (amplitud) strömmen har som mest under mätperioden. Jag kunde mäta runt 10 000 ggr/sekund men det är onödigt ofta så jag tog ner det till c:a 100 ggr/sekund för att lämna tid över för annat, bl.a. OTA och MQTT. Skickar värdet på strömspannet via MQTT men det är mest för att se vad som händer under utveckling av koden.

Har en modlogik som ska passa min tvättmaskin som är av äldre modell med programverk. När den tar in vatten så drar den ingen ström på L1 och den drar nästan inget alls då trumman står still ett tag innan den byter håll. Fick ungefär dessa värden på strömspannet, alltså skillnad mellan max- och minvärde 0-1023 från A0 under 1 sekund:

0-2: Maskinen avstängd
7-9: Maskinen pumpar ur vatten
45: Tvätt, trumman snurrar
90: Stabil centrifugering
150: Trumman accelererar eller bromsar in i samband med centrifugering.

Detta kan jag då använda för att bestämma vad maskinen gör. Har ett antal state:

Off:
Maskinen drar lite eller ingen ström (mätbrus) och anses inte gå. Min maskin har mekaniskt programverk så det finns ingen standby eller liknande.

Running:
Går hit om strömspannet > 30 under 3 sekunder (för att inte vara för känsligt för ev. spikar i elledningen)

Inactive:
Maskinen står still, fyller på vatten etc, strömspannet < 20.
Efter 3 minuter med < 20 går den till Off och tvättmaskinen är då klar om logiken är OK för min maskin.
Om strömspannet blir > 30 igen innan 3 minuter har gått så går den tillbaka till Running.
Det normala är alltså att den hoppar mellan Running och Inactive under tvättningen, dvs Running motsvarar att trumman snurrar.

Jag skickar state via MQTT så jag kan göra vad jag vill från servern för att indikera att maskinen jobbar, att den är klar, blinka med lampa, skicka SMS, röstmeddelande eller vad jag vill. State skickas varje sekund och ett separat meddelande skickas just då maskinen har gått till Off och det ska vara klart för att tömma den.

Här är en demo då maskinen går och state läses ut via en app i iPhone för MQTT. Labbuppkopplingn syns bredvid och ett litet kretskort med motstånd och kondensator. Här ser man att den hoppar mellan Running och Inactive med kort eftersläpning (beräknar nya värden på strömspannet varje sekund).

https://www.youtube.com/watch?v=sfi7EvlusMc

Koden finns här. Kan behöva justeras lite och obs att man måste anpassa den till den tvättmaskin man har så att den känner av om trumman går eller inte, och att den inte är för känslig för ev. strömspikar. Även om maskinen inte går så kommer det lite spikar då och då på fasen man mäter på, om enheten är igång dygnet runt. Man kan förstås ha något sätt att stänga av/på mätutrustningen om man vill.

https://pastebin.com/DuEz22pS
Senast redigerad av hanpa tis 01 aug 2017, 19:26, redigerad totalt 7 gånger.

Användarvisningsbild
hanpa
Inlägg: 116
Blev medlem: tor 18 maj 2017, 20:11

Re: Koll på tvättmaskinen (ESP8266)

#2

Inläggav hanpa » mån 31 jul 2017, 23:18

Det blev mycket tvättat idag... 8-)

Det verkar funka, det jag inte visste riktigt var hur länge den står still och inte gör något, typ att den väntar på något via programverket och det inte ser ut att hända så mycket. Risk för att logiken blir lurad att tro att maskinen är färdig. Men gränsen på <20 och 3 minuter funkade bra. Har loggat data till fil så jag kan se att den inte varit på Not_Running innan den är helt färdig.

Egentligen har jag data för ett state som säger att den centrifugerar. Rätt mycket överkurs. Skulle ju kunna lägga till detta state och skicka röstmeddelande om detta som förvarning om att snart är den klar för centrifugering har påbörjats.

svenix
Inlägg: 1
Blev medlem: tor 10 aug 2017, 01:56

Re: Koll på tvättmaskinen (ESP8266)

#3

Inläggav svenix » tor 10 aug 2017, 01:59

Tack för ett inspirerande projekt!
Men när jag går in på länken för att titta på koden får jag upp kod för att kolla postboxen?

Användarvisningsbild
hanpa
Inlägg: 116
Blev medlem: tor 18 maj 2017, 20:11

Re: Koll på tvättmaskinen (ESP8266)

#4

Inläggav hanpa » tor 10 aug 2017, 08:59

Oj, blev något skumt vid copy & paste. Ska peka på rätt kod nu.

https://pastebin.com/DuEz22pS

Användarvisningsbild
hanpa
Inlägg: 116
Blev medlem: tor 18 maj 2017, 20:11

Re: Koll på tvättmaskinen (ESP8266)

#5

Inläggav hanpa » lör 19 aug 2017, 23:42

Då jag ville kunna blinka och gnälla om att maskinen behöver tömmas när den är klar så behövde jag ett sätt att kvittera på så jag kompletterade med en knapp och satte detta i en enkel kopplingsbox från Biltema. Hela elektroniken ryms där. När jag ändå var igång så satte jag dit en RGB-lysdiod för att visa status, har gott om sådana liksom knappar. Det sitter motstånd kopplat till varje separat lysdiod i RGB-lysdioden, som jag har provat ut för just den jag har.

Knappen är kopplad till D3 med pull-up. Ingen debounce behövs för så fort man trycker på den byter koden state och efter detta har knappen ingen funktion, är bara för att kvittera då maskinen gått klart. Lysdioden är kopplad till D5-D7.

Här visas hur det ser ut då maskinen är igång. Svagt rött då trumman står still, starkare då den går. Viss eftersläpning eftersom det är en mätperiod på 1 sekund för att få fram strömförbrukningen på ett stabilt sätt.

https://www.youtube.com/watch?v=aJDAqnEklmc

Här blinkar det blått då maskinen är klar och väntar på kvittering. Därefter visar den svagt grönt. Har ingen avstängning utan den får stå på hela tiden. Drar inte mycket ström och att inte ha en avstängningsknapp förenklar användningen så att man inte glömmer att slå på när man tvättar.

https://www.youtube.com/watch?v=umpY4HaXDxc

Uppdaterade koden finns här:

https://pastebin.com/MfY2jMRC

Användarvisningsbild
hanpa
Inlägg: 116
Blev medlem: tor 18 maj 2017, 20:11

Re: Koll på tvättmaskinen (ESP8266)

#6

Inläggav hanpa » sön 20 aug 2017, 09:16

Skiss på hela lösningen:

Skärmavbild 2017-08-20 kl. 09.14.16.png
Skärmavbild 2017-08-20 kl. 09.14.16.png (498.76 KiB) Visad 1317 gånger

Användarvisningsbild
hanpa
Inlägg: 116
Blev medlem: tor 18 maj 2017, 20:11

Re: Koll på tvättmaskinen (ESP8266)

#7

Inläggav hanpa » ons 30 aug 2017, 07:16

Har kompletterat med tjatfunktion på serversidan.

Var 5:e minut blinkar jag på S20 vilket även innebär att det rasslar lite med relät eftersom det är sammankopplat med blåa LED:en.
Varje halvtimme kommer röstmeddelande om att tvätten är klar.

Påminnelserna håller på tills det är kvitterat via knappen i tvättstugan.

Användarvisningsbild
hanpa
Inlägg: 116
Blev medlem: tor 18 maj 2017, 20:11

Re: Koll på tvättmaskinen (ESP8266)

#8

Inläggav hanpa » mån 16 jul 2018, 10:44

Utvecklingen står inte still, info om tvätten kommer även via larmpanelen, viewtopic.php?f=13&t=44

Den är även under utveckling i 3D-printad version med tydligare text för tvätten etc.

Skärmavbild 2018-07-16 kl. 10.43.05.png
Skärmavbild 2018-07-16 kl. 10.43.05.png (266.88 KiB) Visad 525 gånger


Återgå till "Egna projekt"

Vilka är online

Användare som besöker denna kategori: 1 och 0 gäst