Sisukord:

JavaStation (isetäituv täisautomaatne IoT kohvimasin): 9 sammu (koos piltidega)
JavaStation (isetäituv täisautomaatne IoT kohvimasin): 9 sammu (koos piltidega)

Video: JavaStation (isetäituv täisautomaatne IoT kohvimasin): 9 sammu (koos piltidega)

Video: JavaStation (isetäituv täisautomaatne IoT kohvimasin): 9 sammu (koos piltidega)
Video: Sun javastation "krups" booting Debian GNU/Linux 2024, Juuli
Anonim
JavaStation (isetäituv täisautomaatne IoT kohvimasin)
JavaStation (isetäituv täisautomaatne IoT kohvimasin)
JavaStation (isetäituv täisautomaatne IoT kohvimasin)
JavaStation (isetäituv täisautomaatne IoT kohvimasin)
JavaStation (isetäituv täisautomaatne IoT kohvimasin)
JavaStation (isetäituv täisautomaatne IoT kohvimasin)

Selle projekti eesmärk oli valmistada täisautomaatne hääljuhtimisega kohvimasin, mis täidab end automaatselt veega ja kõik, mida peate tegema, on kliendid asendada ja kohvi juua;)

Samm 1: Sissejuhatus

Sissejuhatus
Sissejuhatus

Kuna see oli minu teine kohvimoodul, olen selle käigus palju õppinud, eriti seda, et mida keerukamat masinat muudate, seda rohkem probleeme/vigu igapäevases töös ette tuleb. Eelmine masin oli lihtsalt vana 1 lülitiga kohvimasin koos releemooduliga.

Circolo (täisautomaatne versioon) on Dolce Gusto esmaklassilise esmaklassilise masina tipp. Pidin kulutama tunde õige masina otsimisele, sest kõik teised selle seeria masinad kasutasid ülemist mehaanilist hooba, et vahetada külma ja kuuma vee voolu vahel, nagu pildil näidatud.

Samm: valige õige masin

Valige õige masin
Valige õige masin

Minu baasmasin ei ole lihtsalt täisautomaatne, vaid sellel on märkimisväärsed funktsioonid, näiteks automaatne väljalülitamine 5 minuti pärast ja viimase kohvikoguse meeldejätmine (mis muudab asjad modifitseerimisel palju lihtsamaks). Masina põhitoimingud:

1, toitenuppu vajutatakse

2, vajutati külma vee nuppu (see hajutab vee kohe tassi)

3, Kuuma vee nuppu vajutatud (see soojendab boilerit ~ 20–60 sekundit ja hakkab kuuma vett tassi välja laskma) Toite märgutuli vilgub ooterežiimi ajal punaselt ja seejärel põleb pidevalt, kui boiler on valmis.

Sellel masinal on ka võimalus tuvastada järgmisi vigu:

Veepaak on tühi

Tassihoidik pole paigas

Mõlemal juhul vilgub toite tuli punase/rohelise vahel.

Samm: riistvara muutmine

Riistvara modifikatsioonid
Riistvara modifikatsioonid

Selles kirjutises ei täpsusta ma korpuse lahtivõtmist ja kokkupanekut, sest selle kohta on YouTube'is videoid. Peamine mikroprotsessor on peidetud otse peapaneeli alla, kus on kaks lülitit. Katel on korpuse paremal küljel kõigest muust eraldatud, pump ja toitepaneel on vasakul.

Kohvimasin on elektroonika jaoks vastupidav keskkond, ükski külg ei sobi ideaalselt vooluahela integreerimiseks. Katla paremal on rohkem ruumi, kuid te tegelete kuumusega, ilmselgelt ei saanud vooluahel katlaplaati puudutada ega isegi selle lähedal olla. Olen valinud toiteallika / pumba poole, kuid siin peate tegelema tugeva resonantsiga, mis tuleneb membraanipumba töötamisest, mis võib juhtimisahela puruneda / juhtmed aja jooksul pistikutest välja libiseda.

Toitepaneel ei sisalda midagi kasulikku, kuid seda saab kasutada stabiilse +5 V mahavõtmiseks (selle masina jaoks veel üks pöial), mille saab otse ühendada Arduino VIN -tihvtiga, minnes mööda pardal olevat pingeregulaatorit.

Kiire riistvaraloend (mitte täielik BOM, ei sisalda põhitõdesid):

  1. Dolce Gusto Circulo täisautomaatne versioon
  2. 5V 4 kanaliga releemoodul koos optilise siduriga PIC AVR DSP jaoks (soovitan kasutada 4x SIP-1A05 Reed Switch releed)
  3. Arduino Micro (soovitan tulevikus kasutada SparkFun Pro Micro või uuemat)
  4. 2tk 4n35 FSC optronid Fototransistor
  5. 1/2 "elektriline solenoidventiil veeõhule N/C Tavaliselt suletud alalisvool 12V
  6. Ultraheli moodul HC-SR04 kauguse mõõtmise anduri andur (ostke lisasid, näete hiljem, miks)
  7. 2tk vihmapiiskade niiskuse tuvastamise andurimoodul vihma tuvastamiseks Arduino jaoks
  8. 1 Xbee
  9. Toruliitmikud veeplokkidele (võib varieeruda sõltuvalt majast, parem osta see ehituspoest ja enne ostmist kõik kokku panna)

Samm 4: peamised ühendused ja kontrollerilaud

Põhiühendused ja juhtpaneel
Põhiühendused ja juhtpaneel
Põhiühendused ja juhtpaneel
Põhiühendused ja juhtpaneel
Põhiühendused ja juhtpaneel
Põhiühendused ja juhtpaneel

Ühendada tuleb järgmised vooluahela punktid:

1, kuum nupp

2, külm nupp

3, punane led

4, roheline led

5, peamine toitenupp

6, jagatud GND

Kahjuks olen kaotanud oma märkmed/pildid selle kohta, kuhu neid tahvlil jootma panna, kuid kõik on multimeetriga hõlpsasti jälgitavad (kasutage lihtsalt juhtmete tagastamiseks dioodide testimisrežiimi). Jootmine ei olnud liiga raske, vali SMD jalgadega punktid ja joota seal juhtmed.

Punased/rohelised LED -id asuvad mõlemad toitelüliti kõrval. Neid on vaja masina olekute kindlakstegemiseks (sisse lülitatud, kohvivalmistamiseks valmis (boiler kuumutatud), viga). Olen need otse põhiplaadilt ära võtnud, sest toitelüliti ümber oleva väikese vooluahelaga on raske nokitseda.

Kasutasin Arduinoga turvaliseks liidestamiseks ja LED -i olekute lugemiseks 4N35 optronid. Algne idee oli kasutada neid 5 ja teha nii näidud kui ka lülitite juhtimine (teha täiesti vaikne ahel). Kahjuks ei suutnud see kiip nupuvajutuse jäljendamiseks piisavalt madalat takistust tekitada, nii et olin sunnitud kasutama releesid. Kasutasin käepärast olevat üldist 4-kanalilist releemoodulit, kuid kui peaksin selle projekti uuesti tegema, kasutaksin lihtsalt väikseid Reed-releesid (SIP-1A05 Reed Switch Relay koos sisemiste tagasilöögidioodidega), mida saab otse Arduino väljundiga ühendada nööpnõelad (~ 7mA koormus), nii et kõik saaks panna 2 -tasandilisele laudkonstruktsioonile.

5 väikest kaablit saab hõlpsasti toitekaabli alla toiteplaadi alla viia.

Masina ruumi tõhusamaks kasutamiseks otsustasin elektroonika jagada kaheks suureks paneeliks:

Vasakpoolne on peamine juhtpaneel, paremal (see, mida ma nimetan kommunikatsiooniplaadiks) hoiab Xbee ja kuigi seda pole pildil näidatud, pigistati selle taga 2 veesensorit (ülevoolu tuvastamiseks). Ülaosas reaalajas kell (valikuline tööaja jaoks:)) ja 4 -kanaliline releeplaat, mis asetseb selle all pumba kõrval, mähitud käsnaks, samuti liimitud, et kaitsta resonatsiooni eest.

Sideplaadi jaoks ei viitsinud ma PCB -d teha lihtsalt tavalist leivaplaati, sest seal ei toimu palju. Sellel on 6 ühendust emaplaadiga:

Vcc (5V), GND, Xbee (TX), Xbee (RX), veeandur1 (andmed), veeandur2 (andmed)

5. samm: veevoolu juhtimine ja täitmismehhanism

Veevoolu juhtimine ja täitmismehhanism
Veevoolu juhtimine ja täitmismehhanism
Veevoolu juhtimine ja täitmismehhanism
Veevoolu juhtimine ja täitmismehhanism
Veevoolu juhtimine ja täitmismehhanism
Veevoolu juhtimine ja täitmismehhanism

Olen selle masina kavandanud turvalisust silmas pidades, mistõttu on võimatu, et ründajad/talitlushäired põhjustavad majale tõsiseid veekahjustusi, kuna masin oleks ühendatud nii kraani kui ka internetti ööpäevaringselt. Seda teeb järgmine 555 kaitselüliti solenoidi peal.

Pange tähele ka seda, et solenoid töötab 12 V toiteallikast, mida mul õnnestus ikkagi pumba ja releeplaadi kõrval kohvimasina põhja suruda. Et mitte raisata energiat, lülitab 4 -kanaliline releeplaat 230 V toiteploki otse adapterile, mis seejärel lülitab solenoidi sisse. Muidugi, magnetvälja kokkuvarisemiseks tuleb arvutada paar mikrosekundit väljalülitusviivitust, nii pistiku tõmbamisel kui ka adapteril oleval solenoidil +.

Ma kasutan tavalist 3,5 mm pistikut, et ühendada väline veeplokk pika 3 m juhtme ja väikese läbimõõduga PVC toruga, mis väljub plokist kohvimasinasse.

Veepaagi ülaosa puuritakse selle toru mahutamiseks välja, mis seejärel viiakse paagi põhja. Märgin, et on väga oluline toita toru küljelt allapoole, ilma et see läheks läbi ja segaks ultraheli andureid.

Pärast solenoidi sisselülitamist lülitab vooluahel selle ~ 4 sekundi pärast automaatselt välja (see peaks olema rohkem kui piisav aeg paagi täitmiseks) ja jääb sellesse olekusse kuni järgmise sisselülitustsüklini. See vooluring on viimane kaitseliin tõrgete eest ja see töötab kohvimasinast täiesti iseseisvalt. Kui masina relee tõrkub ja jääb suletuks, võib vesi maja üle ujutada, selle kaitsega ei saa seda kunagi juhtuda.

Kui see pole ikka veel teie jaoks piisavalt hea või kui vett on võimatu sulgeda või te ei soovi veeplokkidega ringi käia, vaadake minu WasserStationi projekti, mis on just selleks ehitatud, et kohvimasina väikest veepaaki pikendada.

6. samm: üleujutuse tuvastamine

Üleujutuse tuvastamine
Üleujutuse tuvastamine
Üleujutuse tuvastamine
Üleujutuse tuvastamine
Üleujutuse tuvastamine
Üleujutuse tuvastamine

Kaitsmiseks on 2 täiendavat veeandurit:

  • Andur1: paagi tagaosas, et tuvastada paagist ülevoolu
  • Andur2: kohvimasina allosas tassi ülevoolu tuvastamiseks

Mõlemad andurid käivitavad katkestuse, mis lülitab vee kohe välja, lülitab vealambi sisse ja katkestab programmi käivitamise, et vältida rünnakut, näiteks miljoni kohvi valmistamist ja maja üleujutamist. Pärast programmi sulgemist ei reageeri masin enam millelegi ja see tuleb käsitsi uuesti käivitada.

Kui te ei tea, mis juhtuks, kui ultraheliandur üle ujutataks (see juhtus üks kord:))

See andis paar päeva veetaseme tagasi, kuid isegi pärast selle kuivamist ei olnud see enam kunagi täpne ja pidin selle välja vahetama. Masin oli loodud töötama külmast kraaniveest, nii et kuumalt aurutamine ei kahjustaks andurit. See andur on täpne ainult seni, kuni veetase on sellest 2-3 cm kaugusel.

Paagi elliptiline kuju muutis veetaseme arvutamise keeruliseks, nii et need mõõdeti ja programmis kõvakodeeriti vastavalt protsentidele.

7. samm: testimine ja lõplik kokkupanek

Testimine ja lõplik kokkupanek
Testimine ja lõplik kokkupanek
Testimine ja lõplik kokkupanek
Testimine ja lõplik kokkupanek
Testimine ja lõplik kokkupanek
Testimine ja lõplik kokkupanek

Masin on oma lõppseisus, varjates peaaegu täielikult häkkimise jälgi ja kui 3 olekuindikaatori LED -i ja USB silumisporti poleks olemas, ei saaks te öelda, et sees toimub midagi muud, kui see võib isegi ühendada Wifi Maavärina server:)

Seadmeid modifitseerides pean alati käsitsi kasutamist esmatähtsaks. Pärast häkkimist on masin igaüks täiesti kasutatav sellisena, nagu see oli, välja arvatud see, et veepaaki ei saa kergesti eemaldada. Kui te pole projekteerimise kogu veeautomaatika osa lõpetanud, saab masinat selles kohas täita ainult väikese toru ja lehtri kombinatsiooniga.

8. samm: kohvi kontrollkood

Kohvi kontrollkood
Kohvi kontrollkood

Siit leiate allpool toodud täieliku Arduino lähtekoodi.

Koodi lühike selgitus:

Põhiahel kutsub funktsiooni xcomm (), mis vastutab käskude töötlemise, kohvi valmistamise, masina sisse- ja väljalülitamise eest.

Allolev kood on saadaval ainult käsitsi juhtimise korral. See suurendab statistilist loendurit, et jälgida, kui palju kohvi valmistati, ja täidab veepaagi automaatselt.

Käske saab saata Xbee kaudu või USB -pordi kaudu (silumine peab olema alguses lubatud). Kui side tuleb, vilgub oranž LED sekundiks, et näidata võrgutegevust. Rakendatakse järgmisi käske:

1, CMSTAT - päringu statistika masinast

Masin salvestab statistikat selle kohta, kui palju kuuma/külma/käsitsi kohvi valmistati, ja saab ka RTC -lt tööaja, mis ei ületa 3x päeva pärast, nii et see võib kesta aastaid: P

2, CMWSTART - alustab kohvi ja kuumade jookide valmistamist kuuma veega

3, CMCSTART - alustab külma veega jäätee ja külmade jookide valmistamist

Kuumad ja külmad protsessid algavad ooterežiimi () funktsiooni helistamisega, mis kontrollib ja seejärel käivitab toitenupu. Pärast seda ootab programm rohelist tuld (kui katel on kuumutatud) ja emuleerib kuuma/külma nupu vajutamist. Pärast seda ootab see 50 sekundit (millest piisab isegi suurima kohvitassi jaoks) ja lülitab seejärel toite välja. See poleks isegi vajalik, kuna see suurepärane masin lülitub automaatselt välja 5 minutit pärast kohvi valmistamist, kuid miks raisata energiat? Muide, masina ooterežiimi energiatarve isegi pärast muutmist on alla 2 vatti.

Vee täitmine ja turvalisus

See masin on loodud turvalisust silmas pidades, nii et kontrolli saavutanud ründajal oleks võimatu kogu maja veega üle ujutada. Riistvara rike ei tooks kaasa ka tõsiseid kahjustusi. Riistvaraandurite kõrval on täitmise koodi sisse ehitatud kaitsed. Loendur, mis käivitab ISR -i rutiini, kui masinat ei täideta x sekundiga (näiteks võib see juhtuda, kui ultraheliandur tõrkub ja annab pärast täitmist x 20 sekundi jooksul 20%).

Autentimist ei toimu, igaüks saab raadioväljas olevat masinat kasutada, kes teab käske, nii et olen muutnud Xbee piconeti vaike -ID millekski muuks, samuti saab kommenteerida ERR_INVALIDCMD ja masin ignoreerib tundmatuid käske.

Vead

Kahekordne kohviviga: selle vea kõige tüütum on see, et see hakkas juhtuma paar kuud pärast sama koodiga masina kasutamist. Pärast kohvi väljastamist valmistas ta kohvi, lülitas selle välja ja uuesti sisse ning jätkas sama patrooniga veel 1 kohvi valmistamist.

Pidin käsu dubleerimise silumist alustama Androidi tasandilt, kuna olen paketi kadumise korral rakendanud koodile uuesti saatmise. Selgus, et ei android, C juhtimistarkvara ega raspi2 Linuxi tuum ei vastutanud selle eest pigem Xbee eest.

Pärast kaja “CMCSTART”>/dev/ttyACM0 väljastamist juhtimissõlmes väljub see kaks korda teise otsa. Jõudsin järeldusele, et minu 2,4 GHz sagedusala minu kodus hakkas paljudest selles vahemikus olevatest raadioseadmetest küllastuma, mistõttu Xbee kutsus raadiokihis üles mingisuguse uuesti saatmise ja andmed saadeti kaks korda (mitte alati). Kui esimene käsk masinates xcomm () funktsiooni hakkas töötlema, siis teine tuli kohe peale seda, mis ootas Xbeesi puhvris ja kui tsükkel lõppes, hakkas see teist käsku töötlema. Selle probleemi lahendamiseks olen koodi sisestanud 3 künnist, et oleks võimatu valmistada rohkem kui 1 kohvi 2 minutiga. Samuti on CMSTAT -l piirang, kuid et mitte segada C/Androidi juhtkoodi, summutab see vastused lihtsalt 2 sekundiks.

Viimane künnis määrati käsitsi kohvileti jaoks, sest kui masin on jõudnud valmisolekusse (boiler on kuumutatud, roheline tuli), on see rohelist sündmust sadu kordi registreerinud, suurendades kohvi arvu.

9. samm: disaini kaalutlused ja lõplikud mõtted

Pärast palju probleeme Xbee kommunikatsiooniga ei soovita ma Xbee'i selle projekti jaoks. Kasutage stabiilsuse tagamiseks tavalist odavat 433Mhz raadiot koos VirtualWire'i ja madalamate sagedustega või manustage Wifi -ühendusega Raspberry PI Zero otse kohvimasinasse.

Kuna kuupäev näitab, et see on vana projekt, siis vabandan väikeste detailide puudumise pärast, nagu ühendus juhtimisahelast emaplaadi täpsete tihvtjalgadega. See projekt nõuab teatud tasemel tehnilisi teadmisi, et seda iseseisvalt teha. Kui leiate vigu/probleeme või soovite selles õpetuses kaasa aidata, andke mulle sellest teada.

Juhtimistarkvara, hääljuhtimise meetodid on veel üks osa, mis võimaldab kohvi valmis teha ainult häälkäsklusega enne voodist tõusmist.

Olen nüüd lõpetanud oma veehoidlasüsteemi (WasserStation) dokumentatsiooni ja uuendanud CoffeeControlCode uusimale versioonile, mis sisaldab ka automaatset täitmist. Kui kasutate ehitamiseks sama masinat, töötab täitmine veatult (ilma koodi muutmata), kuna veetase kalibreeriti Circolo veemahuti järgi.

Soovitan: