Satura rādītājs:

JavaStation (pilnībā uzpildāma pilnībā automātiska IoT kafijas automāts): 9 soļi (ar attēliem)
JavaStation (pilnībā uzpildāma pilnībā automātiska IoT kafijas automāts): 9 soļi (ar attēliem)

Video: JavaStation (pilnībā uzpildāma pilnībā automātiska IoT kafijas automāts): 9 soļi (ar attēliem)

Video: JavaStation (pilnībā uzpildāma pilnībā automātiska IoT kafijas automāts): 9 soļi (ar attēliem)
Video: Sun javastation "krups" booting Debian GNU/Linux 2024, Jūnijs
Anonim
JavaStation (pilnībā automātiska IoT kafijas automāts)
JavaStation (pilnībā automātiska IoT kafijas automāts)
JavaStation (pilnībā automātiska IoT kafijas automāts)
JavaStation (pilnībā automātiska IoT kafijas automāts)
JavaStation (pilnībā uzpildāma pilnībā automātiska IoT kafijas automāts)
JavaStation (pilnībā uzpildāma pilnībā automātiska IoT kafijas automāts)

Šī projekta mērķis bija izveidot pilnībā automātisku balss kontrolētu kafijas automātu, kas automātiski piepildās ar ūdeni, un viss, kas jums patiešām jādara, ir aizstāt patronus un dzert kafiju;)

1. darbība. Ievads

Ievads
Ievads

Tā kā šis bija mans otrais kafijas režīms, es šajā procesā esmu daudz iemācījies, jo īpaši, jo sarežģītāka mašīna, kuru jūs pārveidojat, jo vairāk problēmu/kļūdu, ar kurām saskarsities ikdienas darbā. Iepriekšējā mašīna bija tikai vienkāršs vecs 1 slēdža kafijas automāts ar releja mod.

Circolo (pilnībā automātiska versija) ir Dolce Gusto augstākās klases premium klases mašīnas augšdaļa. Man vajadzēja pavadīt stundas, meklējot pareizo mašīnu, jo visas pārējās šīs sērijas mašīnas, izmantojot augšējo mehānisko sviru, pārslēdzas starp aukstā un karstā ūdens plūsmām, kā parādīts attēlā.

2. solis: izvēlieties pareizo mašīnu

Izvēlieties pareizo mašīnu
Izvēlieties pareizo mašīnu

Mana bāzes mašīna nav tikai pilnībā automātiska, bet tai ir arī tādas ievērojamas funkcijas kā automātiska izslēgšanās pēc 5 minūtēm un atcerēšanās par pēdējo kafijas daudzumu (kas vēlāk ievērojami atvieglos modifikāciju). Mašīnas pamatdarbība:

1, barošanas poga ir nospiesta

2, nospiesta aukstā ūdens poga (tas nekavējoties izkliedēs ūdeni uz tasi)

3, tiek nospiesta karstā ūdens poga (tas uzsildīs katlu ~ 20–60 sekundes un sāks izliet karstu ūdeni krūzītē) Gaidīšanas režīmā strāvas indikators mirgos sarkanā krāsā un pēc tam iedegsies zaļā krāsā, kad katls ir gatavs.

Šī iekārta arī spēj noteikt šādas kļūdas:

Ūdens tvertne ir tukša

Kausa turētājs nav vietā

Abos gadījumos strāvas indikators mirgos starp sarkanu/zaļu.

3. darbība. Aparatūras modifikācijas

Aparatūras modifikācijas
Aparatūras modifikācijas

Šajā rakstā es nedetalizēšu korpusa demontāžu un salikšanu, jo vietnē YouTube ir video par to. Galvenais mikroprocesors ir paslēpts tieši zem galvas paneļa, kur atrodas 2 slēdži. Katls atrodas korpusa labajā pusē, atdalīts no visa pārējā, sūknis un barošanas panelis atrodas kreisajā pusē.

Kafijas automāts ir lieljaudas vide elektronikai, neviena no pusēm nav ideāli piemērota ķēdes integrēšanai. Pa labi pie katla ir vairāk vietas, bet jūs tiksiet galā ar siltumu, acīmredzot ķēde nevarēja pieskarties katla plāksnei vai būt pat tās tuvumā. Es esmu izvēlējies barošanas / sūkņa pusi, bet šeit jums ir jārisina smaga rezonanse, kas rodas no membrānas sūkņa darbības, kas var sabojāt vadības ķēdi / laika gaitā padarīt vadus izslīdēt no savienotājiem.

Strāvas padeves panelī nav nekā noderīga, bet to var izmantot, lai atvienotu stabilu +5 V (vēl viens īkšķis šai mašīnai), ko var tieši savienot ar Arduino VIN tapu, apejot iebūvēto sprieguma regulatoru.

Ātrs aparatūras saraksts (nav pilns BOM, neietver pamatus):

  1. Dolce Gusto Circulo pilna automātiskā versija
  2. 5V 4 kanālu releja modulis ar optisko savienotāju PIC AVR DSP (es iesaku izmantot 4x SIP-1A05 Reed Switch Relay)
  3. Arduino Micro (iesaku nākotnē izmantot SparkFun Pro Micro vai jaunāku)
  4. 2PCS 4n35 FSC fototransistors
  5. 1/2 "elektriskais solenoīda vārsts ūdens gaisam N/C parasti slēgts līdzstrāvas 12V
  6. Ultraskaņas moduļa HC-SR04 attāluma mērīšanas devēja sensors (iegādājieties dažas papildu ierīces, vēlāk redzēsit, kāpēc)
  7. 2 gab. Raindrop mitruma noteikšanas sensora modulis Lietus noteikšana Arduino
  8. 1 Xbee
  9. Cauruļu veidgabali ūdens blokiem (var atšķirties atkarībā no mājas, vislabāk to iegādāties datortehnikas veikalā un pirms pirkšanas visu salikt kopā)

4. solis: galvenie savienojumi un vadības panelis

Galvenie savienojumi un vadības panelis
Galvenie savienojumi un vadības panelis
Galvenie savienojumi un vadības panelis
Galvenie savienojumi un vadības panelis
Galvenie savienojumi un vadības panelis
Galvenie savienojumi un vadības panelis

Ir jāpievieno šādi ķēdes punkti:

1, karstā poga

2, aukstā poga

3, sarkans vadīja

4, Green vadīja

5, galvenā ieslēgšanas poga

6, kopīga GND

Diemžēl esmu pazaudējis savas piezīmes/attēlus par to, kur tos pielodēt uz tāfeles, bet tos visus var viegli izsekot ar multimetru (vienkārši izmantojiet diodes pārbaudes režīmu, lai izsekotu vadus). Lodēšana nebija pārāk grūta, izvēlieties punktus ar SMD kājām un lodējiet vadus tur.

Sarkanās/zaļās gaismas diodes atrodas blakus barošanas slēdzim. Tie ir nepieciešami, lai noteiktu mašīnas stāvokli (ieslēgts, gatavs kafijas pagatavošanai (katls uzsildīts), kļūda). Man tie ir jānoņem tieši no galvenās plates, jo ir grūti izklaidēties ar mazo ķēdi ap barošanas slēdzi.

Es izmantoju 4N35 optronus, lai droši izveidotu savienojumu ar Arduino un lasītu gaismas diodes stāvokļus. Sākotnējā ideja bija izmantot 5 no tiem un veikt gan rādījumus, gan slēdžu vadību (izveidot pilnīgi klusu ķēdi). Diemžēl šī mikroshēma nevarēja radīt pietiekami zemu pretestību, lai atdarinātu pogas nospiešanu, tāpēc es biju spiests izmantot relejus. Es izmantoju vispārējo 4 kanālu releja moduli, kas man bija pa rokai, bet, ja man vajadzētu pārtaisīt šo projektu, es vienkārši izmantotu mazus Reed relejus (SIP-1A05 Reed Switch Relay ar iekšējām atgaitas diodēm), kurus var tieši savienot ar Arduino izeju tapas (~ 7mA slodze), lai visu varētu novietot uz 2 līmeņu dēļu struktūras.

5 mazos kabeļus var viegli nolaist blakus strāvas vadiem zem barošanas paneļa.

Lai efektīvāk izmantotu telpu mašīnā, es nolēmu sadalīt elektroniku uz 2 galvenajiem paneļiem:

Kreisais ir galvenais vadības panelis, pa labi (tas, ko es saucu par sakaru plati) tur Xbee, un, lai gan tas nav parādīts attēlā, aiz tā ir saspiesti divi ūdens sensori (pārplūdes noteikšanai). Augšpusē reāllaika pulkstenis (neobligāts darbības laikam:)) un 4 kanālu releja dēlis, kas atrodas blakus sūknim apakšā, ietīts sūklī, arī nedaudz pielīmēts, lai pasargātu no rezonācijas.

Attiecībā uz sakaru dēli es neuztraucos ar PCB izgatavošanu, izmantojot tikai parasto maizes dēli, jo tur nekas daudz nenotiek. Tam ir 6 savienojumi ar galveno plati:

Vcc (5V), GND, Xbee (TX), Xbee (RX), ūdens sensors1 (dati), ūdens sensors2 (dati)

5. solis: ūdens plūsmas kontrole un uzpildīšanas mehānisms

Ūdens plūsmas kontrole un uzpildes mehānisms
Ūdens plūsmas kontrole un uzpildes mehānisms
Ūdens plūsmas kontrole un uzpildes mehānisms
Ūdens plūsmas kontrole un uzpildes mehānisms
Ūdens plūsmas kontrole un uzpildes mehānisms
Ūdens plūsmas kontrole un uzpildes mehānisms

Es esmu izstrādājis šo mašīnu, domājot par drošību, padarot neiespējamu, ka uzbrucēji/darbības traucējumi var radīt nopietnus ūdens bojājumus mājā, jo iekārta tiks pievienota gan krānam, gan internetam visu diennakti. Tas ir tas, ko šāda 555 aizsardzības ķēde dara solenoīda virspusē.

Ņemiet vērā arī to, ka solenoīds darbojas no 12 V barošanas avota, ko man vēl izdevās iespiest kafijas automāta apakšā blakus sūknim un releja plāksnei. Lai netērētu enerģiju, 4 kanālu releja panelis pārslēdz 230 V maiņstrāvu tieši uz adapteri, kas pēc tam ieslēgs solenoīdu. Protams, ir pāris mikrosekundes izslēgšanās kavēšanās, kas jums jāaprēķina magnētiskā lauka sabrukšanai gan uz solenoīda, gan uz adaptera, izvelkot kontaktdakšu.

Es izmantoju standarta 3,5 mm ligzdu, lai savienotu ārējo ūdens bloku ar garu 3 m vadu un neliela diametra PVC cauruli, kas nāk no bloka, kas iet uz kafijas automātu.

Ūdens tvertnes augšdaļa ir izurbta, lai ievietotu šo cauruli, kas pēc tam tika nolaista līdz tvertnes apakšai. Es atzīmēšu, ka ir ļoti svarīgi barot cauruli līdz apakšai sānos, neejot cauri vidum un traucēt ultraskaņas sensoriem.

Pēc elektromagnēta ieslēgšanas ķēde to automātiski izslēgs pēc ~ 4 sekundēm (tam vajadzētu būt vairāk nekā pietiekami daudz laika, lai piepildītu tvertni līdz pilnai), un tas paliek šādā stāvoklī līdz nākamajam ieslēgšanas ciklam. Šī ķēde ir pēdējā aizsardzības līnija pret darbības traucējumiem, un tā darbojas pilnīgi atsevišķi no kafijas automāta. Ja mašīnas relejs neizdodas un paliek slēgts, ūdens var pārpludināt māju, ar šo aizsardzību tas nekad nevar notikt.

Ja tas jums joprojām nav pietiekami labs vai nav iespējams aizvērt ūdeni, vai nevēlaties mētāties ar ūdens blokiem, apskatiet manu WasserStation projektu, kas tika izstrādāts tieši šim nolūkam, lai pagarinātu kafijas automāta mazo ūdens tvertni.

6. darbība: plūdu noteikšana

Plūdu noteikšana
Plūdu noteikšana
Plūdu noteikšana
Plūdu noteikšana
Plūdu noteikšana
Plūdu noteikšana

Ir divi papildu ūdens sensori aizsardzībai:

  • 1. sensors: tvertnes aizmugurē pārplūdes noteikšanai no tvertnes
  • 2. sensors: kafijas automāta apakšā krūzes pārplūdes noteikšanai

Abi šie sensori izraisīs pārtraukumu, kas nekavējoties izslēgs ūdeni, ieslēgs kļūdas gaismu un pārtrauks programmas izpildi, lai novērstu uzbrukumu, piemēram, miljona kafijas pagatavošanu un tā applūšanu mājā. Pēc programmas aizvēršanas iekārta vairs uz neko nereaģēs, un tai jābūt manuāli ieslēgtai.

Ja jūs domājat, kas notiktu, ja ultraskaņas sensors tiktu appludināts (tas notika vienreiz:))

Tas pāris dienas atdeva šādu ūdens līmeni, bet pat pēc izžūšanas tas vairs nekad nebija precīzs, un man tas bija jāmaina. Mašīna tika izstrādāta, lai darbotos no auksta krāna ūdens, lai tvaicēšana no karstuma nesabojātu sensoru. Šis sensors ir precīzs tikai līdz brīdim, kad ūdens līmenis ir 2-3 cm attālumā no tā.

Tvertnes eliptiskā forma apgrūtināja ūdens līmeņa aprēķinus, tāpēc tie tika izmērīti un programmā iekodēti, lai atbilstu procentiem.

7. darbība: pārbaude un galīgā montāža

Pārbaude un galīgā montāža
Pārbaude un galīgā montāža
Pārbaude un galīgā montāža
Pārbaude un galīgā montāža
Pārbaude un galīgā montāža
Pārbaude un galīgā montāža

Iekārta ir galīgajā stāvoklī, gandrīz pilnībā slēpjot uzlaušanas pēdas, un, ja 3 statusa indikatora gaismas diodes un USB atkļūdošanas ports nebūtu tur, jūs nevarētu pateikt, ka kaut kas cits notiek iekšpusē, kamēr tajā varētu būt pat savienots Wifi Zemestrīces serveris:)

Pārveidojot ierīces, manuālā lietošana vienmēr tiek uzskatīta par galveno prioritāti. Pēc uzlaušanas mašīnu ikviens var izmantot tieši tā, kā tas bija, izņemot to, ka ūdens tvertni nevar viegli noņemt. Ja vien neesat pabeidzis visu ūdens automatizācijas daļu, mašīnu šajā brīdī var uzpildīt tikai ar nelielu caurules un piltuves kombināciju.

8. darbība: kafijas kontroles kods

Kafijas kontroles kods
Kafijas kontroles kods

Atrodiet pilnu Arduino avota kodu, kas pievienots zemāk.

Īss koda skaidrojums:

Galvenā cilpa izsauc funkciju xcomm (), kas ir atbildīga par komandu apstrādi, kafijas pagatavošanu, iekārtas ieslēgšanu/izslēgšanu.

Zemāk esošais kods tiek sasniegts tikai manuālas vadības gadījumā. Tas palielina statusa skaitītāju, lai izsekotu, cik kafijas tika pagatavots, un automātiski piepilda ūdens tvertni.

Komandas var nosūtīt, izmantojot Xbee vai USB portu (sākumā ir jāiespējo atkļūdošana). Kad saziņa notiek, oranžā gaismas diode mirgo uz sekundi, lai parādītu tīkla darbību. Tiek ieviestas šādas komandas:

1, CMSTAT - vaicājumu statistika no mašīnas

Iekārta saglabā statistiku par to, cik daudz karstu/aukstu/manuālu kafiju pagatavoja, kā arī iegūst darbības laiku no RTC, kas nepārplūst pēc 3 reizēm, tāpēc tas var ilgt pat gadus: P

2, CMWSTART - sāk gatavot kafiju un karstos dzērienus ar karstu ūdeni

3, CMCSTART - sāk gatavot ledus tēju un aukstus dzērienus ar aukstu ūdeni

Karstie un aukstie procesi sākas, izsaucot gaidstāves () funkciju, kas veic papildu pārbaudes un pēc tam nospiež barošanas pogu. Pēc tam programma gaida zaļo gaismu (kad katls ir uzkarsēts), un līdz ar to nospiež karsto/auksto pogu. Pēc tam tas gaida 50 sekundes (kas ir vairāk nekā pietiekami pat vislielākajai kafijas tasītei) un izslēdz strāvu. Tas pat nebūtu vajadzīgs, jo šī lieliskā mašīna automātiski izslēdzas 5 minūtes pēc kafijas pagatavošanas, bet kāpēc tērēt enerģiju? Starp citu, mašīnas gaidstāves enerģijas patēriņš pat pēc modifikācijas ir mazāks par 2 vatiem.

Ūdens uzpilde un drošība

Šī mašīna tika izstrādāta, domājot par drošību, tāpēc uzbrucējam, kurš iegūst kontroli, nebūtu iespējams pārpludināt visu māju ar ūdeni. Arī aparatūras kļūme neradītu nopietnus bojājumus. Blakus aparatūras sensoriem uzpildes kodā ir iebūvēta aizsardzība. Skaitītājs, kas iedarbina ISR rutīnu, ja iekārta netiek uzpildīta x sekunžu laikā (piemēram, tas varētu notikt, ja ultraskaņas sensors nedarbotos pareizi un pēc x sekunžu izdalīšanas 20% izdalītos).

Nav autentifikācijas, ikviens var izmantot iekārtu radio diapazonā, kurš zina komandas, tāpēc esmu nomainījis noklusējuma Xbee piconet ID uz kaut ko citu, kā arī var komentēt ERR_INVALIDCMD, un iekārta ignorēs visas nezināmās komandas.

Bugs

Dubultā kafijas kļūda: visnepatīkamākais šajā bugā ir tas, ka tas sāka notikt pāris mēnešus pēc tam, kad mašīna tika izmantota ar to pašu kodu. Pēc kafijas komandas izdošanas tā pagatavoja kafiju, izslēdzās un atkal ieslēdzas un turpina gatavot vēl 1 kafiju ar to pašu patronu.

Man bija jāsāk atkļūdot komandu dublēšanos no Android līmeņa, jo pakešu pazaudēšanas gadījumā esmu ieviesis atkārtotu nosūtīšanu uz kodu. Izrādījās, ka ne android, C vadības programmatūra, ne raspi2 Linux kodols nebija atbildīgi par šo, drīzāk Xbee.

Pēc echo “CMCSTART”>/dev/ttyACM0 izdošanas vadības mezglā tas divreiz iznāk uz otru galu. Es secināju, ka mans 2,4 GHz frekvenču spektrs manās mājās sāka piesātināties no daudzām šajā diapazonā esošajām radio ierīcēm, kā rezultātā Xbee radīja zināmu atkārtotu nosūtīšanu radio slānī un dati tika nosūtīti divreiz (ne vienmēr). Tiklīdz pirmā komanda ieradās mašīnās xcomm (), tā sāka to apstrādāt, tomēr otrā ienāca uzreiz pēc tam, kad tā gaidīja Xbees buferšķīdumā un, kad cikls beidzās, tā sāka apstrādāt otro komandu. Lai izvairītos no šīs problēmas, kodā esmu ieviesis 3 sliekšņus, lai nebūtu iespējams pagatavot vairāk nekā 1 kafiju 2 minūtēs. Arī CMSTAT ir noteikts ierobežojums, bet, lai netraucētu C/Android vadības kodam, tas vienkārši izspiest atbildes uz 2 sekundēm.

Pēdējais slieksnis tika uzstādīts manuālajai kafijas letei, jo, tiklīdz automāts ir sasniedzis gatavības stāvokli (katls uzsildīts, zaļā gaisma), tas simtiem reižu reģistrējis zaļo notikumu, palielinot kafijas daudzumu.

9. solis: dizaina apsvērumi un galīgās domas

Pēc daudzām Xbee komunikācijas problēmām es neieteiktu Xbee šim projektam. Vai nu izmantojiet standarta lēto 433Mhz radio ar VirtualWire un pazeminātu Bps, lai nodrošinātu stabilitāti, vai ieguliet Raspberry PI Zero ar Wifi savienojumu tieši kafijas automātā.

Tā kā datums rāda, ka tas ir vecs projekts, es atvainojos, ka trūkst sīku detaļu, piemēram, savienojums no vadības ķēdes līdz precīzām tapas kājām mātesplatē. Šim projektam ir nepieciešamas noteiktas tehniskās zināšanas, lai to paveiktu patstāvīgi. Ja atrodat kļūdas/problēmas vai vēlaties sniegt ieguldījumu šajā apmācībā, lūdzu, informējiet mani.

Vadības programmatūra, balss vadības metodes ir paredzētas citai daļai, kas ļaus pagatavot kafiju tikai ar balss komandu pirms izkāpšanas no gultas.

Tagad esmu pabeidzis savas ūdens uzglabāšanas sistēmas (WasserStation) dokumentāciju un atjauninājis CoffeeControlCode uz jaunāko versiju, kas ietver arī automātisko uzpildi. Ja būvniecībai izmantojat to pašu mašīnu, uzpilde darbosies nevainojami (bez koda izmaiņām), jo ūdens līmenis tika kalibrēts atbilstoši Circolo ūdens tvertnei.

Ieteicams: