Sisällysluettelo:

JavaStation (itse täytettävä täysin automaattinen IoT-kahvinkeitin): 9 vaihetta (kuvilla)
JavaStation (itse täytettävä täysin automaattinen IoT-kahvinkeitin): 9 vaihetta (kuvilla)

Video: JavaStation (itse täytettävä täysin automaattinen IoT-kahvinkeitin): 9 vaihetta (kuvilla)

Video: JavaStation (itse täytettävä täysin automaattinen IoT-kahvinkeitin): 9 vaihetta (kuvilla)
Video: 🚀 AMAZON 2.0 – VEEBIPOOD nullist 6 tunniga [Next / React / Nest / PostgreSQL / Prisma / TS] 2024, Heinäkuu
Anonim
JavaStation (itse täytettävä täysin automaattinen IoT-kahvinkeitin)
JavaStation (itse täytettävä täysin automaattinen IoT-kahvinkeitin)
JavaStation (itse täytettävä täysin automaattinen IoT-kahvinkeitin)
JavaStation (itse täytettävä täysin automaattinen IoT-kahvinkeitin)
JavaStation (itse täytettävä täysin automaattinen IoT-kahvinkeitin)
JavaStation (itse täytettävä täysin automaattinen IoT-kahvinkeitin)

Tämän projektin tavoitteena oli tehdä täysin automaattinen ääniohjattu kahvinkeitin, joka täyttää itsensä automaattisesti vedellä, ja sinun tarvitsee vain vaihtaa asiakkaat ja juoda kahvisi;)

Vaihe 1: Johdanto

Johdanto
Johdanto

Koska tämä oli toinen kahvimoodini, olen oppinut paljon prosessissa, etenkin sitä, että mitä monimutkaisempi kone muutat, sitä enemmän ongelmia/vikoja kohtaat päivittäisessä käytössä. Edellinen kone oli vain yksinkertainen vanha 1 -kytkinkahvinkeitin, jossa oli rele.

Circolo (täysautomaattinen versio) on Dolce Guston huippuluokan premium -kone. Minun piti viettää tunteja oikean koneen etsimiseen, koska kaikki muut tämän sarjan koneet käyttivät ylintä mekaanista vipua vaihtaakseen kylmän ja kuuman veden virtauksen välillä, kuten kuvassa näkyy.

Vaihe 2: Valitse oikea kone

Valitse oikea kone
Valitse oikea kone

Peruskoneeni ei ole pelkästään täysautomaattinen, vaan siinä on merkittäviä ominaisuuksia, kuten sammutus automaattisesti 5 minuutin kuluttua ja muistaminen viimeiseen kahvimäärään (mikä helpottaa asioita paljon myöhemmin modauksen aikana). Koneen perustoiminnot:

1, Virtapainiketta painettu

2, Kylmän veden painiketta painettu (se hajottaa veden välittömästi kuppiin)

3, Kuuman veden painiketta painettu (se lämmittää kattilaa ~ 20-60 sekuntia ja alkaa vapauttaa kuumaa vettä kuppiin) Virran merkkivalo vilkkuu punaisena valmiustilan aikana ja muuttuu vihreäksi jatkuvasti, kun kattila on valmis.

Tämä kone pystyy myös havaitsemaan seuraavat virheet:

Vesisäiliö on tyhjä

Kupin pidike ei ole paikallaan

Molemmissa tapauksissa virran merkkivalo vilkkuu punaisen/vihreän välillä.

Vaihe 3: Laitteiston muutokset

Laitteiston muutokset
Laitteiston muutokset

Tässä kirjoituksessa en kerro yksityiskohtia kotelon purkamisesta ja kokoamisesta, koska siitä on videoita YouTubessa. Pääprosessori on piilotettu suoraan etupaneelin alle, jossa kaksi kytkintä ovat. Kattila on kotelon oikealla puolella erillään kaikesta muusta, pumppu ja virtalähdepaneeli vasemmalla puolella.

Kahvinkeitin on raskas ympäristö elektroniikalle, eikä mikään sivuista ole täysin sopiva integroimaan piiriä. Kattilan oikealla puolella on enemmän tilaa, mutta käsittelet lämpöä, ilmeisesti piiri ei voinut koskettaa kattilalevyä tai olla edes lähellä sitä. Olen valinnut virtalähteen / pumpun puolen, mutta tässä sinun on käsiteltävä raskasta resonanssia, joka tulee kalvopumpun toiminnasta, joka voi tuhota ohjauspiirin / saada johtimet liukumaan pois liittimistä ajan myötä.

Virtalähdepaneeli ei sisällä mitään hyödyllistä, mutta sitä voidaan käyttää vakaan +5 V: n (vielä yksi peukalo tälle koneelle) irtoamiseen, joka voidaan kytkeä suoraan Arduinon VIN -nastaan ohittamalla jännitteensäädin.

Nopea laitteistoluettelo (ei täydellinen BOM, ei sisällä perusasioita):

  1. Dolce Gusto Circulo täysautomaattinen versio
  2. 5V 4-kanavainen relemoduuli optoerottimella PIC AVR DSP: lle (suosittelen käyttämään 4x SIP-1A05 Reed Switch Releä)
  3. Arduino Micro (ehdotan SparkFun Pro Micron tai uudemman käyttöä tulevaisuudessa)
  4. 2PCS 4n35 FSC -optoerotinvalotransistori
  5. 1/2 "sähköinen magneettiventtiili vesi -ilmalle N/C normaalisti kiinni DC 12V
  6. Ultraäänimoduuli HC-SR04 Etäisyysmittausanturin anturi (osta lisävarusteita, näet myöhemmin miksi)
  7. 2 kpl sadepisaran kosteuden tunnistusanturimoduuli Arduino -sateentunnistus
  8. 1 Xbee
  9. Putkiliittimet vesilohkoille (voi vaihdella talon mukaan, parasta ostaa se rautakaupasta ja laittaa kaikki yhteen ennen ostamista)

Vaihe 4: Pääliitännät ja ohjainkortti

Pääliitännät ja ohjainkortti
Pääliitännät ja ohjainkortti
Pääliitännät ja ohjainkortti
Pääliitännät ja ohjainkortti
Pääliitännät ja ohjainkortti
Pääliitännät ja ohjainkortti

Seuraavat piiripisteet on kytkettävä:

1, Hot -painike

2, Kylmä -painike

3, punainen led

4, vihreä led

5, Päävirtakytkin

6, Jaettu GND

Valitettavasti olen kadottanut muistiinpanoni/kuvat siitä, minne juottaa nämä taululle, mutta kaikki voidaan helposti jäljittää yleismittarilla (käytä vain dioditestitilaa jäljittääksesi johdot takaisin). Juotos ei ollut liian kova, poimi pisteet SMD -jaloilla ja juota johdot siellä.

Punaiset/vihreät LEDit sijaitsevat molemmat vierekkäin virtakytkimessä. Niitä tarvitaan koneen tilan määrittämiseen (virta päällä, valmis kahvin valmistukseen (kattila lämmennyt), virhe). Olen irrottanut ne suoraan emolevyltä, koska virtakytkimen ympärillä olevan pienen piirin kanssa on vaikea piilottaa.

Käytin 4N35: n optoerottimia liittääkseni turvallisesti Arduinoon ja lukemaan LED -tiloja. Alkuperäinen ajatus oli käyttää niitä 5 ja tehdä sekä lukemat että kytkinohjaimet (tehdä täysin äänetön piiri). Valitettavasti tämä siru ei voinut tuottaa riittävän alhaista vastusta napin painalluksen jäljittelemiseksi, joten minun oli pakko käyttää releitä. Käytin yleistä 4-kanavaista relemoduulia, joka minulla oli kädessäni, mutta jos minun pitäisi tehdä tämä projekti uudelleen, käytän vain pieniä Reed-releitä (SIP-1A05 Reed Switch Relay, jossa on sisäiset flyback-diodit), jotka voidaan kytkeä suoraan Arduinon lähtöön nastat (~ 7mA kuorma), joten kaikki voidaan laittaa 2 -tasoiselle levyrakenteelle.

5 pientä johtoa voidaan helposti vetää alas virtajohtojen vieressä syöttökortin alla.

Jotta voisin käyttää tilaa tehokkaammin koneessa, päätin jakaa elektroniikan kahteen pääpaneeliin:

Vasen on pääohjauskortti, oikea (jota kutsun viestintäkortiksi) pitää Xbeeä, ja vaikka sitä ei näy kuvassa, sen takana olevat 2 vesianturia (ylivuototunnistusta varten) on puristettu. Ylhäällä reaaliaikainen kello (valinnainen käytettävyysaikaan:)) ja 4 -kanavainen relelevy, joka asettuu pumpun viereen alareunaan käärittynä sieneen, myös liimattu hieman suojaamaan resonaatiolta.

Viestintäkortin osalta en vaivautunut tekemään piirilevyä vain käyttämällä tavallista leipälevyä, koska siellä ei ole paljon meneillään. Siinä on 6 liitäntää emolevyyn:

Vcc (5V), GND, Xbee (TX), Xbee (RX), vesianturi1 (data), vesianturi2 (data)

Vaihe 5: Vesivirtauksen ohjaus ja täyttömekanismi

Veden virtauksen ohjaus ja täyttömekanismi
Veden virtauksen ohjaus ja täyttömekanismi
Veden virtauksen ohjaus ja täyttömekanismi
Veden virtauksen ohjaus ja täyttömekanismi
Veden virtauksen ohjaus ja täyttömekanismi
Veden virtauksen ohjaus ja täyttömekanismi

Olen suunnitellut tämän koneen turvallisuutta ajatellen, joten hyökkääjät/toimintahäiriöt eivät voi aiheuttaa vakavia vesivahinkoja talolle, koska kone kytketään sekä hanaan että Internetiin 24/7. Tämä on seuraava 555 -suojapiiri solenoidin päällä.

Huomaa myös, että solenoidi toimii 12 V: n virtalähteestä, jonka onnistuin edelleen puristamaan kahvinkeittimen pohjaan pumpun ja relelevyn vieressä. 4 -kanavainen relekortti kytkee 230 V: n päävirtalähteen suoraan sovittimeen, joka kytkee solenoidin päälle. Tietenkin on olemassa muutaman mikrosekunnin sammutusviive, joka sinun on laskettava magneettikentän romahtamiseksi sekä sovittimen solenoidissa + että pistoketta vedettäessä.

Käytän tavallista 3,5 mm: n liitintä ulkoisen vesilohkon yhdistämiseen pitkällä 3 m: n johdolla ja pienellä halkaisijalla olevalla PVC -putkella, joka tulee ulos kahvinkeittimeen menevästä lohkosta.

Vesisäiliön yläosa porataan tämän putken sisään, joka sitten laskettiin säiliön pohjaan. Huomautan, että on erittäin tärkeää syöttää putki sivun pohjaan menemättä läpi keskeltä ja häiritä ultraääni -antureita.

Kun solenoidi on kytketty päälle, se sulkee sen automaattisesti ~ 4 sekunnin kuluttua (eli sen pitäisi olla enemmän kuin tarpeeksi aikaa säiliön täyttämiseksi täyteen) ja se pysyy tässä tilassa seuraavaan käynnistyskiertoon asti. Tämä piiri on viimeinen suojalinja toimintahäiriöitä vastaan ja se toimii täysin itsenäisesti kahvinkeittimestä. Jos koneen rele epäonnistuu ja pysyy kiinni, vesi voi tulvata talon, tällä suojauksella se ei voi koskaan tapahtua.

Jos tämä ei vieläkään riitä sinulle tai on mahdotonta sulkea vettä tai et halua leikkiä vesilohkojen kanssa, tutustu WasserStation -projektiini, joka on rakennettu juuri tätä varten kahvinkeittimen pienen vesisäiliön laajentamiseksi.

Vaihe 6: Tulvien havaitseminen

Tulvien tunnistus
Tulvien tunnistus
Tulvien tunnistus
Tulvien tunnistus
Tulvien tunnistus
Tulvien tunnistus

Suojaa 2 lisävesianturia:

  • Anturi 1: säiliön takaosassa ylivuoton havaitsemiseksi säiliöstä
  • Anturi2: kahvinkeittimen pohjassa kupin ylivuototunnistusta varten

Molemmat anturit laukaisevat keskeytyksen, joka sulkee veden välittömästi, sytyttää virhevalon ja keskeyttää ohjelman suorituksen estääkseen hyökkäyksen, kuten miljoonan kahvin valmistamisen ja talon tulvan. Ohjelman lopettamisen jälkeen kone ei enää reagoi mihinkään ja se on käynnistettävä manuaalisesti.

Jos mietit, mitä tapahtuisi, jos ultraäänianturi tulvisi (se tapahtui kerran:))

Se palautti veden tasoa näin pari päivää, mutta edes kuivumisen jälkeen se ei koskaan enää ole tarkka ja jouduin vaihtamaan sen. Kone on suunniteltu toimimaan kylmällä vesijohtovedellä, joten kuumasta höyrystäminen ei vahingoita anturia. Tämä anturi on tarkka vain, kunnes vedenpinta on 2-3 cm siitä.

Säiliön elliptinen muoto vaikeutti vedenpinnan laskemista, joten ne mitattiin ja koodattiin ohjelmaan vastaamaan prosentteja.

Vaihe 7: Testaus ja lopullinen kokoonpano

Testaus ja lopullinen kokoonpano
Testaus ja lopullinen kokoonpano
Testaus ja lopullinen kokoonpano
Testaus ja lopullinen kokoonpano
Testaus ja lopullinen kokoonpano
Testaus ja lopullinen kokoonpano

Kone on lopullisessa tilassaan, ja se piilottaa lähes kaikki hakkeroinnin jäljet. Järistyspalvelin:)

Kun muutan laitteita, pidän aina manuaalista käyttöä etusijalla. Hakkamisen jälkeen kone on täysin käyttökelpoinen kenelle tahansa sellaisenaan, paitsi että vesisäiliötä ei voi helposti poistaa. Ellet viimeistele suunnittelun koko vesiautomaatio -osaa, kone voidaan täyttää tässä vaiheessa vain pienellä putki + suppilo -yhdistelmällä.

Vaihe 8: Kahvin ohjauskoodi

Kahvin ohjauskoodi
Kahvin ohjauskoodi

Löydä täydellinen Arduino -lähdekoodi alla.

Lyhyt selitys koodista:

Pääsilmukka kutsuu xcomm () -toiminnon, joka vastaa komentojen käsittelystä, kahvin valmistuksesta, koneen käynnistämisestä/sammuttamisesta.

Alla oleva koodi saavutetaan vain manuaalisen ohjauksen yhteydessä. Se lisää tilastomittaria seuratakseen kuinka monta kahvia valmistettiin ja täyttää vesisäiliön automaattisesti.

Komennot voidaan lähettää Xbeen kautta tai USB -portin kautta (virheenkorjaus on otettava käyttöön alussa). Kun yhteys tulee joko oranssista LEDistä vilkkuu sekunnin ajan näyttääkseen verkon toiminnan. Seuraavat komennot toteutetaan:

1, CMSTAT - kyselytilastot koneelta

Kone tallentaa tilastot siitä, kuinka monta kuumaa/kylmää/manuaalista kahvia valmistettiin, ja saa myös käyttöajan RTC: ltä, joka ei ylitä 3x päivän jälkeen, joten se voi kestää jopa vuosia: P

2, CMWSTART - alkaa valmistaa kahvia ja kuumia juomia kuumalla vedellä

3, CMCSTART - alkaa valmistaa jääteetä ja kylmiä juomia kylmällä vedellä

Kuuma ja kylmä prosessi alkaa kutsumalla valmiustila () -toimintoa, joka tarkistaa edelleen ja käynnistää sitten virtapainikkeen. Tämän jälkeen ohjelma odottaa vihreää valoa (kun kattila on lämmennyt) ja jäljittelee sitten kuuma/kylmä -painiketta. Tämän jälkeen se odottaa 50 sekuntia (mikä on enemmän kuin tarpeeksi suurimmalle kahvikupille) ja sammuttaa sitten virran. Tämä ei olisi edes tarpeen, koska tämä erinomainen kone sammuu automaattisesti 5 minuuttia kahvin valmistuksen jälkeen, mutta miksi tuhlata virtaa? Muuten koneen virrankulutus valmiustilassa muutoksen jälkeenkin on alle 2 wattia.

Veden täyttö ja turvallisuus

Tämä kone on suunniteltu turvallisuutta ajatellen, joten hallinnan saava hyökkääjä olisi mahdoton tulvata koko talon vedellä. Laitteistovika ei myöskään aiheuta vakavia vahinkoja. Laitteistoanturien vieressä on täyttökoodin sisäänrakennetut suojat. Laskuri, joka käynnistää ISR -rutiinin, jos konetta ei täytetä x sekunnissa (tämä voi tapahtua esimerkiksi, jos ultraäänianturi toimisi virheellisesti ja antaa 20% x sekunnin kuluttua, kun täyttö aloitetaan).

Todennusta ei ole, kuka tahansa voi käyttää radiotaajuusalueella olevaa konetta, joka tuntee komennot, joten olen muuttanut oletus Xbee piconet ID: n johonkin muuhun, myös ERR_INVALIDCMD voidaan kommentoida ja kone jättää huomiotta kaikki tuntemattomat komennot.

Virheitä

Kaksinkertainen kahvivika: tämän bugin ärsyttävin asia on, että se alkoi tapahtua pari kuukautta sen jälkeen, kun kone oli käytetty samalla koodilla. Kahvikomennon jälkeen se keitti kahvin, sammutti ja käynnisti uudelleen ja jatkoi vielä yhden kahvin valmistamista samalla suojelijalla.

Minun oli aloitettava komennon päällekkäisyyden vianetsintä Android-tasolta, koska olen toteuttanut uudelleenlähetyksen koodiin pakettien katoamisen sattuessa. Kävi ilmi, että androidi, C -ohjausohjelmisto tai raspi2: n Linux -ydin eivät olleet vastuussa tästä pikemminkin Xbeestä.

Kun kaiku “CMCSTART”>/dev/ttyACM0 on annettu ohjaussolmussa, se tulee ulos kahdesti toiseen päähän. Päätin, että kotini 2,4 GHz: n spektri alkoi kyllästyä monista tämän alueen radiolaitteista, mikä sai Xbeen kutsumaan jonkinlaisen uudelleenlähetyksen radiokerroksessa ja tiedot lähetettiin kahdesti (ei aina). Kun ensimmäinen komento tuli koneissa, xcomm () -toiminto alkoi käsitellä sitä, mutta toinen tuli heti, minkä jälkeen se odotti Xbees -puskurissa ja kun silmukka päättyi, se alkoi käsitellä toista komentoa. Tämän ongelman kiertämiseksi olen lisännyt koodiin 3 kynnystä, joiden avulla on mahdotonta valmistaa enemmän kuin yksi kahvi 2 minuutissa. Myös CMSTAT: llä on rajoitus, mutta se ei häiritse C/Android -ohjauskoodia, se yksinkertaisesti piilottaa vastaukset 2 sekunnin ajan.

Viimeinen kynnys asetettiin käsikäyttöiselle kahvimittarille, koska kun kone on saavuttanut valmiustilan (kattila lämmennyt, vihreä valo), se on kirjautunut vihreään tapahtumaan satoja kertoja ja kohottanut kahvimäärän.

Vaihe 9: Suunnittelunäkökohdat ja lopulliset ajatukset

Xbee -viestinnän monien vaivojen jälkeen en suosittele Xbeeä tähän projektiin. Käytä joko vakiomallista halpaa 433 MHz: n radiota, VirtualWire ja alennettu Bps vakauden saavuttamiseksi, tai upota Raspberry PI Zero, jossa on Wifi -yhteys suoraan kahvinkeittimeen.

Kuten päivämäärä osoittaa, se on vanha projekti, joten pyydän anteeksi pieniä yksityiskohtia, jotka puuttuvat, kuten yhteys ohjauspiiristä emolevyn tarkkoihin tapinjalkoihin. Tämä projekti vaatii tietyn tason teknistä osaamista tehdäkseen sen itse. Jos löydät virheitä/ongelmia tai haluat osallistua tähän opetusohjelmaan, kerro siitä minulle.

Ohjausohjelmisto, puheohjauksen menetelmät ovat toinen osa, joka mahdollistaa kahvin valmistamisen vain äänikomennolla ennen kuin nouset sängystä.

Olen nyt saanut valmiiksi vesivarastointijärjestelmän (WasserStation) dokumentaation ja päivittänyt CoffeeControlCode -version uusimpaan versioon, joka sisältää myös automaattisen täyttöjärjestelmän. Jos käytät samaa konetta rakentamiseen, täyttö toimii moitteettomasti (ilman muutoksia koodiin), koska vedenpinnat on kalibroitu Circolon vesisäiliöön.

Suositeltava: