İçindekiler:

JavaStation (Kendi Kendini Dolduran Tam Otomatik IoT Kahve Makinesi): 9 Adım (Resimlerle)
JavaStation (Kendi Kendini Dolduran Tam Otomatik IoT Kahve Makinesi): 9 Adım (Resimlerle)

Video: JavaStation (Kendi Kendini Dolduran Tam Otomatik IoT Kahve Makinesi): 9 Adım (Resimlerle)

Video: JavaStation (Kendi Kendini Dolduran Tam Otomatik IoT Kahve Makinesi): 9 Adım (Resimlerle)
Video: TUTUNAMAYANLAR: TARİHTEKİ EN KÖTÜ İŞLETİM SİSTEMLERİ 2024, Temmuz
Anonim
JavaStation (Kendi Kendini Dolduran Tam Otomatik IoT Kahve Makinesi)
JavaStation (Kendi Kendini Dolduran Tam Otomatik IoT Kahve Makinesi)
JavaStation (Kendi Kendini Dolduran Tam Otomatik IoT Kahve Makinesi)
JavaStation (Kendi Kendini Dolduran Tam Otomatik IoT Kahve Makinesi)
JavaStation (Kendi Kendini Dolduran Tam Otomatik IoT Kahve Makinesi)
JavaStation (Kendi Kendini Dolduran Tam Otomatik IoT Kahve Makinesi)

Bu projenin amacı, kendini suyla otomatik olarak dolduran tam otomatik ses kontrollü bir kahve makinesi yapmaktı ve gerçekten yapmanız gereken tek şey patronları değiştirmek ve kahvenizi içmek;)

Adım 1: Giriş

Tanıtım
Tanıtım

Bu benim ikinci kahve modum olduğu için süreçte çok şey öğrendim, özellikle de ne kadar karmaşık makineyi değiştirirseniz, günlük operasyon sırasında karşılaşacağınız daha fazla sorun/hata o kadar fazla olur. Önceki makine, röle modlu basit, eski bir 1 anahtarlı kahve makinesiydi.

Circolo (tam otomatik versiyon), Dolce Gusto'nun birinci sınıf birinci sınıf makinesidir. Uygun makineyi aramak için saatler harcamak zorunda kaldım çünkü bu serideki diğer tüm makineler, resimde gösterildiği gibi soğuk ve sıcak su akışları arasında geçiş yapmak için üst mekanik kolu kullanıyor.

Adım 2: Doğru Makineyi Seçin

Doğru Makineyi Seçin
Doğru Makineyi Seçin

Ana makinem sadece tam otomatik değil, 5 dakika sonra otomatik olarak kapanma ve son kahve miktarını hatırlama gibi dikkat çekici özelliklere sahip (ki bu modlamada daha sonra işleri çok daha kolay hale getirecek). Makinenin temel çalışması:

1, Güç düğmesine basıldı

2, Soğuk su düğmesine basıldı (suyu hemen bardağa dağıtır)

3, Sıcak su tuşuna basıldı (~20-60 sn. kazanı ısıtır ve bardağa sıcak su vermeye başlar) Güç ışığı, bekleme süresi boyunca kırmızı renkte yanıp sönecek ve kazan hazır olduğunda sürekli olarak yeşile dönecektir.

Bu makine ayrıca aşağıdaki hataları tespit etme yeteneğine de sahiptir:

Su deposu boş

Bardak tutucu yerinde değil

Her iki durumda da güç ışığı kırmızı/yeşil arasında yanıp sönecektir.

3. Adım: Donanım Değişiklikleri

Donanım Değişiklikleri
Donanım Değişiklikleri

Bu yazımda kasanın sökme ve takma işlemlerini detaylandırmayacağım çünkü YouTube'da bununla ilgili videolar var. Ana mikroişlemci, 2 anahtarın bulunduğu kafa panelinin hemen altına gizlenmiştir. Kazan, kasanın sağ tarafında her şeyden ayrılmış, pompa ve güç kaynağı panosu sol taraftadır.

Kahve makinesi elektronik için ağır iş ortamıdır, yanların hiçbiri devre entegre etmek için mükemmel şekilde uygun değildir. Kazanın sağ tarafında daha fazla yer var ama ısı ile uğraşacaksınız, belli ki devre kazan plakasına dokunamamış hatta yanına bile yaklaşamamış. Güç kaynağı/pompa tarafını seçtim ama burada membran pompasının çalışmasından gelen ve kontrol devresini bozabilecek / zamanla kabloların konektörlerinden kaymasına neden olabilecek ağır rezonansla uğraşmak zorundasınız.

Güç kaynağı paneli yararlı bir şey içermez, ancak yerleşik voltaj regülatörünü atlayarak doğrudan Arduino'nun VIN pinine bağlanabilen kararlı bir + 5V'yi (bu makine için bir başparmak daha fazla) sülüklemek için kullanılabilir.

Hızlı donanım listesi (tam ürün reçetesi değil, temel bilgileri içermez):

  1. Dolce Gusto Circulo tam otomatik versiyon
  2. PIC AVR DSP için optokuplörlü 5V 4 Kanal Röle Modülü (4x SIP-1A05 Reed Switch Röle kullanmanızı öneririm)
  3. Arduino Micro (Gelecekte SparkFun Pro Micro veya daha yenisini kullanmanızı öneririm)
  4. 2 ADET 4n35 FSC Optokuplörler Fototransistör
  5. 1/2" Elektrikli Solenoid Valf Su İçin Hava N/C Normalde Kapalı DC 12V
  6. Ultrasonik Modül HC-SR04 Mesafe Ölçüm Dönüştürücü Sensörü (bazı ekstralar satın alın, nedenini daha sonra göreceksiniz)
  7. Arduino için 2 adet Yağmur Damlası Nem Algılama Sensörü Modülü Yağmur Algılama
  8. 1 Xbee
  9. Su blokları için boru bağlantı parçaları (evden eve göre değişebilir, en iyisi hırdavatçıdan satın almak ve satın almadan önce hepsini bir araya getirmek)

Adım 4: Ana Bağlantılar ve Denetleyici Kartı

Ana Bağlantılar ve Kontrol Kartı
Ana Bağlantılar ve Kontrol Kartı
Ana Bağlantılar ve Kontrol Kartı
Ana Bağlantılar ve Kontrol Kartı
Ana Bağlantılar ve Kontrol Kartı
Ana Bağlantılar ve Kontrol Kartı

Aşağıdaki devre noktalarının bağlanması gerekir:

1, Sıcak düğme

2, Soğuk düğme

3, Kırmızı led

4, Yeşil led

5, Ana güç açma düğmesi

6, Paylaşılan GND

Maalesef bunları tahtada nereye lehimleyeceğime dair notlarımı/resimlerimi kaybettim ama hepsi bir multimetre ile kolayca izlenebilir (kabloları geri izlemek için sadece diyot test modunu kullanın). Lehimleme çok zor olmadı, SMD ayaklarla noktalar alın ve telleri orada lehimleyin.

Kırmızı/Yeşil LED'lerin her ikisi de güç anahtarında yan yana bulunur. Makine durumlarını (açık, kahve yapmaya hazır (kazan ısıtılmış), hata) belirlemek için gereklidirler. Güç anahtarının etrafındaki küçük devre ile uğraşmak zor olduğu için onları doğrudan ana karttan çıkardım.

Arduino ile güvenli bir şekilde arayüz oluşturmak ve LED'in durumlarını okumak için 4N35'in optokuplörlerini kullanıyordum. Orijinal fikir bunlardan 5 tanesini kullanmak ve hem okumaları hem de anahtar kontrollerini yapmaktı (tamamen sessiz bir devre yapmak). Ne yazık ki bu çip, bir düğmeye basmayı taklit etmek için yeterince düşük direnç üretemedi, bu yüzden röle kullanmak zorunda kaldım. Ben elimdeki 4 kanallı röle modülünü kullandım ama bu projeyi yeniden yapmak zorunda kalırsam, Arduino'nun çıkışına doğrudan bağlanabilen küçük Reed röleleri (SIP-1A05 Dahili flyback diyotları ile SIP-1A05 Reed Switch Relay) kullanırdım. pinler (~7mA yük) sayesinde her şey 2 seviyeli bir pano yapısına yerleştirilebilir.

5 küçük kablo, besleme panosunun altındaki güç kablolarının yanına kolayca indirilebilir.

Makinedeki alanı daha verimli kullanmak için elektroniği 2 ana panele ayırmaya karar verdim:

Soldaki ana kontrol panosu, sağdaki (iletişim panosu dediğim) Xbee'yi tutar ve resimde gösterilmemesine rağmen arkasına 2 su sensörü (taşma tespiti için) sıkıştırılmıştır. Üstte gerçek zaman saati (opsiyonel uptime için:)) ve altta pompanın yanında yer alan 4 kanallı röle kartı süngere sarılı, ayrıca rezonasyondan korumak için biraz tutkallı.

İletişim panosu için, PCB'yi normal bir devre tahtası kullanarak yapmakla uğraşmadım çünkü orada pek bir şey olmuyor. Ana karta 6 bağlantısı vardır:

Vcc (5V), GND, Xbee (TX), Xbee (RX), Su sensörü1 (Veri), Su sensörü2 (Veri)

Adım 5: Su Akış Kontrolü ve Dolum Mekanizması

Su Akış Kontrolü ve Dolum Mekanizması
Su Akış Kontrolü ve Dolum Mekanizması
Su Akış Kontrolü ve Dolum Mekanizması
Su Akış Kontrolü ve Dolum Mekanizması
Su Akış Kontrolü ve Dolum Mekanizması
Su Akış Kontrolü ve Dolum Mekanizması

Bu makineyi güvenliği göz önünde bulundurarak tasarladım, makine 7/24 hem musluğa hem de İnternete bağlı olacağından, saldırganların/arızaların evde ciddi su hasarına yol açmasını imkansız hale getirdim. Aşağıdaki 555 koruma devresinin solenoidin üzerinde yaptığı şey budur.

Ayrıca, solenoidin, pompanın ve röle kartının yanındaki kahve makinesinin altına sıkıştırmayı başardığım bir 12V güç kaynağından çalıştığını da unutmayın. Gücü boşa harcamamak için 4 kanallı röle kartı 230V ana şebekeyi doğrudan solenoidi açacak olan adaptöre geçirir. Fişi çekerken adaptör üzerindeki hem solenoid + üzerindeki manyetik alanın çökmesi için hesaplamanız gereken elbette birkaç mikrosaniyelik kapanma gecikmesi vardır.

Dış su bloğunu uzun bir 3m tel ve bloktan kahve makinesine giden küçük çaplı bir PVC boru ile bağlamak için standart bir 3,5 mm jak kullanıyorum.

Su tankının üst kısmı, bu boruyu yerleştirmek için delinir ve daha sonra tankın dibine indirilir. Ortadan geçmeden boruyu yan taraftan aşağıya doğru beslemenin ve ultrasonik sensörlere müdahale etmenin çok önemli olduğunu belirtmek isterim.

Solenoid açıldıktan sonra devre ~ 4 saniye sonra otomatik olarak kapanacaktır (bu, tankı tam olarak doldurmak için yeterli süreden fazla olmalıdır) ve bir sonraki güç AÇIK çevrimine kadar bu durumda kalır. Bu devre arızaya karşı son savunma hattıdır ve kahve makinesinden tamamen bağımsız olarak çalışır. Makinedeki röle arızalanır ve kapalı kalırsa, su evi taşabilir, bu koruma ile asla gerçekleşemez.

Bu hala sizin için yeterince iyi değilse veya suyu kapatmak imkansızsa veya su bloklarıyla uğraşmak istemiyorsanız, kahve makinesinin küçük su haznesini genişletmek için tam olarak bunun için yapılmış WasserStation projeme bakın.

6. Adım: Sel Tespiti

Sel Algılama
Sel Algılama
Sel Algılama
Sel Algılama
Sel Algılama
Sel Algılama

Koruma için 2 ek su sensörü vardır:

  • Sensör1: Tanktan taşma tespiti için tankın arkasında
  • Sensor2: fincan taşma tespiti için kahve makinesinin altında

Bu sensörlerin her ikisi de, bir milyon kahve yapmak ve evi bu şekilde su basmak gibi bir saldırıyı önlemek için suyu hemen kapatan, hata ışığını açan ve program yürütmeyi durduran bir kesintiyi tetikleyecektir. Programdan çıktıktan sonra makine artık hiçbir şeye yanıt vermeyecektir ve manuel olarak yeniden çalıştırılması gerekir.

Ultrasonik sensör su basarsa ne olur diye merak ediyorsanız (bir kere oldu:))

Birkaç gün boyunca su seviyesini bu şekilde geri veriyordu ama kuruduktan sonra bile bir daha asla doğru olmadı ve değiştirmek zorunda kaldım. Makine, soğuk musluk suyundan çalışacak şekilde tasarlanmıştır, böylece sıcaktan gelen buhar sensöre zarar vermez. Bu sensör sadece su seviyesi ondan 2-3 cm uzakta olana kadar doğrudur.

Tankın eliptik şekli, su seviyesi hesaplamalarını zorlaştırdı, bu yüzden bunlar ölçüldü ve yüzdelere karşılık gelecek şekilde programa kodlandı.

7. Adım: Test Etme ve Son Montaj

Test ve Son Montaj
Test ve Son Montaj
Test ve Son Montaj
Test ve Son Montaj
Test ve Son Montaj
Test ve Son Montaj

Makine son durumunda, herhangi bir bilgisayar korsanlığının izlerini neredeyse tamamen gizler ve 3 durum göstergesi LED'i ve USB hata ayıklama bağlantı noktası orada olmazsa, bir Wifi bağlı olsa bile içeride başka bir şeyin olup bittiğini söyleyemezdiniz. Quake sunucusu:)

Cihazları değiştirdiğimde, manuel kullanımı her zaman birinci öncelik olarak tutarım. Saldırıdan sonra, su tankının kolayca çıkarılamaması dışında, makine olduğu gibi herkes tarafından tamamen kullanılabilir. Tasarımın komple su otomasyonu kısmını bitirmediğiniz sürece, bu noktada makine ancak küçük bir boru + huni kombinasyonu ile doldurulabilir.

Adım 8: Kahve Kontrol Kodu

Kahve Kontrol Kodu
Kahve Kontrol Kodu

Aşağıda ekli tam Arduino kaynak kodunu bulun.

Kodun kısa açıklaması:

Ana döngü, komut işleme, kahve yapma, makineyi açma/kapama işlemlerinden sorumlu olan xcomm() işlevini çağırır.

Alttaki koda sadece manuel kontrol durumunda ulaşılır. Kaç tane kahve yapıldığını takip etmek için bir istatistik sayacını arttırır ve su tankını otomatik olarak doldurur.

Komutlar, Xbee veya USB bağlantı noktası üzerinden gönderilebilir (Başlangıçta Hata Ayıklama etkinleştirilmelidir). Herhangi birinden iletişim geldiğinde, ağ etkinliğini göstermek için turuncu led bir saniye yanıp söner. Aşağıdaki komutlar uygulanır:

1, CMSTAT – makineden istatistik sorgusu

Makine, kaç sıcak/soğuk/manuel kahve yapıldığına ilişkin istatistikleri saklar ve ayrıca 3x günden sonra taşmayan ve yıllara kadar çıkabilen RTC'den çalışma süresini alır: P

2, CMWSTART – sıcak su ile kahve ve sıcak içecekler yapmaya başlar

3, CMCSTART – soğuk su ile buzlu çay ve soğuk içecekler yapmaya başlar

Sıcak ve soğuk işlemler, daha fazla kontrol yapan ve ardından bir güç düğmesine basmayı tetikleyen standby() işlevinin çağrılmasıyla başlar. Bundan sonra program yeşil ışığı bekler (kazan ısındığında) ardından sıcak/soğuk düğmesine basmayı taklit eder. Bundan sonra 50 saniye (en büyük fincan kahve için bile fazlasıyla yeterli) bekler ve ardından gücü kapatır. Bu mükemmel makine kahveyi yaptıktan 5 dakika sonra otomatik olarak kapanacağından buna gerek bile kalmayacaktı ama neden güç israfına? Bu arada, modifikasyondan sonra bile makinenin beklemedeki güç tüketimi 2 Watt'tan azdır.

Su doldurma ve güvenlik

Bu makine güvenlik düşünülerek tasarlandı, bu nedenle kontrolü ele geçiren bir saldırganın tüm evi suyla doldurması imkansız olurdu. Bir donanım arızası da ciddi hasarlara neden olmaz. Donanım sensörlerinin yanında, yeniden doldurma kodunun içine yerleştirilmiş korumalar vardır. Makine x saniyede yeniden doldurulmazsa ISR rutinini tetikleyen bir sayaç (bu, örneğin ultrasonik sensör arızalanırsa ve yeniden doldurma başlatıldıktan sonra x saniye sonra %20 verirse olabilir).

Kimlik doğrulama yok, komutları bilen herkes makineyi radyo aralığında kullanabilir, bu yüzden varsayılan Xbee piconet kimliğini başka bir şeyle değiştirdim, ayrıca ERR_INVALIDCMD yorumlanabilir ve makine bilinmeyen komutları yok sayar.

Hatalar

Çift kahve böceği: Bu hatanın en can sıkıcı yanı, makineyi aynı kodla kullandıktan birkaç ay sonra olmaya başlamasıdır. Kahve komutu verildikten sonra kahveyi yaptı, kapatıp tekrar açtı ve aynı patronla 1 kahve daha yapmaya devam etti.

Paket kaybı durumunda koda yeniden göndermeyi uyguladığım için Android düzeyinden komut çoğaltma hatalarını ayıklamaya başlamam gerekiyordu. Bundan Xbee yerine ne android, C kontrol yazılımı ne de raspi2 üzerindeki Linux çekirdeğinin sorumlu olmadığı ortaya çıktı.

Kontrol düğümünde echo “CMCSTART”>/dev/ttyACM0 yayınladıktan sonra diğer uca iki kez çıkar. Evimdeki 2.4Ghz spektrumumun, bu aralıktaki birçok radyo cihazından doymaya başladığı ve bunun bir Xbee'nin radyo katmanında bir tür yeniden gönderme başlatmasına neden olduğu ve verilerin iki kez (her zaman değil) gönderildiği sonucuna vardım. İlk komut makineye geldiğinde xcomm() işlevi onu işlemeye başladı, ancak hemen ardından Xbees arabelleğinde bekleyen ikinci bir komut geldi ve döngü bittiğinde ikinci komutu işlemeye başladı. Bu sorunu aşmak için, 2 dakikada 1'den fazla kahve yapmayı imkansız kılmak için koda 3 eşik ekledim. Ayrıca CMSTAT'ta bir sınır vardır, ancak C/Android kontrol koduna müdahale etmemek için yanıtları 2 saniye boyunca susturur.

Manuel kahve sayacı için son eşik konuldu, çünkü makine hazır duruma ulaştığında (kazan ısıtıldı, yeşil ışık) yeşil olayı yüzlerce kez kahve sayımını artırdı.

9. Adım: Tasarım Konuları ve Son Düşünceler

Xbee iletişiminden kaynaklanan bir sürü sorundan sonra bu proje için Xbee'yi tavsiye etmem. Ya stabilite için VirtualWire ve düşük Bps ile standart ucuz 433Mhz radyoyu kullanın ya da Wifi bağlantılı bir Raspberry PI Zero'yu doğrudan kahve makinesine gömün.

Tarihin gösterdiği gibi, eski bir proje olduğundan, kontrol devresinden anakart üzerindeki hassas pin ayaklarına bağlantı gibi eksik olan küçük detaylar için özür dilerim. Bu proje, kendi başınıza yapmak için belirli bir düzeyde teknik bilgi gerektirir. Herhangi bir hata/sorun bulursanız veya bu eğitime katkıda bulunmak isterseniz lütfen bana bildirin.

Kontrol yazılımı, sesli kontrol yöntemleri ise daha yataktan kalkmadan sesli komutla kahvenizi hazır hale getirmenizi sağlayacak bir diğer kısım.

Artık su depolama sistemimin (WasserStation) belgelerini tamamladım ve CoffeeControlCode'u otomatik yeniden doldurmayı da içeren en son sürüme güncelledim. Yapı için aynı makineyi kullanırsanız, su seviyeleri Circolo'nun su deposuna kalibre edildiğinden, yeniden doldurma kusursuz bir şekilde (kodda herhangi bir değişiklik yapmadan) çalışacaktır.

Önerilen: