Indholdsfortegnelse:

JavaStation (selvfyldende fuldautomatisk IoT-kaffemaskine): 9 trin (med billeder)
JavaStation (selvfyldende fuldautomatisk IoT-kaffemaskine): 9 trin (med billeder)

Video: JavaStation (selvfyldende fuldautomatisk IoT-kaffemaskine): 9 trin (med billeder)

Video: JavaStation (selvfyldende fuldautomatisk IoT-kaffemaskine): 9 trin (med billeder)
Video: Sun javastation "krups" booting Debian GNU/Linux 2024, Juli
Anonim
JavaStation (selvopfyldende fuldautomatisk IoT-kaffemaskine)
JavaStation (selvopfyldende fuldautomatisk IoT-kaffemaskine)
JavaStation (selvopfyldende fuldautomatisk IoT-kaffemaskine)
JavaStation (selvopfyldende fuldautomatisk IoT-kaffemaskine)
JavaStation (selvopfyldende fuldautomatisk IoT-kaffemaskine)
JavaStation (selvopfyldende fuldautomatisk IoT-kaffemaskine)

Målet med dette projekt var at lave en fuldautomatisk stemmestyret kaffemaskine, der automatisk fylder sig selv op med vand, og alt du virkelig skal gøre er at udskifte lånere og drikke din kaffe;)

Trin 1: Introduktion

Introduktion
Introduktion

Da dette var min anden kaffemod, har jeg lært meget i processen, især at jo mere kompleks maskine du ændrer, jo flere problemer/fejl vil du støde på i løbet af den daglige drift. Den forrige maskine var bare en simpel gammel 1 switch kaffemaskine med et relæ mod.

Circolo (fuldautomatisk version) er Dolce Gustos førsteklasses maskine. Jeg var nødt til at bruge timer på at søge efter den rigtige maskine, fordi alle de andre maskiner fra denne serie ved hjælp af det øverste mekaniske håndtag til at skifte mellem koldt og varmt vand flyder som det er vist på billedet.

Trin 2: Vælg den rigtige maskine

Vælg den rigtige maskine
Vælg den rigtige maskine

Min basismaskine er ikke bare fuldautomatisk, men den har bemærkelsesværdige funktioner som at slukke automatisk efter 5 minutter og huske til den sidste kaffemængde (hvilket vil gøre tingene meget lettere senere i modningen). Maskinens grundlæggende betjening:

1, afbryderknappen skubbet

2, knappen for koldt vand skubbet (det spreder straks vand til koppen)

3, knappen for varmt vand trykkes (det vil varme kedlen op ~ 20-60 sek. Og begynder at frigive varmt vand til koppen) Strømindikatoren blinker rødt i standbyperioden og bliver derefter grønt permanent, når kedlen er klar.

Denne maskine har også mulighed for at registrere følgende fejl:

Vandbeholderen er tom

Kopholder er ikke på plads

I begge tilfælde vil strømindikatoren blinke mellem rød/grøn.

Trin 3: Hardwareændringer

Hardware ændringer
Hardware ændringer

I denne skrivelse vil jeg ikke beskrive sagen adskillelse og genmontering, fordi der er videoer om den på YouTube. Hovedmikroprocessoren er skjult lige under hovedpanelet, hvor de 2 kontakter er. Kedlen er i højre side af kabinettet adskilt fra alt andet, pumpe og strømforsyningspanel er i venstre side.

Kaffemaskine er et kraftigt miljø for elektronik, ingen af siderne er perfekt egnede til at integrere et kredsløb til. Højre ved kedlen har mere plads, men du vil håndtere varme, selvfølgelig kunne kredsløbet ikke røre kedelpladen eller endda være i nærheden af det. Jeg har valgt strømforsyningen / pumpesiden, men her skal du håndtere kraftig resonans fra membranpumpens drift, som kan ødelægge styrekredsløbet / få ledninger til at glide ud af deres stik over tid.

Strømforsyningspanelet indeholder ikke noget nyttigt, men kan bruges til at igangsætte en stabil +5V (endnu en tommelfinger op for denne maskine), som kan tilsluttes direkte til Arduino's VIN -pin ved at omgå den indbyggede spændingsregulator.

Hurtig hardwareliste (ikke fuld stykliste, inkluderer ikke det grundlæggende):

  1. Dolce Gusto Circulo fuldautomatisk version
  2. 5V 4-kanals relæmodul med optokobler til PIC AVR DSP (jeg foreslår at bruge 4x SIP-1A05 Reed Switch Relay)
  3. Arduino Micro (jeg foreslår at bruge SparkFun Pro Micro eller nyere i fremtiden)
  4. 2PCS 4n35 FSC optokoblere fototransistor
  5. 1/2 "elektrisk magnetventil til vandluft N/C normalt lukket DC 12V
  6. Ultralydsmodul HC-SR04 Afstandsmåler transducersensor (køb nogle ekstramateriale, du vil se senere hvorfor)
  7. 2stk Regndråbe Fugtighedsdetektionssensormodul Regndetektion til Arduino
  8. 1 Xbee
  9. Rørbeslag til vandblokke (kan variere afhængigt af hus, bedst at købe det i isenkræmmer og sætte det hele sammen der, inden de køber)

Trin 4: Hovedforbindelser og kontrolkort

Hovedforbindelser og controllerkortet
Hovedforbindelser og controllerkortet
Hovedforbindelser og controllerkortet
Hovedforbindelser og controllerkortet
Hovedforbindelser og controllerkortet
Hovedforbindelser og controllerkortet

Følgende kredsløbspunkter skal tilsluttes:

1, Hot -knap

2, Kold knap

3, rød led

4, grøn led

5, hovedafbryderknap

6, delt GND

Desværre har jeg mistet mine noter/billeder om, hvor jeg skal lodde disse på tavlen, men alle kan let spores tilbage med et multimeter (brug bare diodetesttilstand til at spore ledningerne tilbage). Lodningen var ikke for hård, vælg punkter med SMD -ben og lod lodningerne der.

De røde/grønne lysdioder er begge placeret ved siden af hinanden ved afbryderen. De er nødvendige for at bestemme maskintilstande (tændt, klar til at lave kaffe (kedel opvarmet), fejl). Jeg har taget dem direkte fra hovedkortet, fordi det er svært at rode rundt med det lille kredsløb omkring afbryderen.

Jeg brugte 4N35s optokoblere til sikkert at kommunikere med Arduino og læse LED'ens tilstande. Den oprindelige idé var at bruge 5 af dem og udføre både aflæsninger og switchkontroller (lav et helt stille kredsløb). Desværre kunne denne chip ikke generere lav nok modstand til at efterligne et knaptryk, så jeg blev tvunget til at bruge relæer. Jeg brugte det generiske 4-kanals relæmodul, hvad jeg havde i hånden, men hvis jeg skulle lave om på dette projekt, ville jeg bare bruge små Reed-relæer (SIP-1A05 Reed Switch Relay med interne flyback-dioder), som kan forbindes direkte til Arduino's output stifter (~ 7mA belastning), så alt kunne sættes på en 2 -plan bordstruktur.

De 5 små kabler kan let bringes ned ved siden af strømkablerne under forsyningskortet.

For at bruge pladsen mere effektivt i maskinen besluttede jeg at dele elektronikken til 2 store paneler:

Til venstre er hovedbetjeningskortet, højre (det jeg kalder kommunikationskortet) holder Xbee, og selvom det ikke er vist på billedet, klemmes de 2 vandfølere (til overløbsdetektering) bag det. På toppen er uret i realtid (valgfrit for oppetid:)) og det 4 -kanals relækort, der finder sted ved siden af pumpen i bunden pakket ind i svamp, også limet lidt til beskyttelse mod resonansen.

Til kommunikationstavlen gider jeg ikke lave PCB bare brugte et almindeligt brødbræt, fordi der ikke sker meget der. Det har 6 forbindelser til hovedkortet:

Vcc (5V), GND, Xbee (TX), Xbee (RX), Vandsensor1 (Data), Vandsensor2 (Data)

Trin 5: Kontrol af vandgennemstrømning og påfyldningsmekanisme

Vandgennemstrømningskontrol og påfyldningsmekanisme
Vandgennemstrømningskontrol og påfyldningsmekanisme
Vandgennemstrømningskontrol og påfyldningsmekanisme
Vandgennemstrømningskontrol og påfyldningsmekanisme
Vandgennemstrømningskontrol og påfyldningsmekanisme
Vandgennemstrømningskontrol og påfyldningsmekanisme

Jeg har designet denne maskine med sikkerhed i tankerne, hvilket gør det umuligt for angribere/funktionsfejl at forårsage alvorlig vandskade på huset, da maskinen ville være tilsluttet både vandhanen og internettet 24/7. Dette er, hvad følgende 555 beskyttelseskredsløb gør oven på magnetventilen.

Bemærk også, at solenoiden fungerer fra en 12V strømforsyning, hvad jeg stadig formåede at presse ind i bunden af kaffemaskinen ved siden af pumpen og relækortet. For ikke at spilde strøm skifter 4 -kanalers relækort 230V -netledningen direkte til adapteren, som derefter tænder for solenoiden. Der er naturligvis et par mikrosekunders forsinkelsesforsinkelse, hvad du skal beregne for magnetfeltets kollaps både på magnetventilen + på adapteren ved at trække stikket.

Jeg bruger et standardstik på 3,5 mm til at forbinde den eksterne vandblok med en lang ledning på 3 m og et PVC -rør med lille diameter, der kommer ud fra blokken og går til kaffemaskinen.

Toppen af vandtanken bores ud for at rumme dette rør, som derefter blev bragt ned til bunden af tanken. Jeg vil bemærke, at det er meget vigtigt at føre røret ned til bunden på siden uden at gå gennem midten og forstyrre ultralydssensorerne.

Efter at magnetventilen er tændt, slukker kredsløbet automatisk efter ~ 4 sekunder (hvilket burde være mere end nok tid til at fylde tanken op til fuld), og den forbliver i denne tilstand indtil den næste tændingscyklus. Dette kredsløb er den sidste forsvarslinje mod funktionsfejl, og det fungerer helt selvstændigt fra kaffemaskinen. Hvis relæet i maskinen ville mislykkes og forblive lukket, kunne vandet oversvømme huset, med denne beskyttelse kan det aldrig ske.

Hvis dette stadig ikke er godt nok for dig, eller hvis det er umuligt at lukke vandet, eller hvis du ikke vil pille rundt med vandblokke, kan du tjekke mit WasserStation -projekt, der blev bygget præcist til at forlænge kaffemaskinens lille vandtank.

Trin 6: Detektion af oversvømmelser

Oversvømmelsesdetektion
Oversvømmelsesdetektion
Oversvømmelsesdetektion
Oversvømmelsesdetektion
Oversvømmelsesdetektion
Oversvømmelsesdetektion

Der er 2 ekstra vandfølere til beskyttelse:

  • Sensor1: på bagsiden af tanken til overløbsdetektering fra tanken
  • Sensor2: i bunden af kaffemaskinen til registrering af kopoverløb

Begge disse sensorer udløser en afbrydelse, der straks slukker for vandet, tænder fejllyset og afbryder programkørslen for at forhindre et angreb som at lave en million kaffe og oversvømme huset på den måde. Efter at programmet er afsluttet, reagerer maskinen ikke længere på noget og skal manuelt tændes.

Hvis du undrer dig over, hvad der ville ske, hvis ultralydssensoren ville blive oversvømmet (det skete en gang:))

Det gav vandstanden tilbage som denne i et par dage, men selv efter at den var tørret ud, blev den aldrig mere præcis, og jeg måtte udskifte den. Maskinen var designet til at køre fra det kolde postevand, så ingen dampning fra varmt ville beskadige sensoren. Denne sensor er kun nøjagtig, indtil vandstanden er 2-3 cm fra den.

Tankens elliptiske form gjorde vandstandsberegninger vanskelige, så de blev målt og hårdkodet ind i programmet for at svare til procentdele.

Trin 7: Test og afsluttende samling

Test og afsluttende samling
Test og afsluttende samling
Test og afsluttende samling
Test og afsluttende samling
Test og afsluttende samling
Test og afsluttende samling

Maskinen i sin endelige tilstand, skjuler næsten fuldstændigt sporene efter enhver hacking, og hvis de 3 statusindikator -lysdioder og USB -fejlfindingsport ikke ville være der, kunne du ikke fortælle, at der foregår noget andet indeni, mens den endda kunne huse en Wifi -tilsluttet Quake server:)

Når jeg ændrer enheder, har jeg altid manuel brug en topprioritet. Efter hacket er maskinen fuldstændig brugbar af alle, ligesom den var, bortset fra at vandtanken ikke let kan fjernes. Medmindre du er færdig med hele vandautomatiseringsdelen af designet, kan maskinen kun fyldes op på dette tidspunkt med et lille rør + tragtkombination.

Trin 8: Kaffekontrolkode

Kaffekontrolkode
Kaffekontrolkode

Find den komplette Arduino -kildekode vedhæftet herunder.

Kort forklaring af koden:

Hovedløkken kalder funktionen xcomm (), der er ansvarlig for kommandobearbejdningen, tilberedning af kaffen, tænd/sluk for maskinen.

Koden nedenunder nås kun i tilfælde af manuel kontrol. Det øger en statstæller for at holde styr på, hvor mange kaffe der blev lavet og fylder vandtanken automatisk.

Kommandoer kan sendes via Xbee eller over USB -porten (Debug skal aktiveres i begyndelsen). Når der kommer kommunikation fra enten den orange lysdiode, blinker et sekund for at vise netværksaktivitet. Følgende kommandoer implementeres:

1, CMSTAT - forespørgselsstatistik fra maskinen

Maskinen gemmer statistik om, hvor mange varme/kolde/manuelle kaffe der blev lavet og får også oppetiden fra RTC, som ikke flyder over efter 3x dage, så det kan gå op til år: P

2, CMWSTART - begynder at lave kaffe og varme drikke med varmt vand

3, CMCSTART - begynder at lave iste og kolde drikke med koldt vand

De varme og kolde processer starter med at ringe til standby () -funktionen, som foretager yderligere kontrol og derefter udløser et tryk på tænd / sluk -knappen. Herefter venter programmet på det grønne lys (når kedlen er opvarmet) efterligner derefter tryk på varm/kold knap. Efter dette venter det 50 sekunder (hvilket er mere end nok til selv den største kop kaffe) og derefter slukker for strømmen. Dette ville ikke engang være nødvendigt, da denne fremragende maskine automatisk ville slukke 5 minutter efter kaffen, men hvorfor spilde strøm? Forresten er maskinens standby -strømforbrug, selv efter ændringen, mindre end 2 Watt.

Vandpåfyldning og sikkerhed

Denne maskine er designet med sikkerhed i tankerne, så det ville være umuligt for en angriber, der får kontrol, at oversvømme hele huset med vand. En hardwarefejl ville heller ikke resultere i alvorlige skader. Ved siden af hardwaresensorerne er der indbygget beskyttelse i koden til genopfyldningen. En tæller, der udløser ISR -rutinen, hvis maskinen ikke genopfyldes om x sekunder (dette kan f.eks. Ske, hvis ultralydssensoren ville fungere forkert og give 20% efter x sekunder, når genopfyldningen er startet).

Der er ingen godkendelse, alle kan bruge maskinen inden for radioområde, der kender kommandoerne, så jeg har ændret standard Xbee piconet ID til noget andet, også ERR_INVALIDCMD kan kommenteres, og maskinen ignorerer eventuelle ukendte kommandoer.

Fejl

Dobbelt kaffebug: Det mest irriterende ved denne fejl er, at den begyndte at ske et par måneder efter brug af maskinen med den samme kode. Efter at kaffekommandoen blev udstedt, lavede den kaffen, slukkede og tændte igen og fortsatte med at lave 1 kaffe mere med den samme patron.

Jeg var nødt til at begynde at fejlsøge kommandoduplikering fra Android-niveau, fordi jeg har implementeret genudsendelse til koden i tilfælde af tab af pakker. Det viste sig, at hverken Android, C -styringssoftwaren eller Linux -kernen på raspi2 var ansvarlig for dette snarere Xbee.

Efter at have udsendt ekko “CMCSTART”>/dev/ttyACM0 på kontrolnoden kommer det ud to gange til den anden ende. Jeg konkluderede, at mit 2,4 GHz -spektrum i mit hjem begyndte at blive mættet fra de mange radioenheder i dette område, hvilket fik en Xbee til at påberåbe sig en form for genudsendelse i radiolaget, og dataene blev sendt to gange (ikke altid). Når den første kommando kom i maskinerne, begyndte xcomm () -funktionen at behandle den, men en anden kom ind lige efter, som ventede i Xbees -bufferen, og da sløjfen var færdig, begyndte den at behandle den anden kommando. For at komme uden om dette problem har jeg introduceret 3 tærskler i koden for at gøre det umuligt at lave mere end 1 kaffe på 2 minutter. Der er også en grænse for CMSTAT, men for ikke at forstyrre C/Android -kontrolkoden vil det simpelthen svække svar i 2 sekunder.

Den sidste tærskel blev sat for den manuelle kaffetæller, fordi når maskinen har nået klar tilstand (kedel opvarmet, grønt lys) har den logget den grønne hændelse hundredvis af gange og stødt kaffetællingen.

Trin 9: Designovervejelser og sidste tanker

Efter mange problemer fra Xbee -kommunikationen vil jeg ikke anbefale Xbee til dette projekt. Brug enten den almindelige billige 433Mhz -radio med VirtualWire og sænket Bps for stabilitet eller integrer en Raspberry PI Zero med Wifi -forbindelse direkte i kaffemaskinen.

Da datoen viser, er det et gammelt projekt, så jeg beklager, at der mangler små detaljer som forbindelsen fra styrekredsløbet til de præcise ben på bundkortet. Dette projekt kræver et vist niveau af teknisk viden for at gøre det på egen hånd. Hvis du finder fejl/problemer eller vil bidrage til denne vejledning, så lad mig det vide.

Kontrolsoftwaren, metoder til stemmestyring er til en anden del, der gør det muligt at få din kaffe klar ved blot en stemmekommando, før du overhovedet kommer ud af sengen.

Jeg har nu afsluttet dokumentationen til mit vandlagringssystem (WasserStation) og opdateret CoffeeControlCode til den nyeste version, som også inkluderer den automatiske påfyldning. Hvis du bruger den samme maskine til bygningen, fungerer genopfyldningen fejlfrit (uden ændringer af koden), da vandstandene blev kalibreret til vandtanken på Circolo.

Anbefalede: