Turinys:

„JavaStation“(visiškai pildomas visiškai automatinis „IoT“kavos virimo aparatas): 9 žingsniai (su nuotraukomis)
„JavaStation“(visiškai pildomas visiškai automatinis „IoT“kavos virimo aparatas): 9 žingsniai (su nuotraukomis)

Video: „JavaStation“(visiškai pildomas visiškai automatinis „IoT“kavos virimo aparatas): 9 žingsniai (su nuotraukomis)

Video: „JavaStation“(visiškai pildomas visiškai automatinis „IoT“kavos virimo aparatas): 9 žingsniai (su nuotraukomis)
Video: Голубая стрела (1958) фильм 2024, Liepa
Anonim
„JavaStation“(visiškai automatinis visiškai automatinis „IoT“kavos virimo aparatas)
„JavaStation“(visiškai automatinis visiškai automatinis „IoT“kavos virimo aparatas)
„JavaStation“(visiškai automatinis visiškai automatinis „IoT“kavos virimo aparatas)
„JavaStation“(visiškai automatinis visiškai automatinis „IoT“kavos virimo aparatas)
„JavaStation“(visiškai automatinis visiškai automatinis IoT kavos virimo aparatas)
„JavaStation“(visiškai automatinis visiškai automatinis IoT kavos virimo aparatas)

Šio projekto tikslas buvo sukurti visiškai automatinį balsu valdomą kavos virimo aparatą, kuris automatiškai prisipildytų vandens, ir viskas, ką jums reikia padaryti, tai pakeisti globėjus ir išgerti kavos;)

1 žingsnis: Įvadas

Įvadas
Įvadas

Kadangi tai buvo mano antrasis kavos režimas, aš daug išmokau šio proceso metu, ypač tai, kad kuo sudėtingesnį aparatą modifikuojate, tuo daugiau problemų/klaidų susidursite kasdien. Ankstesnis aparatas buvo tik paprastas senas 1 jungiklio kavos virimo aparatas su relės mod.

„Circolo“(visiškai automatinė versija) yra aukščiausios klasės „Dolce Gusto“aukščiausios klasės mašina. Aš turėjau praleisti valandas ieškodamas tinkamos mašinos, nes visos kitos šios serijos mašinos, naudodamos viršutinę mechaninę svirtį, perjungia šalto ir karšto vandens srautus, kaip parodyta paveikslėlyje.

2 žingsnis: Pasirinkite tinkamą mašiną

Pasirinkite tinkamą mašiną
Pasirinkite tinkamą mašiną

Mano bazinis aparatas yra ne tik visiškai automatinis, bet ir pasižymi tokiomis puikiomis savybėmis kaip automatinis išjungimas po 5 minučių ir prisiminimas iki paskutinio kavos kiekio (dėl to vėliau viskas bus daug lengviau). Pagrindinis mašinos veikimas:

1, paspaustas maitinimo mygtukas

2, paspaustas šalto vandens mygtukas (jis iš karto išsklaidys vandenį į puodelį)

3, paspaustas karšto vandens mygtukas (jis įkaitins katilą ~ 20-60 sek. Ir pradės išleisti karštą vandenį į puodelį) Maitinimo lemputė budėjimo metu mirksės raudonai, o tada, kai katilas bus paruoštas, degs nuolat.

Ši mašina taip pat gali aptikti šias klaidas:

Vandens bakas tuščias

Puodelio laikiklis nėra savo vietoje

Abiem atvejais maitinimo lemputė mirksės tarp raudonos/žalios spalvos.

3 žingsnis: Aparatūros pakeitimai

Techninės įrangos modifikacijos
Techninės įrangos modifikacijos

Šiame rašte aš nedetalizuosiu korpuso išardymo ir surinkimo, nes apie tai yra vaizdo įrašų „YouTube“. Pagrindinis mikroprocesorius yra paslėptas tiesiai po galvos skydeliu, kuriame yra 2 jungikliai. Katilas yra dešinėje korpuso pusėje, atskirtas nuo visų kitų, siurblys ir maitinimo skydas yra kairėje.

Kavos aparatas yra sunki elektronikos aplinka, nė viena pusė nėra visiškai tinkama grandinei integruoti. Dešinėje prie katilo yra daugiau vietos, bet jūs susidorosite su šiluma, akivaizdu, kad grandinė negalėjo liesti katilo plokštės ar būti net šalia jos. Aš pasirinkau maitinimo / siurblio pusę, tačiau čia jūs turite susidoroti su dideliu rezonansu, atsirandančiu dėl membraninio siurblio veikimo, kuris gali sugadinti valdymo grandinę / priversti laidus išstumti iš jų jungčių laikui bėgant.

Maitinimo skydelyje nėra nieko naudingo, tačiau jis gali būti naudojamas stabiliam +5 V (dar vienas šios mašinos nykštys) išjungimui, kurį galima tiesiogiai prijungti prie „Arduino“VIN kaiščio, apeinant įtaiso įtampos reguliatorių.

Greitas aparatūros sąrašas (ne visas BOM, neapima pagrindų):

  1. „Dolce Gusto Circulo“visiškai automatinė versija
  2. 5V 4 kanalų relės modulis su optiniu jungikliu PIC AVR DSP (siūlau naudoti 4x SIP-1A05 Reed Switch Relay)
  3. „Arduino Micro“(ateityje siūlau naudoti „SparkFun Pro Micro“ar naujesnę versiją)
  4. 2PCS 4n35 FSC optronai Fototransistorius
  5. 1/2 "elektrinis elektromagnetinis vožtuvas vandens orui N/C paprastai uždarytas DC 12V
  6. Ultragarso modulio HC-SR04 atstumo matavimo keitiklio jutiklis (įsigykite papildomų priedų, vėliau pamatysite, kodėl)
  7. 2 vnt. „Arduino“lietaus lašo drėgmės aptikimo jutiklio modulis
  8. 1 „Xbee“
  9. Vandens blokų vamzdžių jungiamosios detalės (gali skirtis priklausomai nuo namo, geriausia pirkti techninės įrangos parduotuvėje ir prieš perkant viską sudėti)

4 žingsnis: pagrindinės jungtys ir valdiklio plokštė

Pagrindinės jungtys ir valdiklio plokštė
Pagrindinės jungtys ir valdiklio plokštė
Pagrindinės jungtys ir valdiklio plokštė
Pagrindinės jungtys ir valdiklio plokštė
Pagrindinės jungtys ir valdiklio plokštė
Pagrindinės jungtys ir valdiklio plokštė

Reikia prijungti šiuos grandinės taškus:

1, karštas mygtukas

2, šaltas mygtukas

3, raudona lemputė

4, žalia lemputė

5, pagrindinis įjungimo mygtukas

6, Bendra GND

Deja, aš praradau savo užrašus/paveikslėlius, kur juos lituoti ant lentos, bet viską galima lengvai atsekti naudojant multimetrą (tiesiog naudokite diodų bandymo režimą, kad galėtumėte atsekti laidus). Litavimas nebuvo per sunkus, pasirinkite taškus su SMD kojelėmis ir ten lituokite laidus.

Raudoni/žali šviesos diodai yra vienas šalia kito prie maitinimo jungiklio. Jie reikalingi aparato būsenoms nustatyti (įjungta, paruošta virti kavą (įkaitęs katilas), klaida). Turiu juos nuimti tiesiai iš pagrindinės plokštės, nes sunku suktis su maža grandine aplink maitinimo jungiklį.

Aš naudoju 4N35 optronus, kad galėčiau saugiai sąveikauti su „Arduino“ir skaityti šviesos diodų būsenas. Pradinė idėja buvo naudoti 5 iš jų, taip pat atlikti rodmenis ir jungiklių valdymą (sudaryti visiškai tylią grandinę). Deja, šis lustas negalėjo sukurti pakankamai mažo pasipriešinimo, kad imituotų mygtuko paspaudimą, todėl buvau priverstas naudoti relės. Aš naudoju bendrąjį 4 kanalų relės modulį, kurį turėjau rankoje, bet jei turėčiau pakartoti šį projektą, aš tiesiog naudoju mažas Reed relės (SIP-1A05 Reed Switch Relay su vidiniais atbuliniais diodais), kurias galima tiesiogiai prijungti prie „Arduino“išvesties smeigtukai (~ 7mA apkrova), kad viską būtų galima uždėti ant 2 lygių plokštės konstrukcijos.

5 mažus laidus galima lengvai nuleisti šalia maitinimo laidų po maitinimo plokšte.

Norėdami efektyviau išnaudoti mašinos erdvę, nusprendžiau padalinti elektroniką į 2 pagrindines plokštes:

Kairėje yra pagrindinė valdymo plokštė, dešinėje (tai, ką aš vadinu ryšio lenta) laiko „Xbee“ir, nors ji neparodyta paveikslėlyje, už jos suspausti 2 vandens jutikliai (perpildymo aptikimui). Viršuje yra realiojo laiko laikrodis (neprivalomas veikimo laikas:)) ir 4 kanalų relės plokštė, esanti šalia siurblio apačioje, suvyniota į kempinę, taip pat šiek tiek priklijuota, kad apsaugotų nuo rezonanso.

Ryšių lentoje aš nesivarginau gaminti PCB, naudodamas tik įprastą duonos lentą, nes ten nedaug kas vyksta. Jis turi 6 jungtis prie pagrindinės plokštės:

Vcc (5V), GND, Xbee (TX), Xbee (RX), vandens jutiklis1 (duomenys), vandens jutiklis2 (duomenys)

5 žingsnis: vandens srauto valdymas ir papildymo mechanizmas

Vandens srauto valdymas ir papildymo mechanizmas
Vandens srauto valdymas ir papildymo mechanizmas
Vandens srauto valdymas ir papildymo mechanizmas
Vandens srauto valdymas ir papildymo mechanizmas
Vandens srauto valdymas ir papildymo mechanizmas
Vandens srauto valdymas ir papildymo mechanizmas

Sukūriau šią mašiną turėdamas omenyje saugumą, todėl užpuolikai/gedimai negali padaryti didelės žalos namui, nes mašina bus prijungta prie čiaupo ir interneto visą parą. Tai daro ši 555 apsaugos grandinė ant solenoido.

Taip pat atkreipkite dėmesį, kad solenoidas veikia iš 12 V maitinimo šaltinio, kurį man dar pavyko įspausti į kavos aparato apačią šalia siurblio ir relės plokštės. Kad nebūtų eikvojama energija, 4 kanalų relės plokštė perjungia 230 V maitinimo šaltinį tiesiai į adapterį, kuris įjungs solenoidą. Žinoma, yra keletas mikrosekundžių išjungimo vėlavimo, kurį turite apskaičiuoti, kad magnetinis laukas sugriūtų tiek ant solenoido + ant adapterio, kai ištraukiamas kištukas.

Aš naudoju standartinį 3,5 mm lizdą, kad prijungčiau išorinį vandens bloką su ilgu 3 m laidu ir mažo skersmens PVC vamzdžiu, išeinančiu iš bloko, einančio į kavos virimo aparatą.

Vandens rezervuaro viršutinė dalis yra išgręžta, kad tilptų šis vamzdis, kuris vėliau nukrito iki bako apačios. Norėčiau pažymėti, kad labai svarbu tiekti vamzdį iki apačios šone, neleidžiant per vidurį ir trukdyti ultragarso jutikliams.

Įjungus solenoidą grandinė automatiškai išsijungs po ~ 4 sekundžių (tai turėtų būti daugiau nei pakankamai laiko, kad bakas būtų visiškai užpildytas) ir jis lieka tokioje būsenoje iki kito įjungimo ciklo. Ši grandinė yra paskutinė gynybos linija nuo gedimo ir veikia visiškai atskirai nuo kavos virimo aparato. Jei mašinos relė sugestų ir liktų uždaryta, vanduo gali užtvindyti namus, o ši apsauga niekada neįvyks.

Jei tai jums vis dar nepakanka arba neįmanoma uždaryti vandens arba nenorite suktis vandens blokeliais, peržiūrėkite mano „WasserStation“projektą, kuris buvo sukurtas būtent tam, kad būtų galima išplėsti nedidelį kavos aparato vandens baką.

6 veiksmas: potvynių aptikimas

Potvynių aptikimas
Potvynių aptikimas
Potvynių aptikimas
Potvynių aptikimas
Potvynių aptikimas
Potvynių aptikimas

Yra du papildomi vandens jutikliai apsaugai:

  • 1 jutiklis: bako gale, kad būtų galima aptikti perpildymą iš bako
  • 2 jutiklis: kavos aparato apačioje, skirtas aptikti puodelio perpildymą

Abu šie jutikliai suaktyvins pertrauką, kuri nedelsiant išjungs vandenį, įjungs klaidos lemputę ir nutrauks programos vykdymą, kad būtų užkirstas kelias atakai, pavyzdžiui, išgerti milijoną kavos ir taip užtvindyti namus. Išjungus programą, aparatas nebereaguoja į nieką ir turi būti rankiniu būdu įjungtas.

Jei jums įdomu, kas nutiktų, jei ultragarso jutiklis būtų užtvindytas (tai atsitiko vieną kartą:))

Porą dienų jis grąžino tokį vandens lygį, tačiau net ir išdžiūvus jis niekada nebebus tikslus ir turėjau jį pakeisti. Mašina buvo suprojektuota taip, kad veiktų iš šalto vandens iš čiaupo, todėl garinimas iš karšto nepažeistų jutiklio. Šis jutiklis yra tikslus tik tol, kol vandens lygis yra 2-3 cm nuo jo.

Elipsinė bako forma apsunkino vandens lygio apskaičiavimą, todėl jie buvo išmatuoti ir programoje koduoti, kad atitiktų procentus.

7 žingsnis: bandymas ir galutinis surinkimas

Bandymas ir galutinis surinkimas
Bandymas ir galutinis surinkimas
Bandymas ir galutinis surinkimas
Bandymas ir galutinis surinkimas
Bandymas ir galutinis surinkimas
Bandymas ir galutinis surinkimas

Galutinė mašina yra beveik visiškai paslėpusi bet kokio įsilaužimo pėdsakus, o jei nebūtų 3 būsenos indikatoriaus šviesos diodų ir USB derinimo prievado, negalėtumėte pasakyti, kad viduje vyksta kažkas kito, o jame netgi gali būti prijungtas „Wifi“Quake serveris:)

Keisdamas įrenginius, rankinis naudojimas visada yra mano prioritetas. Po įsilaužimo mašiną gali visiškai naudoti visi, kaip buvo, išskyrus tai, kad vandens rezervuaro negalima lengvai išimti. Jei neužbaigsite visos vandens automatizavimo dalies, mašiną galima užpildyti tik mažu vamzdžio ir piltuvo deriniu.

8 žingsnis: kavos kontrolės kodas

Kavos kontrolės kodas
Kavos kontrolės kodas

Žemiau rasite visą „Arduino“šaltinio kodą.

Trumpas kodo paaiškinimas:

Pagrindinė grandinė iškviečia funkciją xcomm (), atsakingą už komandų apdorojimą, kavos ruošimą, mašinos įjungimą/išjungimą.

Žemiau esantis kodas pasiekiamas tik valdant rankiniu būdu. Jis padidina statistinį skaitiklį, kad galėtų sekti, kiek kavos buvo pagaminta, ir automatiškai užpildo vandens baką.

Komandos gali būti siunčiamos per „Xbee“arba per USB prievadą (derinimas turi būti įjungtas pradžioje). Kai ryšys ateina iš oranžinės lemputės, sekundę mirksi, kad būtų rodoma tinklo veikla. Įgyvendinamos šios komandos:

1, CMSTAT - užklausos statistika iš mašinos

Aparatas saugo statistiką apie tai, kiek buvo pagaminta karšta/šalta/rankinė kava, taip pat gauna veikimo laiką iš RTC, kuris nepraeina po 3 kartų, todėl gali užtrukti iki metų: P

2, CMWSTART - pradeda gaminti kavą ir karštus gėrimus karštu vandeniu

3, CMCSTART - pradeda gaminti ledinę arbatą ir šaltus gėrimus šaltu vandeniu

Karšti ir šalti procesai prasideda iškvietus budėjimo () funkciją, kuri atlieka tolesnius patikrinimus, tada paspaudžia maitinimo mygtuką. Po to programa laukia žalios šviesos (kai katilas yra įkaitęs) ir imituoja karšto/šalto mygtuko paspaudimą. Po to jis palaukia 50 sekundžių (to pakanka net didžiausiam kavos puodeliui), tada išjungia maitinimą. To net nereikėtų, nes šis puikus aparatas automatiškai išsijungtų praėjus 5 minutėms po kavos paruošimo, bet kodėl eikvoti energiją? Beje, mašinos energijos suvartojimas budėjimo režimu net ir po pakeitimo yra mažesnis nei 2 vatai.

Vandens papildymas ir saugumas

Ši mašina buvo sukurta atsižvelgiant į saugumą, todėl užpuolikas, įgavęs kontrolę, negalėtų užtvindyti viso namo vandeniu. Techninės įrangos gedimas taip pat nepadarytų rimtos žalos. Šalia aparatūros jutiklių yra papildymo kodo įmontuotos apsaugos. Skaitiklis, kuris suaktyvina ISR rutiną, jei aparatas nėra pripildomas per x sekundę (pvz., Taip gali atsitikti, jei ultragarso jutiklis sugestų ir po x sekundžių, kai bus pradėtas pildymas, duos 20%).

Nėra autentifikavimo, bet kas gali naudotis radijo ryšio diapazone esančiu aparatu, kuris žino komandas, todėl aš pakeičiau numatytąjį „Xbee piconet“ID į kažką kitą, taip pat galima komentuoti ERR_INVALIDCMD ir aparatas nepaisys jokių nežinomų komandų.

Klaidų

Dviguba kavos klaida: labiausiai erzinantis šios klaidos dalykas yra tai, kad ji prasidėjo po poros mėnesių po to, kai buvo naudojamas aparatas su tuo pačiu kodu. Išdavus kavos komandą, ji pagamino kavą, išjungė ir vėl įjungė ir toliau gamino dar 1 kavą su tuo pačiu globėju.

Turėjau pradėti derinti komandų dubliavimą iš „Android“lygio, nes įdiegiau pakartotinį siuntimą į kodą paketo praradimo atveju. Paaiškėjo, kad nei „Android“, nei „C“valdymo programinė įranga, nei „Linux“branduolys raspi2 nebuvo atsakingi už tai, o „Xbee“.

Valdymo mazge išleidęs aidą „CMCSTART“>/dev/ttyACM0, jis du kartus išeina į kitą galą. Padariau išvadą, kad mano 2,4 Ghz spektras mano namuose pradėjo prisotinti nuo daugelio šio diapazono radijo įrenginių, dėl to „Xbee“iškvietė tam tikrą pakartotinį siuntimą radijo sluoksnyje ir duomenys buvo išsiųsti du kartus (ne visada). Kai pirmoji komanda atėjo į mašinų xcomm () funkciją, ji pradėjo ją apdoroti, tačiau antroji atsirado iškart po to, kai laukė „Xbees“buferyje, o ciklui pasibaigus ji pradėjo apdoroti antrąją komandą. Norėdami išspręsti šią problemą, kode įvedžiau 3 slenksčius, kad būtų neįmanoma pagaminti daugiau nei 1 kavos per 2 minutes. Be to, CMSTAT yra ribota, tačiau netrukdant C/„Android“valdymo kodui, jis tiesiog 2 sekundes sutrauks atsakymus.

Paskutinis slenkstis buvo nustatytas rankiniam kavos skaitikliui, nes kai aparatas pasiekia parengties būseną (įkaitęs katilas, žalia lemputė), jis šimtus kartų užregistravo žalią įvykį, padidindamas kavos skaičių.

9 žingsnis: dizaino svarstymai ir galutinės mintys

Po daugybės „Xbee“bendravimo problemų aš nerekomenduočiau „Xbee“šiam projektui. Stabilumui naudokite standartinį pigų 433 MHz radiją su „VirtualWire“ir sumažintais bps arba įterpkite „Raspberry PI Zero“su „Wifi“ryšiu tiesiai į kavos aparatą.

Kaip rodo data, tai senas projektas, todėl atsiprašau, kad trūksta smulkių detalių, tokių kaip jungtis iš valdymo grandinės prie tikslių kaiščių kojelių pagrindinėje plokštėje. Šiam projektui reikia tam tikro lygio techninių žinių, kad tai padarytumėte savarankiškai. Jei radote klaidų/problemų arba norėtumėte prisidėti prie šios pamokos, praneškite man.

Kontrolės programinė įranga, valdymo balsu metodai yra kita dalis, kuri leis jums paruošti kavą tik balso komanda prieš net išlipant iš lovos.

Dabar baigiau savo vandens kaupimo sistemos („WasserStation“) dokumentaciją ir atnaujinau „CoffeeControlCode“į naujausią versiją, kuri taip pat apima automatinį pildymą. Jei statybai naudosite tą pačią mašiną, papildymas veiks nepriekaištingai (nekeičiant kodo), nes vandens lygis buvo sukalibruotas pagal „Circolo“vandens baką.

Rekomenduojamas: