Mündəricat:

JavaStation (Özünü Dolduran Tam Avtomatik IoT Qəhvə Makinası): 9 Addım (Şəkillərlə birlikdə)
JavaStation (Özünü Dolduran Tam Avtomatik IoT Qəhvə Makinası): 9 Addım (Şəkillərlə birlikdə)

Video: JavaStation (Özünü Dolduran Tam Avtomatik IoT Qəhvə Makinası): 9 Addım (Şəkillərlə birlikdə)

Video: JavaStation (Özünü Dolduran Tam Avtomatik IoT Qəhvə Makinası): 9 Addım (Şəkillərlə birlikdə)
Video: Sun javastation "krups" booting Debian GNU/Linux 2024, Iyul
Anonim
JavaStation (Tamamilə Avtomatik IoT Qəhvə Hazırlayan)
JavaStation (Tamamilə Avtomatik IoT Qəhvə Hazırlayan)
JavaStation (Tamamilə Avtomatik IoT Qəhvə Hazırlayan)
JavaStation (Tamamilə Avtomatik IoT Qəhvə Hazırlayan)
JavaStation (Özünü Dolduran Tam Avtomatik IoT Qəhvə Makinası)
JavaStation (Özünü Dolduran Tam Avtomatik IoT Qəhvə Makinası)

Bu layihənin məqsədi özünü avtomatik olaraq su ilə dolduran tam avtomatik səslə idarə olunan qəhvə hazırlayıcısı etmək idi və həqiqətən etməniz lazım olan hər şeyi müştəriləri əvəz etmək və qəhvənizi içməkdir;)

Addım 1: Giriş

Giriş
Giriş

Bu, mənim ikinci qəhvə modum olduğu üçün bu müddət ərzində çox şey öyrəndim, xüsusən də nə qədər mürəkkəb bir maşını dəyişdirsəniz, gündəlik əməliyyat zamanı qarşılaşacağınız daha çox problem/səhv. Əvvəlki maşın, röle modu olan sadə, köhnə 1 keçidli qəhvə maşını idi.

Circolo (tam avtomatik versiya), Dolce Gusto -nun ən yüksək keyfiyyətli maşındır. Uyğun maşını axtarmaq üçün saatlar sərf etməli oldum, çünki bu seriyadakı bütün digər maşınlar, yuxarıdakı mexaniki qolu istifadə edərək, soyuq və isti su axınlarını şəkildə göstərildiyi kimi dəyişir.

Addım 2: Doğru Maşını seçin

Doğru Maşını seçin
Doğru Maşını seçin

Mənim əsas maşınım yalnız tam avtomatik deyil, 5 dəqiqədən sonra avtomatik olaraq söndürülməsi və son qəhvə miqdarını xatırlamaq kimi əlamətdar xüsusiyyətlərə malikdir (bu, modinqdə daha sonra işləri çox asanlaşdıracaq). Maşının əsas işi:

1, Güc düyməsinə basıldı

2, Soyuq su düyməsinə basıldı (suyu dərhal kuboka dağıdır)

3, İsti su düyməsinə basıldı (qazanı ~ 20-60 saniyə qızdıracaq və fincana isti su buraxmağa başlayacaq) Güc işığı gözləmə dövründə qırmızı yanıb-sönəcək, sonra qazan hazır olduqda daimi olaraq yaşıl olur.

Bu maşın aşağıdakı səhvləri də aşkar edə bilər:

Su çəni boşdur

Kubok sahibi yerində deyil

Hər iki halda da güc işığı qırmızı/yaşıl arasında yanıb -sönəcək.

Addım 3: Avadanlıq dəyişiklikləri

Avadanlıq Dəyişiklikləri
Avadanlıq Dəyişiklikləri

Bu yazıda korpusun sökülməsi və yenidən yığılması barədə ətraflı məlumat verməyəcəyəm, çünki bu barədə YouTube -da videolar var. Əsas mikroprosessor, 2 açarın olduğu baş panelin altında gizlidir. Qazan işin sağ tərəfində, hər şeydən ayrıdır, nasos və enerji təchizatı paneli sol tərəfdədir.

Qəhvə maşını elektronika üçün ağır bir iş mühitidir, tərəflərin heç biri dövrə birləşdirmək üçün mükəmməl uyğun deyil. Qazanın sağ tərəfində daha çox yer var, ancaq istiliklə məşğul olacaqsınız, aydındır ki, dövrə qazan lövhəsinə toxuna bilmədi və ya hətta ona yaxın ola bilmədi. Mən enerji təchizatı / nasos tərəfini seçmişəm, amma burada nəzarət dövrəsini poza bilən / zaman keçdikcə telləri bağlayıcılarından çıxara bilən membran nasosunun işindən yaranan ağır rezonansla məşğul olmalısan.

Enerji təchizatı panelində faydalı bir şey yoxdur, ancaq Arduino -nun VIN pininə birbaşa qoşula bilən sabit +5V (bu maşın üçün başqa bir barmaq ucu) sızması üçün istifadə edilə bilər.

Sürətli hardware siyahısı (tam BOM deyil, əsaslar daxil deyil):

  1. Dolce Gusto Circulo tam avtomatik versiyası
  2. PIC AVR DSP üçün optocoupler ilə 5V 4 Kanal Relay Modulu (4x SIP-1A05 Reed Switch Relay istifadə etməyi təklif edirəm)
  3. Arduino Micro (gələcəkdə SparkFun Pro Micro və ya daha yenisini istifadə etməyi təklif edirəm)
  4. 2PCS 4n35 FSC Optocouplers Fototransistor
  5. 1/2 "Elektrikli Solenoid Vana Su Havası N/C Normal Bağlı DC 12V
  6. Ultrasonik Modul HC-SR04 Məsafə Ölçmə Sensoru (bəzi əlavələr alın, bunun səbəbini daha sonra görəcəksiniz)
  7. Arduino üçün 2 ədəd Yağış Damlası Nəmlik Algılama Sensoru Modulu Yağış Algılama
  8. 1 Xbee
  9. Su blokları üçün boru armaturları (evdən asılı olaraq dəyişə bilər, ən yaxşısını hardware mağazasında almaq və satın almadan əvvəl hamısını bir yerə yığmaq olar)

Addım 4: Əsas Əlaqələr və Nəzarət Kartı

Əsas Əlaqələr və Nəzarət Lövhəsi
Əsas Əlaqələr və Nəzarət Lövhəsi
Əsas Əlaqələr və Nəzarət Lövhəsi
Əsas Əlaqələr və Nəzarət Lövhəsi
Əsas Əlaqələr və Nəzarət Lövhəsi
Əsas Əlaqələr və Nəzarət Lövhəsi

Aşağıdakı dövrə nöqtələrini birləşdirmək lazımdır:

1, isti düymə

2, Soyuq düymə

3, Qırmızı led

4, Yaşıl led

5, Əsas güc düyməsi

6, Paylaşılan GND

Təəssüf ki, bunları lövhədə harada lehimləmə ilə bağlı qeydlərimi/şəkillərimi itirdim, amma hamısını bir multimetrlə asanlıqla izləmək olar (telləri geri izləmək üçün sadəcə diod test rejimindən istifadə edin). Lehim çox çətin deyildi, SMD ayaqları ilə nöqtələr seçin və oradakı telləri lehimləyin.

Qırmızı/Yaşıl LEDlər hər ikisi güc açarında bir -birinin yanında yerləşir. Maşın vəziyyətlərini təyin etmək üçün lazımdır (işlək vəziyyətdədir, qəhvə hazırlamağa hazırdır (qazan qızdırılır), səhv). Onları birbaşa ana lövhədən çıxartdım, çünki güc açarının ətrafındakı kiçik dövrə ilə fırlanmaq çətindir.

Arduino ilə etibarlı bir şəkildə əlaqə qurmaq və LED -in vəziyyətini oxumaq üçün 4N35 optocouplers istifadə edirdim. Orijinal fikir, onlardan 5 -dən istifadə etmək və həm oxunuşları, həm də keçid idarəetmələrini etmək idi (tamamilə səssiz bir dövrə etmək). Təəssüf ki, bu çip bir düyməni basmaq üçün kifayət qədər aşağı müqavimət göstərə bilmədi, buna görə də rölelərdən istifadə etmək məcburiyyətində qaldım. Əlimdə olan ümumi 4 kanallı röle modulunu istifadə etdim, amma bu layihəni yenidən etmək lazım olsaydı, Arduinonun çıxışına birbaşa qoşula bilən kiçik Reed rölelərindən (SIP-1A05 Reed Switch Relay, daxili flyback diodlu) istifadə edərdim. pinlər (~ 7mA yük), belə ki, hər şey 2 səviyyəli bir lövhə quruluşuna qoyula bilər.

5 kiçik kabel asanlıqla lövhənin altındakı elektrik kabellərinin yanına endirilə bilər.

Maşında yerdən daha səmərəli istifadə etmək üçün elektronikanı 2 əsas panelə bölmək qərarına gəldim:

Sol əsas idarəetmə lövhəsidir, sağda (kommunikasiya lövhəsi adlandırdığım) Xbee tutulur və şəkildə göstərilməsə də arxasında sıxılmış 2 su sensoru (daşqın aşkarlanması üçün). Üst tərəfdə real vaxt saatı (iş vaxtı üçün isteğe bağlı:)) və süngərə bükülmüş altdakı nasosun yanındakı yerini alan 4 kanallı röle lövhəsi də rezonasiyadan qorunmaq üçün bir az yapışdırılmışdır.

Ünsiyyət lövhəsi üçün, PCB -ni adi bir çörək taxtası istifadə etməklə narahat etmədim, çünki orada çox şey yoxdur. Ana lövhəyə 6 əlaqəsi var:

Vcc (5V), GND, Xbee (TX), Xbee (RX), Su sensoru1 (Məlumat), Su sensoru2 (Məlumat)

Addım 5: Su axınına nəzarət və yenidən doldurma mexanizmi

Su axınına nəzarət və yenidən doldurma mexanizmi
Su axınına nəzarət və yenidən doldurma mexanizmi
Su axınına nəzarət və yenidən doldurma mexanizmi
Su axınına nəzarət və yenidən doldurma mexanizmi
Su axınına nəzarət və yenidən doldurma mexanizmi
Su axınına nəzarət və yenidən doldurma mexanizmi

Bu maşını təhlükəsizliyi nəzərə alaraq hazırladım və təcavüzkarların/nasazlıqların evə ciddi su ziyanı vurmasını qeyri -mümkün etdi, çünki maşın həm krana, həm də İnternetə 24/7 bağlanacaqdı. Aşağıdakı 555 qoruma sxeminin solenoidin üstündə etdiyi budur.

Ayrıca, solenoidin 12V enerji təchizatı ilə işlədiyini və hələ də nasos və rölə lövhəsinin yanındakı qəhvə maşınının altına sıxmağı bacardığımı unutmayın. Güc itirməmək üçün 4 kanallı röle lövhəsi 230V şəbəkəsini birbaşa adapterə keçir, sonra solenoid açılacaq. Əlbəttə ki, fişini çəkərkən həm solenoiddə + həm də maqnit sahəsinin çökməsi üçün hesablamalı olduğunuz bir neçə mikrosaniyənin bağlanması gecikir.

Qəhvə aparatına gedən blokdan çıxan kiçik 3 mm uzunluğunda bir tel və kiçik diametrli bir PVC boru ilə xarici su blokunu birləşdirmək üçün standart 3,5 mm jak istifadə edirəm.

Su borusunun yuxarı hissəsi bu borunun yerləşdirilməsi üçün qazılır və sonra tankın altına enir. Qeyd edim ki, borunu ortadan keçmədən yan tərəfdən aşağıya doğru qidalandırmaq və ultrasəs sensorlarına müdaxilə etmək çox vacibdir.

Solenoidin işə salınmasından sonra dövrə ~ 4 saniyədən sonra avtomatik olaraq sönəcək (bu, tankı doldurmaq üçün kifayət qədər vaxt olmalıdır) və növbəti AÇMA dövrəsinə qədər bu vəziyyətdə qalacaq. Bu dövrə, arızalara qarşı son müdafiə xəttidir və qəhvə maşınından tamamilə ayrı işləyir. Maşında olan röle uğursuz olarsa və qapalı qalsa, su evə su basa bilər, bu qoruma ilə heç vaxt baş verə bilməz.

Əgər bu hələ də sizin üçün yetərli deyilsə və ya suyu bağlamaq mümkün deyilsə və ya su blokları ilə dalğalanmaq istəmirsinizsə, qəhvə maşınının kiçik su çənini uzatmaq üçün məhz bunun üçün tikilmiş WasserStation layihəmi nəzərdən keçirin.

Addım 6: Daşqın aşkarlanması

Daşqın aşkarlanması
Daşqın aşkarlanması
Daşqın aşkarlanması
Daşqın aşkarlanması
Daşqın aşkarlanması
Daşqın aşkarlanması

Qorumaq üçün 2 əlavə su sensoru var:

  • Sensor1: tankın arxasında tankdan daşma aşkarlanması üçün
  • Sensor2: qəhvə maşınının altındakı fincan daşmasını aşkar etmək üçün

Bu sensörlərin hər ikisi, bir milyon qəhvə hazırlamaq və evi su basması kimi bir hücumun qarşısını almaq üçün suyu dərhal bağlayan, səhv işığını yandıran və proqramın icrasını dayandıran bir fasilə verəcəkdir. Proqramdan çıxdıqdan sonra maşın artıq heç bir şeyə cavab verməyəcək və əl ilə dövrəyə alınmalıdır.

Ultrasonik sensoru su bassa nə olacağını düşünürsünüzsə (bir dəfə belə oldu:))

Su səviyyəsini bir neçə gün belə geri verirdi, amma quruduqdan sonra da bir daha dəqiq olmadı və əvəz etməli oldum. Maşın soyuq sudan axmaq üçün hazırlanmışdır, buna görə də istidən buxarlanma sensora zərər verməyəcəkdir. Bu sensor suyun səviyyəsi ondan 2-3 sm aralıda olana qədər dəqiqdir.

Tankın elliptik forması suyun səviyyəsini hesablamağı çətinləşdirdi, buna görə də faizlərə uyğun olaraq ölçülüb proqrama kodlaşdırıldı.

Addım 7: Test və Son Montaj

Test və Son Quraşdırma
Test və Son Quraşdırma
Test və Son Quraşdırma
Test və Son Quraşdırma
Test və Son Quraşdırma
Test və Son Quraşdırma

Maşın son vəziyyətindədir, demək olar ki, hər hansı bir hack izlərini gizlədir və 3 vəziyyət göstəricisi LEDləri və USB ayıklama portu orada olmasaydı, Wifi -yə qoşulmuş olsa da içəridə başqa bir şeyin baş verdiyini söyləyə bilməzsiniz. Zəlzələ serveri:)

Cihazları dəyişdirdiyim zaman həmişə əllə istifadəni ən yüksək prioritet hesab edirəm. Hack edildikdən sonra, maşın olduğu kimi hər kəs tərəfindən tamamilə istifadə edilə bilər, ancaq su anbarı asanlıqla çıxarıla bilməz. Dizaynın tam su avtomatlaşdırma hissəsini bitirmədiyiniz təqdirdə, maşın yalnız kiçik bir boru + huni birləşməsi ilə doldurula bilər.

Addım 8: Qəhvə Nəzarət Kodu

Qəhvəyə nəzarət kodu
Qəhvəyə nəzarət kodu

Aşağıda əlavə edilmiş tam Arduino mənbə kodunu tapın.

Kodun qısa izahı:

Əsas döngə, əmrlərin işlənməsi, qəhvə hazırlanması, maşının açılması/söndürülməsindən məsul olan xcomm () funksiyasını çağırır.

Aşağıdakı kod yalnız əl ilə idarə edildikdə əldə edilir. Neçə qəhvə hazırlandığını izləmək üçün stat sayacını artırır və su anbarını avtomatik doldurur.

Əmrlər Xbee və ya USB portu üzərindən göndərilə bilər (Debugun əvvəlində aktivləşdirilməlidir). Ünsiyyət ya portağaldan gəldikdə şəbəkə fəaliyyətini göstərmək üçün bir saniyə ərzində yanıb -sönür. Aşağıdakı əmrlər tətbiq olunur:

1, CMSTAT - maşından statistika sorğusu

Maşın, neçə isti/soyuq/əl qəhvəsi hazırlandığı ilə bağlı statistikanı saxlayır və eyni zamanda 3 gündən sonra daşmayan RTC -dən işləmə müddətini alır və buna görə illərlə gedə bilər: P

2, CMWSTART - isti su ilə qəhvə və isti içkilər hazırlamağa başlayır

3, CMCSTART - soyuq su ilə buzlu çay və soyuq içkilər hazırlamağa başlayır

İsti və soyuq proseslər, sonrakı yoxlamaları yerinə yetirən gözləmə () funksiyasını çağırmaqla başlayır və sonra güc düyməsinə basmağa səbəb olur. Bundan sonra proqram yaşıl işığı gözləyir (qazan qızdırıldıqda), sonra isti/soyuq düyməni basaraq emulyasiya edir. Bundan sonra 50 saniyə gözləyir (bu, hətta ən böyük fincan qəhvə üçün kifayət qədərdir), sonra gücü söndürür. Qəhvə hazırlandıqdan 5 dəqiqə sonra bu əla maşın avtomatik olaraq sönəcək, amma niyə güc itirməli? Yeri gəlmişkən, modifikasiyadan sonra da maşının gözləmə gücü istehlakı 2 vattdan azdır.

Su doldurma və təhlükəsizlik

Bu maşın təhlükəsizlik nəzərə alınmaqla hazırlanmışdır, buna görə də nəzarəti ələ keçirən bir təcavüzkarın bütün evi su ilə doldurması mümkün olmazdı. Bir hardware çatışmazlığı da ciddi ziyanla nəticələnməyəcək. Avadanlıq sensörlərinin yanında, doldurma koduna daxil edilmiş qorunmalar var. Maşın x saniyədə doldurulmasa ISR rejimini işə salan sayğac (məsələn, ultrasəs sensoru nasaz olarsa və doldurmağa başladıqdan sonra x saniyədən sonra 20% verərsə) baş verə bilər).

Doğrulama yoxdur, əmrləri bilən radio diapazonundakı hər kəs maşından istifadə edə bilər, buna görə standart Xbee piconet ID -ni başqa bir şeyə dəyişdirdim, ERR_INVALIDCMD də şərh edilə bilər və maşın naməlum əmrləri görməyəcək.

Səhvlər

İkiqat qəhvə böcəyi: Bu böcəyin ən əsəbiləşən tərəfi, eyni kodla maşını istifadə etdikdən bir neçə ay sonra baş verməsidir. Qəhvə əmri verildikdən sonra qəhvəni hazırladı, söndürdü və yenidən yandırdı və eyni patronla daha 1 qəhvə hazırlamağa davam etdi.

Android səviyyəsindən əmrlərin təkrarlanmasını düzəltməyə başlamalı oldum, çünki paket itkisi halında kodu yenidən göndərməyi həyata keçirdim. Məlum oldu ki, nə Android, nə C nəzarət proqramı, nə də raspi2 üzərindəki Linux nüvəsi bunun əvəzinə Xbee -dən məsuldur.

Nəzarət qovşağında "CMCSTART">/dev/ttyACM0 əks -sədası verildikdən sonra digər ucuna iki dəfə çıxır. Evdəki 2.4Ghz spektrimin bu diapazonda olan bir çox radio cihazından doymağa başladığını və nəticədə bir Xbee -nin radio qatında bir növ yenidən göndərməyə səbəb olduğunu və məlumatların iki dəfə göndərildiyini (həmişə deyil) nəticəyə gəldim. İlk əmr maşınlara gəldikdən sonra xcomm () funksiyası onu emal etməyə başladı, lakin ikinci bir əmr dərhal sonra Xbees tamponunda gözlədi və döngə bitdikdə ikinci əmri emal etməyə başladı. Bu problemi həll etmək üçün kodda 2 dəqiqə ərzində 1 -dən çox qəhvə hazırlamağı qeyri -mümkün etmək üçün 3 eşik təyin etdim. CMSTAT -da bir məhdudiyyət var, ancaq C/Android nəzarət koduna müdaxilə etməmək üçün cavabları 2 saniyə ərzində sıxışdıracaq.

Qəhvə sayğacına son hədd qoyuldu, çünki maşın hazır vəziyyətə çatdıqda (qazan qızdırılır, yaşıl işıq), yaşıl hadisəni qəhvə sayını yüz dəfə dəfələrlə qeyd etdi.

Addım 9: Dizayn mülahizələri və yekun düşüncələr

Xbee ünsiyyətində bir çox problemdən sonra Xbee -ni bu layihə üçün tövsiyə etməzdim. İstər sabitlik üçün standart ucuz 433Mhz radio istifadə etsəniz, istərsə də Wifi bağlantısı olan bir Moruq PI Zero qəhvə maşınının içinə qoyun.

Tarixin köhnə bir layihə olduğunu göstərdiyinə görə, nəzarət sxemindən anakartdakı dəqiq pin ayaqlarına olan əlaqə kimi çatışmayan kiçik detallar üçün üzr istəyirəm. Bu layihənin müstəqil olaraq həyata keçirilməsi üçün müəyyən səviyyədə texniki bilik tələb olunur. Hər hansı bir səhv/problem tapsanız və ya bu dərsliyə kömək etmək istəyirsinizsə, mənə bildirin.

Nəzarət proqramı, səsli idarəetmə üsulları, yatağınızdan qalxmadan əvvəl qəhvənizi yalnız səsli əmrlə hazırlamağı mümkün edəcək başqa bir hissəyə aiddir.

İndi su saxlama sistemimin (WasserStation) sənədlərini tamamladım və CoffeeControlCode -u avtomatik doldurma da daxil olmaqla son versiyaya yenilədim. Tikinti üçün eyni maşından istifadə etsəniz, su səviyyəsi Circolo su çənində kalibr edildiyindən dolum qüsursuz işləyəcək (kodda heç bir dəyişiklik edilmədən).

Tövsiyə: