Innholdsfortegnelse:

JavaStation (selvpåfyllende helautomatisk IoT-kaffetrakter): 9 trinn (med bilder)
JavaStation (selvpåfyllende helautomatisk IoT-kaffetrakter): 9 trinn (med bilder)

Video: JavaStation (selvpåfyllende helautomatisk IoT-kaffetrakter): 9 trinn (med bilder)

Video: JavaStation (selvpåfyllende helautomatisk IoT-kaffetrakter): 9 trinn (med bilder)
Video: Sun javastation "krups" booting Debian GNU/Linux 2024, Juli
Anonim
JavaStation (selvfyllende helautomatisk IoT-kaffetrakter)
JavaStation (selvfyllende helautomatisk IoT-kaffetrakter)
JavaStation (selvfyllende helautomatisk IoT-kaffetrakter)
JavaStation (selvfyllende helautomatisk IoT-kaffetrakter)
JavaStation (selvpåfyllende helautomatisk IoT-kaffetrakter)
JavaStation (selvpåfyllende helautomatisk IoT-kaffetrakter)

Målet med dette prosjektet var å lage en helautomatisk stemmestyrt kaffetrakter som automatisk fylles opp med vann, og alt du egentlig trenger å gjøre er å bytte lånetakerne og drikke kaffen din;)

Trinn 1: Introduksjon

Introduksjon
Introduksjon

Siden dette var min andre kaffemodus, har jeg lært mye i prosessen, spesielt at jo mer kompleks maskin du endrer jo flere problemer/feil vil du støte på i løpet av den daglige driften. Den forrige maskinen var bare en enkel gammel 1 bryter kaffetrakter med relémod.

Circolo (helautomatisk versjon) er den førsteklasses premiummaskinen til Dolce Gusto. Jeg måtte bruke timer på å lete etter den riktige maskinen fordi alle de andre maskinene fra denne serien bruker den øverste mekaniske spaken til å veksle mellom kaldt og varmt vann som det vises på bildet.

Trinn 2: Velg riktig maskin

Velg riktig maskin
Velg riktig maskin

Min basismaskin er ikke bare helautomatisk, men den har bemerkelsesverdige funksjoner som å slå av automatisk etter 5 minutter og huske til siste kaffemengde (noe som vil gjøre ting mye lettere senere i modding). Maskinens grunnleggende drift:

1, strømknappen trykket

2, kaldtvannsknapp presset (den vil umiddelbart spre vann til koppen)

3, Varmtvannsknappen trykket (det vil varme opp kjelen ~ 20-60 sek og begynner å slippe ut varmt vann til koppen) Strømlampen blinker rødt i standby-perioden og blir deretter grønt permanent når kjelen er klar.

Denne maskinen har også muligheten til å oppdage følgende feil:

Vanntanken er tom

Koppholder er ikke på plass

I begge tilfeller vil strømlampen blinke mellom rødt/grønt.

Trinn 3: Maskinvaremodifikasjoner

Maskinvareendringer
Maskinvareendringer

I denne skrivingen vil jeg ikke detaljere demontering og montering av saken fordi det er videoer om den på YouTube. Hovedmikroprosessoren er skjult rett under hodepanelet der de to bryterne er. Kjelen er på høyre side av saken skilt fra alt annet, pumpen og strømforsyningspanelet er på venstre side.

Kaffemaskin er et kraftig miljø for elektronikk, ingen av sidene er perfekt egnet til å integrere en krets i. Høyre ved kjelen har mer plass, men du vil håndtere varme, åpenbart kunne kretsen ikke berøre kjeleplaten eller være i nærheten av den. Jeg har valgt strømforsyning / pumpeside, men her må du håndtere tung resonans som kommer fra driften av membranpumpen som kan ødelegge styrekretsen / få ledninger til å gli ut av kontaktene over tid.

Strømforsyningspanelet inneholder ikke noe nyttig, men kan brukes til å igangsette en stabil +5V (en tommel opp for denne maskinen) som kan kobles direkte til Arduino's VIN -pin ved å omgå den innebygde spenningsregulatoren.

Rask maskinvareliste (ikke full styklist, inkluderer ikke grunnleggende):

  1. Full automatisk versjon av Dolce Gusto Circulo
  2. 5V 4-kanals relemodul med optokobler for PIC AVR DSP (jeg foreslår at du bruker 4x SIP-1A05 Reed Switch Relay)
  3. Arduino Micro (jeg foreslår at du bruker SparkFun Pro Micro eller nyere i fremtiden)
  4. 2PCS 4n35 FSC optokoblere fototransistor
  5. 1/2 "elektrisk magnetventil for vannluft N/C normalt lukket DC 12V
  6. Ultralydsmodul HC-SR04 Avstandsmåler transduser sensor (kjøp noen statister, du vil se senere hvorfor)
  7. 2 stk. Regndråpe fuktighetsdetekteringssensormodul regndeteksjon for Arduino
  8. 1 Xbee
  9. Rørbeslag for vannblokker (kan variere avhengig av huset, best å kjøpe det i jernvarehandel og sette alt sammen der før du kjøper)

Trinn 4: Hovedtilkoblinger og kontrollerkortet

Hovedtilkoblinger og kontrollerkortet
Hovedtilkoblinger og kontrollerkortet
Hovedtilkoblinger og kontrollerkortet
Hovedtilkoblinger og kontrollerkortet
Hovedtilkoblinger og kontrollerkortet
Hovedtilkoblinger og kontrollerkortet

Følgende kretspunkter må kobles til:

1, Hot -knapp

2, kald knapp

3, rød led

4, grønn ledet

5, hovedstrøm på -knappen

6, delt GND

Dessverre har jeg mistet notatene/bildene mine om hvor jeg skal lodde disse på brettet, men alt kan enkelt spores tilbake med et multimeter (bare bruk diodetestmodus for å spore ledningene tilbake). Loddet var ikke for hardt, velg poeng med SMD -ben og lodd ledningene der.

De røde/grønne lysdiodene er plassert ved siden av hverandre ved strømbryteren. De er nødvendige for å bestemme maskintilstander (slått på, klar til å lage kaffe (kjele oppvarmet), feil). Jeg har tatt dem av direkte fra hovedkortet, fordi det er vanskelig å fikle rundt den lille kretsen rundt strømbryteren.

Jeg brukte 4N35s optokoblere for å trygt koble til Arduino og lese LED -tilstandene. Den opprinnelige ideen var å bruke 5 av dem og gjøre både avlesninger og bryterkontroller også (lag en helt stille krets). Dessverre kunne ikke denne brikken generere lav nok motstand til å etterligne et knappetrykk, så jeg ble tvunget til å bruke reléer. Jeg brukte den generiske 4-kanals relemodulen det jeg hadde i hånden, men hvis jeg måtte gjøre dette prosjektet igjen, ville jeg bare bruke små Reed-reléer (SIP-1A05 Reed Switch Relay med interne flyback-dioder) som kan kobles direkte til Arduino-utgangen pinner (~ 7mA belastning) slik at alt kan settes på en 2 -planskonstruksjon.

De 5 små kablene kan enkelt bringes ned ved siden av strømledningene under forsyningskortet.

For å bruke plassen mer effektivt i maskinen bestemte jeg meg for å dele elektronikken til 2 store paneler:

Til venstre er hovedkontrollkortet, høyre (det jeg kaller kommunikasjonskortet) holder Xbee, og selv om det ikke er vist på bildet, klemmer de 2 vannsensorene (for overløpsdeteksjon) bak det. På toppen sanntidsklokken (valgfri for oppetid:)) og 4 -kanals relékortet som tar plass ved siden av pumpen nederst pakket inn i svamp, limt også litt for å beskytte mot resonansen.

For kommunikasjonstavlen gadd jeg ikke lage PCB, bare brukte et vanlig brødbrett fordi det ikke skjer så mye der. Den har 6 tilkoblinger til hovedkortet:

Vcc (5V), GND, Xbee (TX), Xbee (RX), Vannsensor1 (Data), Vannsensor2 (Data)

Trinn 5: Kontroll av vannstrømmen og påfyllingsmekanismen

Vannføringskontroll og påfyllingsmekanisme
Vannføringskontroll og påfyllingsmekanisme
Vannføringskontroll og påfyllingsmekanisme
Vannføringskontroll og påfyllingsmekanisme
Vannføringskontroll og påfyllingsmekanisme
Vannføringskontroll og påfyllingsmekanisme

Jeg har designet denne maskinen med tanke på sikkerhet, noe som gjør det umulig for angripere/funksjonsfeil å forårsake alvorlige vannskader på huset siden maskinen ville være koblet til både kranen og Internett 24/7. Dette er hva følgende 555 beskyttelseskrets gjør på toppen av solenoiden.

Vær også oppmerksom på at solenoiden driver fra en 12V strømforsyning det jeg fortsatt klarte å presse inn i bunnen av kaffemaskinen ved siden av pumpen og relékortet. For ikke å kaste bort strøm, bytter 4 -kanalers relékort 230V hovedstrømmen direkte til adapteren som deretter slår på solenoiden. Det er selvsagt et par mikrosekunder avstengningsforsinkelse det du må beregne for kollaps av magnetfeltet både på magnetventilen + på adapteren når du trekker i kontakten.

Jeg bruker en standard 3,5 mm jack for å koble den eksterne vannblokken med en lang 3 m ledning og et PVC -rør med liten diameter som kommer ut fra blokken til kaffetrakteren.

Toppen av vanntanken bores ut for å imøtekomme dette røret som deretter føres ned til bunnen av tanken. Jeg vil merke at det er veldig viktig å mate røret ned til bunnen på siden uten å gå gjennom midten og forstyrre ultralydsensorene.

Etter at solenoiden som er slått på, vil kretsen automatisk slå seg av etter ~ 4 sekunder (som burde være mer enn nok tid til å fylle tanken opp til fullt), og den forblir i denne tilstanden til neste PÅ -syklus. Denne kretsen er den siste forsvarslinjen mot funksjonsfeil, og den fungerer helt frittstående fra kaffetrakteren. Hvis reléet i maskinen ville mislykkes og forblir stengt, kan vannet flomme huset, med denne beskyttelsen kan det aldri skje.

Hvis dette fremdeles ikke er godt nok for deg, eller hvis det er umulig å lukke vannet, eller hvis du ikke vil fikle med vannblokker, sjekk ut mitt WasserStation -prosjekt som ble bygget akkurat for å utvide den lille vanntanken til kaffemaskinen.

Trinn 6: Deteksjon av flom

Flomdeteksjon
Flomdeteksjon
Flomdeteksjon
Flomdeteksjon
Flomdeteksjon
Flomdeteksjon

Det er 2 ekstra vannsensorer for beskyttelse:

  • Sensor1: på baksiden av tanken for overløpsdeteksjon fra tanken
  • Sensor2: nederst på kaffemaskinen for deteksjon av koppoverløp

Begge disse sensorene vil utløse et avbrudd som slår av vannet umiddelbart, skrur på feillyset og avbryter programkjøringen for å forhindre et angrep som å lage en million kaffe og oversvømme huset på den måten. Etter at programmet avsluttet, vil maskinen ikke lenger svare på noe, og den må være manuelt slått av.

Hvis du lurer på hva som ville skje hvis ultralydsensoren ville bli oversvømmet (det skjedde en gang:))

Det ga tilbake vannstanden som dette i et par dager, men selv etter at det tørket ut, ble det aldri nøyaktig igjen, og jeg måtte bytte det ut. Maskinen ble designet for å løpe fra kaldt vann fra springen, slik at ingen damp fra varmt ville skade sensoren. Denne sensoren er bare nøyaktig til vannstanden er 2-3 cm fra den.

Tankens elliptiske form gjorde vannnivåberegninger vanskelige, så de ble målt og hardkodet inn i programmet for å tilsvare prosentandeler.

Trinn 7: Testing og sluttmontering

Testing og sluttmontering
Testing og sluttmontering
Testing og sluttmontering
Testing og sluttmontering
Testing og sluttmontering
Testing og sluttmontering

Maskinen i sin endelige tilstand, skjuler nesten helt spor av enhver hacking, og hvis de 3 statusindikatorlampene og USB -feilsøkingsporten ikke ville være der, kunne du ikke fortelle at noe annet foregår inne mens den til og med kunne inneholde en Wifi -tilkoblet Quake server:)

Når jeg endrer enheter, har jeg alltid manuell bruk en topp prioritet. Etter hackingen er maskinen helt brukbar av alle akkurat som den var, bortsett fra at vanntanken ikke lett kan fjernes. Med mindre du fullfører hele vannautomatiseringsdelen av designet, kan maskinen bare fylles opp med et lite rør + traktkombinasjon.

Trinn 8: Kaffekontrollkode

Kaffekontrollkode
Kaffekontrollkode

Finn den komplette Arduino -kildekoden som er vedlagt nedenfor.

Kort forklaring av koden:

Hovedløkken kaller funksjonen xcomm (), som er ansvarlig for kommandobearbeiding, tilberedning av kaffe, og slår maskinen på/av.

Koden under er bare nådd ved manuell kontroll. Det øker en statsteller for å holde oversikt over hvor mange kaffe som ble laget og fyller vanntanken automatisk.

Kommandoer kan sendes via Xbee eller over USB -porten (Debug må være aktivert i begynnelsen). Når kommunikasjonen kommer fra enten den oransje lysdioden blinker et sekund for å vise nettverksaktivitet. Følgende kommandoer er implementert:

1, CMSTAT - spørrestatistikk fra maskinen

Maskinen lagrer statistikk om hvor mange varme/kalde/manuelle kaffe som ble laget, og får også oppetiden fra RTC som ikke overløper etter 3x dager, så det kan gå opp til år: P

2, CMWSTART - begynner å lage kaffe og varme drikker med varmt vann

3, CMCSTART - begynner å lage iste og kalde drikker med kaldt vann

De varme og kalde prosessene starter med å ringe standby () -funksjonen, som foretar ytterligere kontroller og deretter utløser et trykk på knappen. Etter dette venter programmet på det grønne lyset (når kjelen er oppvarmet) etterligner deretter trykk på varm/kald knapp. Etter dette venter det 50 sekunder (som er mer enn nok for selv den største koppen kaffe) og slår deretter av strømmen. Dette ville ikke engang være nødvendig siden denne utmerkede maskinen ville slå seg av automatisk 5 minutter etter kaffen, men hvorfor kaste bort strøm? Forresten er strømforbruket til maskinen i standby selv etter endringen mindre enn 2 Watt.

Vannpåfylling og sikkerhet

Denne maskinen ble designet med tanke på sikkerhet, så det ville være umulig for en angriper som får kontroll å oversvømme hele huset med vann. En maskinvarefeil ville heller ikke føre til alvorlige skader. Ved siden av maskinvaresensorene er det innebygd beskyttelse i koden for påfyllingen. En teller som utløser ISR -rutinen hvis maskinen ikke etterfylles på x sekunder (dette kan for eksempel skje hvis ultralydsensoren ville fungere feil og gi ut 20% etter x sekunder når påfyllingen er startet).

Det er ingen autentisering, hvem som helst kan bruke maskinen innenfor radioområdet som kan kommandoene, så jeg har endret standard Xbee piconet ID til noe annet, også ERR_INVALIDCMD kan kommenteres og maskinen vil ignorere eventuelle ukjente kommandoer.

Bugs

Dobbel kaffebug: Det mest irriterende med denne feilen er at den begynte å skje et par måneder etter at jeg hadde brukt maskinen med samme kode. Etter at kaffekommandoen ble utstedt, lagde den kaffen, slo den av og på igjen og fortsett å lage 1 kaffe til med samme mønster.

Jeg måtte begynne å feilsøke kommandoduplikasjonen fra Android-nivå fordi jeg har implementert re-sending til koden i tilfelle tap av pakker. Det viste seg at verken Android, C -kontrollprogramvaren eller Linux -kjernen på raspi2 var ansvarlig for dette heller Xbee.

Etter å ha gitt ekko “CMCSTART”>/dev/ttyACM0 på kontrollnoden, kommer den ut to ganger til den andre enden. Jeg konkluderte med at mitt 2,4 GHz -spekter i hjemmet mitt begynte å bli mettet fra de mange radioenhetene i dette området, noe som førte til at en Xbee påkalte en eller annen form for utsending i radiolaget og dataene ble sendt to ganger (ikke alltid). Når den første kommandoen kom i maskinene, begynte xcomm () -funksjonen å behandle den, men den andre kom inn rett etter som ventet i Xbees -bufferen, og da løkken var ferdig, begynte den å behandle den andre kommandoen. For å omgå dette problemet har jeg introdusert 3 terskler i koden for å gjøre det umulig å lage mer enn 1 kaffe på 2 minutter. Det er også en grense for CMSTAT, men for ikke å forstyrre C/Android -kontrollkoden, vil den ganske enkelt kaste respons i 2 sekunder.

Den siste terskelen ble satt inn for den manuelle kaffedisken, fordi når maskinen har nådd klar tilstand (kjele oppvarmet, grønt lys) har den logget den grønne hendelsen hundrevis av ganger og stødt kaffetallet.

Trinn 9: Designhensyn og siste tanker

Etter mye trøbbel fra Xbee -kommunikasjonen vil jeg ikke anbefale Xbee for dette prosjektet. Bruk enten den vanlige billige 433Mhz -radioen med VirtualWire og senket Bps for stabilitet, eller legg inn en Raspberry PI Zero med Wifi -tilkobling direkte i kaffemaskinen.

Som datoen viser er det et gammelt prosjekt, så jeg beklager at det mangler små detaljer som forbindelsen fra kontrollkretsen til de presise benene på hovedkortet. Dette prosjektet krever et visst nivå av teknisk kunnskap for å gjøre det på egen hånd. Gi meg beskjed hvis du finner feil/problemer eller ønsker å bidra til denne opplæringen.

Kontrollprogramvaren, metoder for talestyring er for en annen del som vil gjøre det mulig å ha kaffen klar med bare en talekommando før du kommer ut av sengen.

Jeg har nå fullført dokumentasjonen for vannlagringssystemet mitt (WasserStation) og oppdatert CoffeeControlCode til den nyeste versjonen, som også inkluderer automatisk påfyll. Hvis du bruker den samme maskinen til bygningen, vil påfyllingen fungere feilfritt (uten noen endring i koden) siden vannstandene ble kalibrert til vanntanken til Circolo.

Anbefalt: