Tartalomjegyzék:

JavaStation (önfeltöltő, teljesen automatikus IoT kávéfőző): 9 lépés (képekkel)
JavaStation (önfeltöltő, teljesen automatikus IoT kávéfőző): 9 lépés (képekkel)

Videó: JavaStation (önfeltöltő, teljesen automatikus IoT kávéfőző): 9 lépés (képekkel)

Videó: JavaStation (önfeltöltő, teljesen automatikus IoT kávéfőző): 9 lépés (képekkel)
Videó: Sun javastation "krups" booting Debian GNU/Linux 2024, Július
Anonim
JavaStation (önfeltöltő, teljesen automatikus IoT kávéfőző)
JavaStation (önfeltöltő, teljesen automatikus IoT kávéfőző)
JavaStation (önfeltöltő, teljesen automatikus IoT kávéfőző)
JavaStation (önfeltöltő, teljesen automatikus IoT kávéfőző)
JavaStation (önfeltöltő, teljesen automatikus IoT kávéfőző)
JavaStation (önfeltöltő, teljesen automatikus IoT kávéfőző)

Ennek a projektnek az volt a célja, hogy egy teljesen automatikus hangvezérelt kávéfőzőt készítsen, amely automatikusan feltöltődik vízzel, és csak annyit kell tennie, hogy lecseréli a védnököket és meginja a kávét;)

1. lépés: Bevezetés

Bevezetés
Bevezetés

Mivel ez volt a második kávémódosításom, sokat tanultam a folyamat során, különösen azt, hogy minél összetettebb gépet módosít, annál több probléma/hiba jelentkezik a napi működés során. Az előző gép csak egy egyszerű régi 1 kapcsolós kávéfőző volt, relé moddal.

A Circolo (teljes automata verzió) a Dolce Gusto prémium gépének csúcsvonala. Órákat kellett töltenem a megfelelő gép keresésével, mert az összes többi gép ebből a sorozatból a felső mechanikus kar segítségével vált a hideg és a meleg víz áramlásai között, ahogy az a képen látható.

2. lépés: Válassza ki a megfelelő gépet

Válassza ki a megfelelő gépet
Válassza ki a megfelelő gépet

Az alapgépem nem csak teljesen automatikus, hanem olyan figyelemre méltó funkciókkal is rendelkezik, mint például az 5 perc elteltével történő automatikus kikapcsolás és az utolsó kávémennyiségre való emlékezés (ami később nagyon megkönnyíti a dolgokat). A gép alapvető működése:

1, Bekapcsológomb megnyomva

2, Hideg víz gomb megnyomva (azonnal eloszlatja a vizet a csészébe)

3, A melegvíz gomb megnyomva (felmelegíti a kazánt ~ 20-60 másodpercig, és elkezd forró vizet engedni a csészébe) A tápellátás jelzőfénye pirosan villog a készenléti idő alatt, majd folyamatosan zöldre vált, amikor a kazán készen áll.

Ez a gép képes a következő hibák észlelésére is:

A víztartály üres

A pohártartó nincs a helyén

Mindkét esetben a tápellátás jelzőfénye villogni kezd a piros/zöld között.

3. lépés: Hardvermódosítások

Hardvermódosítások
Hardvermódosítások

Ebben az írásban nem részletezem a tok szétszerelését és összeszerelését, mert videók vannak róla a YouTube -on. A fő mikroprocesszor közvetlenül a fejpanel alatt van elrejtve, ahol a 2 kapcsoló található. A kazán a ház jobb oldalán van, minden mástól elkülönítve, a szivattyú és a tápegység bal oldalán.

A kávéfőző nagy teherbírású környezet az elektronika számára, egyik oldal sem tökéletesen alkalmas áramkör integrálására. A jobb oldali kazánnál több hely van, de kezelni fogja a hőt, nyilvánvalóan az áramkör nem érintheti a kazánlemezt, vagy még a közelében sem lehet. A tápegység / szivattyú oldalt választottam, de itt a membránszivattyú működéséből származó erős rezonanciával kell megküzdenie, amely tönkreteheti a vezérlőáramkört / idővel kicsúsztathatja a vezetékeket a csatlakozóikból.

A tápegység nem tartalmaz semmi hasznosat, de használható stabil +5V lekapcsolására (még egy hüvelykujj ehhez a géphez), amely közvetlenül csatlakoztatható az Arduino VIN csapjához, megkerülve a fedélzeti feszültségszabályozót.

Gyors hardverlista (nem teljes BOM, nem tartalmazza az alapokat):

  1. Dolce Gusto Circulo teljes automata verzió
  2. 5V 4 csatornás relé modul optocsatolóval PIC AVR DSP (4x SIP-1A05 Reed Switch relé használatát javaslom)
  3. Arduino Micro (javaslom a SparkFun Pro Micro vagy újabb verzió használatát)
  4. 2PCS 4n35 FSC optocsatoló fototranzisztor
  5. 1/2 "elektromos mágnesszelep vízlevegőhöz N/C normál módon zárt DC 12V
  6. Ultrahangos modul HC-SR04 távolságmérő érzékelő (vásároljon néhány extrát, később látni fogja, miért)
  7. 2db Esőcsepp páratartalom érzékelő modul Esőérzékelő Arduino számára
  8. 1 Xbee
  9. Csőszerelvények vizesblokkokhoz (házonként eltérőek lehetnek, a legjobb, ha megvásárolja a hardverboltban, és ott összerakja a vásárlás előtt)

4. lépés: Főcsatlakozások és a vezérlőpanel

Főcsatlakozások és a vezérlőpanel
Főcsatlakozások és a vezérlőpanel
Főcsatlakozások és a vezérlőpanel
Főcsatlakozások és a vezérlőpanel
Főcsatlakozások és a vezérlőpanel
Főcsatlakozások és a vezérlőpanel

A következő áramköri pontokat kell csatlakoztatni:

1, Forró gomb

2, Hideg gomb

3, Piros led

4, zöld led

5, Fő bekapcsoló gomb

6, Megosztott GND

Sajnos elvesztem a jegyzeteimet/képeimet arról, hogy hol kell forrasztani ezeket a táblán, de mindegyik könnyen visszavezethető multiméterrel (csak használja a dióda tesztmódot a vezetékek visszavezetéséhez). A forrasztás nem volt túl kemény, válassza ki a pontokat SMD lábakkal, és forrasztja oda a vezetékeket.

A piros/zöld LED -ek egymás mellett találhatók a főkapcsolónál. Ezek a gép állapotának meghatározásához szükségesek (be van kapcsolva, kész kávéfőzésre (a kazán felmelegszik), hiba). Közvetlenül az alaplapról vettem le őket, mert nehéz a tápkapcsoló körüli kis áramkörrel babrálni.

A 4N35 optocsatolóit használtam, hogy biztonságosan illeszkedjek az Arduino -hoz, és olvassam a LED állapotát. Az eredeti ötlet az volt, hogy 5 -öt használnak, és mind a leolvasást, mind a kapcsolóvezérlést is elvégzik (teljesen csendes áramkört készítsenek). Sajnos ez a chip nem tudott elég alacsony ellenállást generálni ahhoz, hogy egy gombnyomást emuláljon, ezért kénytelen voltam reléket használni. Az általános 4 csatornás relé modult használtam, amit a kezemben tartottam, de ha újra kell csinálnom ezt a projektet, akkor csak kicsi Reed reléket (SIP-1A05 Reed Switch Relay, belső flyback diódákkal) használok, amelyek közvetlenül csatlakoztathatók az Arduino kimenetéhez csapok (~ 7mA terhelés), így mindent egy 2 szintű táblaszerkezetre lehetett helyezni.

Az 5 kis kábel könnyen lehúzható a tápkábel mellett a tápegység alatt.

A gép hatékonyabb kihasználása érdekében úgy döntöttem, hogy az elektronikát két fő panelre osztom:

A bal oldali a fő vezérlőpanel, a jobb (amit én kommunikációs táblának nevezek) az Xbee -t tartja, és bár nem látszik a képen, a 2 vízérzékelő (túlcsordulás érzékeléshez) szorítva van mögötte. A tetején a valós idejű óra (opcionális az üzemidőhöz:)) és a 4 csatornás relé tábla, amely a szivattyú mellett helyezkedik el alul szivacsba csomagolva, szintén kissé ragasztva, hogy megvédje a rezonanciát.

A kommunikációs tábla esetében nem bántam a PCB készítését, csak egy hagyományos kenyérlapot használtam, mert nem sok minden történik ott. 6 csatlakozással rendelkezik az alaplaphoz:

Vcc (5V), GND, Xbee (TX), Xbee (RX), vízérzékelő1 (adatok), vízérzékelő2 (adatok)

5. lépés: A vízáramlás szabályozása és az utántöltési mechanizmus

A vízáramlás szabályozása és az utántöltő mechanizmus
A vízáramlás szabályozása és az utántöltő mechanizmus
A vízáramlás szabályozása és az utántöltő mechanizmus
A vízáramlás szabályozása és az utántöltő mechanizmus
A vízáramlás szabályozása és az utántöltő mechanizmus
A vízáramlás szabályozása és az utántöltő mechanizmus

Ezt a gépet a biztonság szem előtt tartásával terveztem, és lehetetlenné teszik, hogy a támadók/meghibásodások súlyos vízkárokat okozzanak a házban, mivel a gép 24 órán keresztül a vízcsaphoz és az internethez is kapcsolódik. Ezt teszi a következő 555 védelmi áramkör a mágnesszelep tetején.

Azt is vegye figyelembe, hogy a mágnesszelep 12 V -os tápegységről működik, amit még mindig sikerült a kávéfőző aljába préselnem a szivattyú és a relé tábla mellett. A pazarló áramellátás érdekében a 4 csatornás relélap közvetlenül a 230 V -os tápegységet kapcsolja az adapterhez, amely bekapcsolja a mágnesszelepet. Természetesen van néhány mikroszekundumos kikapcsolási késleltetés, amit ki kell számítani a mágneses mező összeomlásához mind a mágnesszelepen, mind az adapteren a dugó kihúzásakor.

Egy szabványos 3,5 mm -es jack aljzatot használok a külső vizesblokk csatlakoztatásához egy hosszú, 3 m -es vezetékkel és egy kis átmérőjű PVC csővel, amely a kávéfőzőhöz vezető blokkból jön ki.

A víztartály tetejét ki kell fúrni, hogy befogadja ezt a csövet, amely aztán leereszkedett a tartály aljára. Megjegyezném, hogy nagyon fontos, hogy a csövet az alján lefelé, a középső rész átmenése nélkül vezessük be, és ne zavarjuk az ultrahangos érzékelőket.

Miután a mágnesszelep bekapcsol, az áramkör ~ 4 másodperc múlva automatikusan lekapcsol (ennek több mint elegendő időnek kell eltelnie a tartály feltöltéséhez), és ebben az állapotban marad a következő bekapcsolási ciklusig. Ez az áramkör az utolsó védelmi vonal a hibás működés ellen, és teljesen önállóan működik a kávéfőzőtől. Ha a gépben a relé meghibásodna és zárva maradna, a víz eláraszthatja a házat, ezzel a védelemmel ez soha nem történhet meg.

Ha ez még mindig nem elég jó az Ön számára, vagy lehetetlen elzárni a vizet, vagy nem szeretne vízblokkokkal babrálni, nézze meg a WasserStation projektemet, amely pontosan erre készült, hogy meghosszabbítsa a kávéfőző kis víztartályát.

6. lépés: Árvíz észlelése

Árvíz érzékelés
Árvíz érzékelés
Árvíz érzékelés
Árvíz érzékelés
Árvíz érzékelés
Árvíz érzékelés

2 további vízérzékelő van a védelem érdekében:

  • 1. érzékelő: a tartály hátulján a túlfolyás érzékeléséhez a tartályból
  • 2. érzékelő: a kávéfőző alján a csésze túlcsordulás érzékeléséhez

Mindkét érzékelő megszakítást vált ki, amely azonnal elzárja a vizet, felkapcsolja a hibajelző lámpát és megszakítja a program végrehajtását, hogy megakadályozza a támadást, mint például egy millió kávé elkészítése és a ház elárasztása. A program bezárása után a gép nem reagál semmire, és manuálisan kell újraindítani.

Ha kíváncsi vagy, mi történne, ha az ultrahangos érzékelőt elárasztaná (egyszer történt:))

Pár napig visszaadta a vízszintet, de még azután is kiszáradt, hogy soha többé nem lesz pontos, és ki kellett cserélnem. A gépet hideg csapvízből való működésre tervezték, így a forró gőzölés nem károsítja az érzékelőt. Ez az érzékelő csak addig pontos, amíg a vízszint 2-3 cm-re van tőle.

A tartály elliptikus alakja megnehezítette a vízszint kiszámítását, így azokat mérték és bekódolták a programba, hogy megfeleljenek a százalékoknak.

7. lépés: Tesztelés és végső összeszerelés

Tesztelés és végső összeszerelés
Tesztelés és végső összeszerelés
Tesztelés és végső összeszerelés
Tesztelés és végső összeszerelés
Tesztelés és végső összeszerelés
Tesztelés és végső összeszerelés

A gép a végső állapotában, szinte teljesen elrejti a hackelés nyomait, és ha a 3 állapotjelző LED és az USB hibakeresési port nem lenne ott, nem tudná megmondani, hogy bármi más történik belül, akár egy Wifi csatlakoztatva is Quake szerver:)

Amikor eszközöket módosítok, mindig a kézi használatot tartom elsődleges prioritásnak. A feltörés után a gépet bárki teljesen használhatja úgy, ahogy volt, kivéve, hogy a víztartályt nem lehet könnyen eltávolítani. Hacsak nem fejezi be a tervezés teljes víz -automatizálási részét, a gépet ekkor csak egy kis cső + tölcsér kombinációval lehet feltölteni.

8. lépés: Kávévezérlő kód

Kávé ellenőrzési kód
Kávé ellenőrzési kód

Keresse meg az alábbi csatolt teljes Arduino forráskódot.

A kód rövid magyarázata:

A fő hurok meghívja az xcomm () függvényt, amely a parancsfeldolgozásért, a kávé elkészítéséért, a gép be- és kikapcsolásáért felelős.

Az alatta lévő kód csak kézi vezérlés esetén érhető el. Növeli a statikus számlálót, hogy nyomon tudja követni, hány kávé készült, és automatikusan feltölti a víztartályt.

A parancsok küldhetők az Xbee -n vagy az USB -porton keresztül (a hibakeresést az elején engedélyezni kell). Amikor a kommunikáció valamelyikről érkezik, a narancssárga LED egy másodpercre villog, jelezve a hálózati tevékenységet. A következő parancsokat hajtják végre:

1, CMSTAT - statisztikai lekérdezés a gépről

A gép statisztikákat tárol arról, hogy hány forró/hideg/kézi kávét készítettek, és megkapja az üzemidőt az RTC -től, amely nem ömlik túl 3x nap után, így akár évekig is eltarthat: P

2, CMWSTART - forró vízzel kávét és forró italokat kezd készíteni

3, CMCSTART - elkezd jeges teát és hideg italokat készíteni hideg vízzel

A hideg és meleg folyamatok a készenléti () funkció meghívásával kezdődnek, amely további ellenőrzéseket végez, majd elindítja a bekapcsológomb megnyomását. Ezt követően a program várja a zöld fényt (amikor a kazán felmelegszik), majd emulálja a hideg/meleg gombot. Ezután 50 másodpercet vár (ami több, mint elég a legnagyobb kávéhoz), majd kikapcsolja a készüléket. Erre nem is lenne szükség, mivel ez a kiváló gép automatikusan kikapcsol a kávé elkészítése után 5 perccel, de miért pazarolja az energiát? Egyébként a gép készenléti fogyasztása a módosítás után is kevesebb, mint 2 W.

Víz utántöltés és biztonság

Ezt a gépet a biztonság szem előtt tartásával tervezték, így lehetetlen, hogy egy támadó, aki megszerzi az irányítást, elárasztja az egész házat vízzel. A hardverhiba sem okozna komoly károkat. A hardverérzékelők mellett az újratöltés kódjába beépített védelem található. Egy számláló, amely elindítja az ISR -rutinot, ha a gépet nem töltik fel x másodpercen belül (ez például megtörténhet, ha az ultrahangos érzékelő meghibásodna, és az utántöltés megkezdése után 20 másodperc után 20% -ot adna ki).

Nincs hitelesítés, bárki használhatja a gépet a rádió hatósugarán belül, aki ismeri a parancsokat, ezért az alapértelmezett Xbee pikethálózati azonosítót valami másra változtattam, és az ERR_INVALIDCMD megjegyzést is ki lehet írni, és a gép figyelmen kívül hagyja az ismeretlen parancsokat.

Bogarak

Dupla kávéhiba: a legbosszantóbb ebben a hibában az, hogy néhány hónappal a gép ugyanazon kóddal történő használata után kezdődött. A kávéparancs kiadása után elkészítette a kávét, kikapcsolta, majd újra bekapcsolta, és folytatott további 1 kávé főzését ugyanazzal a pártfogóval.

A parancsmásolás hibakeresését Android szintről kellett elkezdenem, mert csomagvesztés esetén megvalósítottam a kódra történő újraküldést. Kiderült, hogy sem az android, sem a C vezérlőszoftver, sem a raspi2 Linux -kernelje nem felelős ezért, inkább az Xbee.

A „CMCSTART”>/dev/ttyACM0 echo kiadása után a vezérlő csomóponton kétszer jön ki a másik végére. Arra a következtetésre jutottam, hogy az otthoni 2,4 GHz -es spektrumom kezd telítődni az ezen a tartományon lévő számos rádiós eszköztől, ami miatt az Xbee valamilyen újraküldést kezdeményezett a rádiórétegben, és az adatokat kétszer (nem mindig) küldték el. Amint az első parancs megérkezett a gépekbe, az xcomm () függvény elkezdte feldolgozni azt, de rögtön jött egy második, ami után várt az Xbees pufferben, és amikor a ciklus befejeződött, megkezdte a második parancs feldolgozását. Ennek a problémának a kiküszöbölésére 3 küszöbértéket vezettem be a kódba, amelyek lehetetlenné teszik több mint 1 kávé elkészítését 2 perc alatt. A CMSTAT -nak is van egy korlátja, de ha nem zavarja a C/Android vezérlőkódot, akkor egyszerűen 2 másodpercig elnyomja a válaszokat.

Az utolsó küszöbértéket a kézi kávézó pultnál állítottuk be, mert miután a gép elérte a készenléti állapotot (a kazán felmelegedett, a zöld fény), több százszor rögzítette a zöld eseményt, és megnövelte a kávészámot.

9. lépés: Tervezési szempontok és utolsó gondolatok

Az Xbee kommunikáció sok gondja után nem ajánlom az Xbee -t ehhez a projekthez. Használja a szokásos olcsó 433 MHz -es rádiót VirtualWire -rel és alacsonyabb Bps -sel a stabilitás érdekében, vagy ágyazjon be egy Raspberry PI Zero -t Wifi -kapcsolattal közvetlenül a kávéfőzőbe.

Mivel a dátum azt mutatja, hogy ez egy régi projekt, ezért elnézést kérek az olyan apró részletek hiánya miatt, mint például a vezérlőáramkör és az alaplap pontos csapszárai közötti kapcsolat. Ez a projekt bizonyos szintű műszaki ismereteket igényel ahhoz, hogy önállóan elvégezze. Ha bármilyen hibát/problémát talál, vagy szeretne hozzájárulni ehhez az oktatóanyaghoz, kérjük, tudassa velem.

A vezérlőszoftver, a hangvezérlés módszerei egy másik rész, amely lehetővé teszi, hogy a kávét csak hangutasítással készítse elő, még mielőtt felkelne az ágyból.

Most befejeztem a víztároló rendszerem (WasserStation) dokumentációját, és frissítettem a CoffeeControlCode kódot a legújabb verzióra, amely az automatikus utántöltést is tartalmazza. Ha ugyanazt a gépet használja az építéshez, az utántöltés hibátlanul fog működni (a kód módosítása nélkül), mivel a vízszinteket a Circolo víztartályához kalibrálták.

Ajánlott: