Sadržaj:

JavaStation (potpuno automatski automatski IoT aparat za kavu sa automatskim punjenjem): 9 koraka (sa slikama)
JavaStation (potpuno automatski automatski IoT aparat za kavu sa automatskim punjenjem): 9 koraka (sa slikama)

Video: JavaStation (potpuno automatski automatski IoT aparat za kavu sa automatskim punjenjem): 9 koraka (sa slikama)

Video: JavaStation (potpuno automatski automatski IoT aparat za kavu sa automatskim punjenjem): 9 koraka (sa slikama)
Video: Превосходно! Поездка на роскошном японском поезде-капсуле с торговыми автоматами 2024, Jun
Anonim
JavaStation (Potpuno automatizovan IoT aparat za kafu sa automatskim punjenjem)
JavaStation (Potpuno automatizovan IoT aparat za kafu sa automatskim punjenjem)
JavaStation (Potpuno automatizovan IoT aparat za kafu sa automatskim punjenjem)
JavaStation (Potpuno automatizovan IoT aparat za kafu sa automatskim punjenjem)
JavaStation (Potpuno automatizovan IoT aparat za kafu sa automatskim punjenjem)
JavaStation (Potpuno automatizovan IoT aparat za kafu sa automatskim punjenjem)

Cilj ovog projekta bio je napraviti potpuno automatski aparat za kavu s glasovnom kontrolom koji se automatski dopunjava vodom i sve što trebate učiniti je zamijeniti korisnike i popiti kavu;)

Korak 1: Uvod

Uvod
Uvod

Kako je ovo bio moj drugi način pripreme kave, naučio sam mnogo toga u procesu, posebno da složeniju mašinu koju izmijenite, na više problema/bugova naići ćete tokom svakodnevnog rada. Prethodna mašina je bila samo jednostavan stari aparat za kafu sa 1 prekidačem sa relejnim modom.

Circolo (potpuno automatska verzija) je vrhunski vrhunski stroj Dolce Gusto. Morao sam provesti sate u potrazi za odgovarajućom mašinom jer su sve ostale mašine iz ove serije koristile gornju mehaničku polugu za prebacivanje između protoka hladne i tople vode kako je prikazano na slici.

Korak 2: Odaberite odgovarajuću mašinu

Odaberite odgovarajuću mašinu
Odaberite odgovarajuću mašinu

Moja osnovna mašina nije samo potpuno automatska, već ima izvanredne karakteristike, poput automatskog isključivanja nakon 5 minuta i pamćenja do posljednje količine kave (što će kasnije znatno olakšati stvari). Osnovni rad mašine:

1, pritisnuto dugme za uključivanje

2, pritisnuto dugme za hladnu vodu (odmah će raspršiti vodu do šolje)

3, pritisnuto dugme za toplu vodu (zagrijat će bojler ~ 20-60 sekundi i početi ispuštati toplu vodu u šalicu) Lampica napajanja će treperiti crveno tokom perioda pripravnosti, a zatim će trajno svijetliti zeleno kada je bojler spreman.

Ova mašina takođe ima mogućnost otkrivanja sledećih grešaka:

Rezervoar za vodu je prazan

Držač čaša nije na svom mestu

U oba slučaja lampica napajanja će treperiti između crvene/zelene boje.

Korak 3: Modifikacije hardvera

Modifikacije hardvera
Modifikacije hardvera

U ovom pisanju neću detaljno opisivati rastavljanje i ponovno sastavljanje kućišta jer na YouTubeu postoje video zapisi o tome. Glavni mikroprocesor je skriven ispod glavne ploče na kojoj se nalaze dva prekidača. Kotao je na desnoj strani kućišta odvojen od svega ostalog, pumpa i ploča za napajanje su na lijevoj strani.

Aparat za kafu je okruženje za teške uslove rada u elektronici, nijedna bočna strana nije savršeno pogodna za integrisanje kola. Desno kod kotla ima više prostora, ali ćete se nositi s toplinom, očito krug nije mogao dodirivati ploču kotla ili biti čak blizu nje. Odabrao sam stranu napajanja / pumpe, ali ovdje se morate suočiti s jakom rezonancijom koja dolazi od rada membranske pumpe koja može pokvariti upravljački krug / učiniti da žice s vremena na vrijeme iskliznu iz njihovih konektora.

Ploča za napajanje ne sadrži ništa korisno, ali se može koristiti za ispiranje stabilnih +5V (još jedan palac gore za ovu mašinu) koji se mogu direktno spojiti na Arduino VIN pin zaobilazeći regulator napona na ploči.

Lista brzih hardvera (nije puna specifikacija, ne uključuje osnove):

  1. Potpuna automatska verzija Dolce Gusto Circulo
  2. 5V 4-kanalni relejni modul s optičkom sprezaljkom Za PIC AVR DSP (predlažem upotrebu 4x releja sa prekidačem SIP-1A05)
  3. Arduino Micro (predlažem da ubuduće koristite SparkFun Pro Micro ili novije)
  4. 2PCS 4n35 FSC optički sprežnici fototranzistor
  5. 1/2 "električni elektromagnetni ventil za vodeni zrak N/C normalno zatvoreni DC 12V
  6. Ultrazvučni modul HC-SR04 Senzor za mjerenje udaljenosti (kupite neke dodatke, kasnije ćete vidjeti zašto)
  7. 2 kom. Modul senzora za detekciju vlažnosti kapljice kiše, detektor kiše za Arduino
  8. 1 Xbee
  9. Cijevni priključci za vodene blokove (mogu se razlikovati ovisno o kući), najbolje je kupiti ih u željezariji i staviti sve zajedno prije kupovine)

Korak 4: Glavne veze i ploča upravljača

Glavni priključci i ploča upravljača
Glavni priključci i ploča upravljača
Glavni priključci i ploča upravljača
Glavni priključci i ploča upravljača
Glavni priključci i ploča upravljača
Glavni priključci i ploča upravljača

Sljedeće točke kruga potrebno je spojiti:

1, tipka Hot

2, Hladno dugme

3, crvena led

4, zelena led

5, Dugme za glavno uključivanje

6, zajednički GND

Nažalost, izgubio sam bilješke/slike o tome gdje ih lemiti na ploči, ali sve se može lako pratiti pomoću multimetra (samo upotrijebite način ispitivanja dioda da biste pratili žice unatrag). Lemljenje nije bilo previše teško, odaberite tačke sa SMD nogama i tamo zalemite žice.

Crvena/zelena LED dioda nalaze se jedna pored druge na prekidaču za napajanje. Oni su potrebni za određivanje stanja stroja (uključen, spreman za kuhanje kave (kotao zagrijan), greška). Skinuo sam ih direktno s glavne ploče, jer je teško petljati po malom krugu oko prekidača za napajanje.

Koristio sam 4N35 optičke sprege za sigurno povezivanje s Arduinom i čitanje stanja LED dioda. Prvotna ideja je bila upotrijebiti njih 5 i obaviti i očitanja i kontrole prekidača (napraviti potpuno tihi krug). Nažalost, ovaj čip nije mogao generirati dovoljno nizak otpor za oponašanje pritiska na dugme pa sam bio primoran koristiti releje. Koristio sam generički 4-kanalni relejni modul koji sam imao pri ruci, ali ako bih morao ponoviti ovaj projekt, samo bih upotrijebio male Reed releje (SIP-1A05 Reed prekidač sa relejem sa internim preletnim diodama) koji se mogu direktno spojiti na Arduino izlaz pinovi (opterećenje ~ 7mA) tako da se sve može staviti na dvostepenu konstrukciju ploče.

Pet malih kabela može se lako spustiti pored kabela za napajanje ispod ploče za napajanje.

Da bih efikasnije iskoristio prostor u mašini, odlučio sam elektroniku podijeliti na 2 glavne ploče:

Lijevo je glavna kontrolna ploča, desno (ono što ja zovem komunikacijska ploča) drži Xbee i iako nije prikazano na slici 2 senzora vode (za otkrivanje prelijevanja) stisnuta iza njega. Na vrhu je sat u realnom vremenu (opcionalno za produženje rada:)) i četverokanalna relejna ploča koja zauzima svoje mjesto pored pumpe na dnu omotana spužvom, također malo zalijepljena radi zaštite od rezonancije.

Što se tiče komunikacijske ploče, nisam se potrudio napraviti PCB već sam koristio običnu matičnu ploču jer se tu ne događa mnogo. Ima 6 priključaka na glavnu ploču:

Vcc (5V), GND, Xbee (TX), Xbee (RX), senzor vode1 (podaci), senzor vode2 (podaci)

Korak 5: Kontrola protoka vode i mehanizam punjenja

Kontrola protoka vode i mehanizam punjenja
Kontrola protoka vode i mehanizam punjenja
Kontrola protoka vode i mehanizam punjenja
Kontrola protoka vode i mehanizam punjenja
Kontrola protoka vode i mehanizam punjenja
Kontrola protoka vode i mehanizam punjenja

Dizajnirao sam ovu mašinu imajući na umu sigurnost, onemogućujući napadačima/kvarovima da izazovu ozbiljna oštećenja vode u kući jer bi mašina bila spojena i na slavinu i na internet 24 sata dnevno. Ovo radi sljedeći zaštitni krug 555 na vrhu solenoida.

Također imajte na umu da solenoid radi iz izvora napajanja od 12 V, što sam ipak uspio ugurati u dno aparata za kavu pored ploče pumpe i releja. Da ne troši energiju, četverokanalna relejna ploča prebacuje mrežni napon 230 V direktno na adapter koji će zatim uključiti solenoid. Naravno, postoji nekoliko mikrosekundnih odgoda isključivanja koje morate izračunati za kolaps magnetskog polja i na solenoidu + na adapteru pri povlačenju utikača.

Koristim standardnu utičnicu od 3,5 mm za povezivanje vanjskog bloka za vodu s dugačkom žicom od 3 m i PVC cijevi malog promjera koja izlazi iz bloka prema aparatu za kavu.

Vrh spremnika za vodu je izbušen kako bi se smjestila ova cijev koja se zatim spušta na dno spremnika. Napomenuo bih da je vrlo važno dovoditi cijev do dna sa strane bez prolaska kroz sredinu i ometati ultrazvučne senzore.

Nakon uključivanja solenoida, krug će se automatski isključiti nakon ~ 4 sekunde (što bi trebalo biti više nego dovoljno vremena da se spremnik napuni do kraja) i ostaje u tom stanju do sljedećeg ciklusa uključivanja. Ovaj krug je posljednja linija obrane od kvara i radi potpuno samostalno od aparata za kavu. Ako bi relej u stroju otkazao i ostao zatvoren, voda bi mogla poplaviti kuću, s ovom zaštitom se to nikada ne može dogoditi.

Ako vam to i dalje nije dovoljno dobro ili je nemoguće zatvoriti vodu ili ne želite petljati po vodenim blokovima, pogledajte moj projekt WasserStation koji je napravljen upravo za ovo kako bi se produžio mali rezervoar za vodu aparata za kavu.

Korak 6: Otkrivanje poplava

Otkrivanje poplava
Otkrivanje poplava
Otkrivanje poplava
Otkrivanje poplava
Otkrivanje poplava
Otkrivanje poplava

Za zaštitu postoje 2 dodatna senzora vode:

  • Senzor1: na stražnjoj strani spremnika za otkrivanje prelijevanja iz spremnika
  • Senzor2: na dnu aparata za kafu za detekciju prelijevanja šolje

Oba senzora će pokrenuti prekid koji odmah isključuje vodu, pali lampicu greške i prekida programsko izvršavanje kako bi spriječio napad kao što je spravljanje miliona kava i poplava kuće na taj način. Nakon zatvaranja programa mašina više neće reagirati na ništa i mora se ručno uključiti.

U slučaju da se pitate šta bi se dogodilo ako bi ultrazvučni senzor poplavio (dogodilo se jednom:))

Ovako je vraćao nivo vode nekoliko dana, ali čak i nakon što se osušio, više nikada nije bio tačan i morao sam ga zamijeniti. Mašina je dizajnirana za rad iz hladne vode iz slavine, tako da vruće pare ne bi oštetile senzor. Ovaj senzor je precizan samo dok nivo vode ne bude 2-3 cm od njega.

Eliptični oblik rezervoara otežao je proračune nivoa vode pa su izmjereni i kodirani u program tako da odgovaraju postocima.

Korak 7: Testiranje i završna montaža

Testiranje i završna montaža
Testiranje i završna montaža
Testiranje i završna montaža
Testiranje i završna montaža
Testiranje i završna montaža
Testiranje i završna montaža

Mašina u svom konačnom stanju, gotovo u potpunosti skrivajući tragove bilo kakvog hakiranja, a ako 3 LED indikatora statusa i USB port za otklanjanje grešaka ne bi bili tu, ne biste mogli reći da se unutra događa bilo šta drugo, dok bi čak moglo imati i Wifi povezan Quake server:)

Kada mijenjam uređaje, ručna upotreba mi je uvijek na prvom mjestu. Nakon hakiranja stroj je potpuno upotrebljiv za bilo koga, osim što se spremnik za vodu ne može lako ukloniti. Osim ako ne dovršite kompletan dio dizajna automatizacije vode, stroj se u ovom trenutku može napuniti samo malom kombinacijom cijev + lijevak.

Korak 8: Kôd za kontrolu kave

Kôd za kontrolu kave
Kôd za kontrolu kave

Cijeli izvorni kod Arduina pronađite u nastavku.

Kratko objašnjenje koda:

Glavna petlja poziva funkciju xcomm (), odgovornu za obradu naredbi, kuhanje kave, uključivanje/isključivanje aparata.

Kôd ispod se postiže samo u slučaju ručne kontrole. Povećava brojač statistika kako bi pratio koliko je kava napravljeno i automatski puni spremnik vode.

Naredbe se mogu slati putem Xbee -a ili preko USB porta (otklanjanje grešaka mora biti omogućeno na početku). Kad dođe komunikacija s bilo kojeg od narandžastih LED dioda trepće na sekundu kako bi prikazao mrežnu aktivnost. Implementirane su sljedeće naredbe:

1, CMSTAT - statistika upita sa računara

Mašina pohranjuje statističke podatke o tome koliko je tople/hladne/ručne kave napravljeno, a dobiva i produženje rada od RTC -a koji se ne prelijeva nakon 3x dana pa bi mogao potrajati godinama: P

2, CMWSTART - počinje kuhati kavu i tople napitke s toplom vodom

3, CMCSTART - započinje pravljenje ledenog čaja i hladnih napitaka sa hladnom vodom

Topli i hladni procesi započinju pozivanjem funkcije standby () koja vrši daljnje provjere, a zatim aktivira pritisak tipke za uključivanje. Nakon toga program čeka na zeleno svjetlo (kada se kotao zagrije), zatim oponaša pritisak na tipku vruće/hladno. Nakon toga se čeka 50 sekundi (što je više nego dovoljno čak i za najveću šalicu kave), a zatim isključuje napajanje. To čak ne bi bilo potrebno jer bi se ova izvrsna mašina automatski isključila 5 minuta nakon kuhanja kave, ali zašto gubiti energiju? Usput, potrošnja energije u stanju pripravnosti mašine čak i nakon izmjene je manja od 2 Watta.

Punjenje vode i sigurnost

Ova mašina je dizajnirana s obzirom na sigurnost, pa bi bilo nemoguće da napadač koji stekne kontrolu poplavi cijelu kuću vodom. Kvar na hardveru također ne bi rezultirao ozbiljnim oštećenjima. Pored hardverskih senzora nalazi se zaštita ugrađena u kôd za dopunu. Brojač koji pokreće ISR rutinu ako se stroj ne napuni za x sekundi (to bi se, na primjer, moglo dogoditi ako bi ultrazvučni senzor neispravno funkcionirao i dao bi 20% nakon x sekundi nakon pokretanja punjenja).

Ne postoji provjera autentičnosti, bilo tko može koristiti stroj unutar radijskog dometa tko zna naredbe pa sam promijenio zadani ID Xbee piconeta na nešto drugo, također se može komentirati ERR_INVALIDCMD i mašina će zanemariti sve nepoznate naredbe.

Bugs

Dvostruka greška kave: najneugodnija stvar kod ove greške je ta što se počela događati nekoliko mjeseci nakon korištenja aparata s istim kodom. Nakon što je izdana naredba za kavu, skuhala je kafu, isključila se i ponovo uključila te nastavila kuhati još 1 kavu s istim pokroviteljem.

Morao sam početi otklanjati greške u dupliranju naredbi sa Android nivoa jer sam implementirao ponovno slanje koda u slučaju gubitka paketa. Ispostavilo se da ni android, C kontrolni softver niti Linux kernel na raspi2 nisu odgovorni za ovo, već za Xbee.

Nakon izdavanja odjeka “CMCSTART”>/dev/ttyACM0 na upravljačkom čvoru, izašao je dvaput na drugi kraj. Zaključio sam da se moj 2,4 GHz spektar u mojoj kući počeo zasićivati od mnogih radio uređaja u ovom rasponu što je uzrokovalo da Xbee pozove neku vrstu ponovnog slanja u radijskom sloju i da su podaci poslati dva puta (ne uvijek). Nakon što je prva naredba stigla u stroj, funkcija xcomm () je započela s obradom, međutim odmah je došla druga nakon koje se čekalo u Xbees baferu, a kada je petlja završila, započela je obrada druge naredbe. Da bih zaobišao ovaj problem, uveo sam 3 praga u kôd kako bih onemogućio kuhanje više od 1 kave u 2 minute. Takođe postoji ograničenje za CMSTAT, ali kako ne bi ometao kontrolni kod C/Android, jednostavno će umanjiti odgovore 2 sekunde.

Posljednji prag postavljen je za ručni brojač kave, jer nakon što je aparat dosegao stanje pripravnosti (kotao se zagrijao, zeleno svjetlo), zabilježio je zeleni događaj stotinama puta povećavajući broj kave.

Korak 9: Razmišljanja o dizajnu i završne misli

Nakon dosta problema s Xbee komunikacijom, ne bih preporučio Xbee za ovaj projekt. Ili upotrijebite standardni jeftini radio sa 433 MHz s VirtualWire -om i sniženim Bps za stabilnost ili umetnite Raspberry PI Zero s Wifi vezom izravno u aparat za kavu.

Kako datum pokazuje, to je stari projekt, pa se izvinjavam zbog malih detalja koji nedostaju, poput veze od upravljačkog kruga do preciznih nožica na matičnoj ploči. Ovaj projekt zahtijeva određeni nivo tehničkog znanja da biste to učinili sami. Ako pronađete bilo kakve greške/probleme ili želite dati svoj doprinos ovom vodiču, obavijestite me.

Softver za upravljanje, metode glasovnog upravljanja su drugi dio koji će vam omogućiti da pripremite kavu samo glasovnom naredbom prije nego što uopće ustanete iz kreveta.

Sada sam završio dokumentaciju svog sistema za skladištenje vode (WasserStation) i ažurirao CoffeeControlCode na najnoviju verziju, koja takođe uključuje automatsko dopunjavanje. Ako koristite istu mašinu za izradu, punjenje će raditi besprijekorno (bez ikakvih izmjena koda) jer je nivo vode kalibriran u spremnik za vodu Circola.

Preporučuje se: