Daftar Isi:

JavaStation (Self-Refilling Fully Automatic IoT Coffee Maker): 9 Langkah (dengan Gambar)
JavaStation (Self-Refilling Fully Automatic IoT Coffee Maker): 9 Langkah (dengan Gambar)

Video: JavaStation (Self-Refilling Fully Automatic IoT Coffee Maker): 9 Langkah (dengan Gambar)

Video: JavaStation (Self-Refilling Fully Automatic IoT Coffee Maker): 9 Langkah (dengan Gambar)
Video: The computer designed to only run Java Applets - Sun JavaStation 2024, Juli
Anonim
JavaStation (Pembuat Kopi IoT Otomatis Isi Ulang Otomatis)
JavaStation (Pembuat Kopi IoT Otomatis Isi Ulang Otomatis)
JavaStation (Pembuat Kopi IoT Otomatis Isi Ulang Otomatis)
JavaStation (Pembuat Kopi IoT Otomatis Isi Ulang Otomatis)
JavaStation (Pembuat Kopi IoT Otomatis Isi Ulang Otomatis)
JavaStation (Pembuat Kopi IoT Otomatis Isi Ulang Otomatis)

Tujuan dari proyek ini adalah untuk membuat pembuat kopi yang dikendalikan suara sepenuhnya otomatis yang secara otomatis mengisi ulang dirinya sendiri dengan air dan yang perlu Anda lakukan hanyalah mengganti pelindung dan meminum kopi Anda;)

Langkah 1: Pendahuluan

pengantar
pengantar

Karena ini adalah mod kopi kedua saya, saya telah belajar banyak dalam prosesnya, terutama bahwa semakin kompleks mesin yang Anda modifikasi, semakin banyak masalah/bug yang akan Anda temui selama operasi sehari-hari. Mesin sebelumnya hanyalah pembuat kopi tua sederhana 1 sakelar dengan mod relai.

Circolo (versi otomatis penuh) adalah mesin premium teratas dari Dolce Gusto. Saya harus menghabiskan waktu berjam-jam untuk mencari mesin yang tepat karena semua mesin lain dari seri ini menggunakan tuas mekanis atas untuk beralih antara aliran air dingin dan panas seperti yang ditunjukkan pada gambar.

Langkah 2: Pilih Mesin yang Tepat

Pilih Mesin yang Tepat
Pilih Mesin yang Tepat

Mesin dasar saya tidak hanya sepenuhnya otomatis tetapi memiliki fitur luar biasa seperti mati secara otomatis setelah 5 menit dan mengingat jumlah kopi terakhir (yang akan membuat segalanya lebih mudah nanti dalam modding). Operasi dasar mesin:

1, tombol Power ditekan

2, tombol air dingin ditekan (akan segera menyebarkan air ke cangkir)

3, Tombol air panas ditekan (akan memanaskan ketel ~ 20-60 detik dan mulai mengeluarkan air panas ke cangkir) Lampu daya akan berkedip merah selama periode siaga kemudian menyala hijau secara permanen saat ketel siap.

Mesin ini juga memiliki kemampuan untuk mendeteksi kesalahan berikut:

Tangki air kosong

Tempat cangkir tidak ada di tempatnya

Dalam kedua kasus, lampu daya akan berkedip antara merah/hijau.

Langkah 3: Modifikasi Perangkat Keras

Modifikasi Perangkat Keras
Modifikasi Perangkat Keras

Dalam tulisan ini saya tidak akan merinci pembongkaran dan pemasangan kembali case karena ada video tentangnya di YouTube. Mikroprosesor utama tersembunyi tepat di bawah panel kepala tempat 2 sakelar berada. Ketel berada di sisi kanan kasing terpisah dari yang lainnya, panel pompa dan catu daya berada di sisi kiri.

Mesin kopi adalah lingkungan tugas berat untuk elektronik, tidak ada sisi yang sangat cocok untuk mengintegrasikan sirkuit. Kanan di boiler memiliki lebih banyak ruang tetapi Anda akan berurusan dengan panas, jelas sirkuit tidak bisa menyentuh pelat boiler atau bahkan di dekatnya. Saya telah memilih sisi catu daya / pompa tetapi di sini Anda harus berurusan dengan resonansi berat yang berasal dari pengoperasian pompa membran yang dapat merusak sirkuit kontrol / membuat kabel terlepas dari konektornya seiring waktu.

Panel catu daya tidak mengandung sesuatu yang berguna tetapi dapat digunakan untuk melepaskan +5V yang stabil (satu jempol lagi untuk mesin ini) yang dapat langsung dihubungkan ke pin VIN Arduino melewati regulator tegangan terpasang.

Daftar perangkat keras cepat (bukan BOM lengkap, tidak termasuk dasar-dasar):

  1. Dolce Gusto Circulo versi otomatis penuh
  2. 5V 4 Channel Relay Module Dengan optocoupler Untuk PIC AVR DSP (Saya sarankan menggunakan 4x SIP-1A05 Reed Switch Relay)
  3. Arduino Micro (saya sarankan menggunakan SparkFun Pro Micro atau yang lebih baru di masa mendatang)
  4. 2 PCS 4n35 FSC Optocoupler Fototransistor
  5. 1/2 "Katup Solenoid Listrik Untuk Air Air N / C Biasanya Tertutup DC 12V
  6. Modul Ultrasonik Sensor Transduser Pengukur Jarak HC-SR04 (beli beberapa tambahan, Anda akan melihat alasannya nanti)
  7. 2 pcs Raindrop Humidity Detection Sensor Modul Deteksi Hujan untuk Arduino
  8. 1 Xbee
  9. Alat kelengkapan pipa untuk blok air (dapat bervariasi tergantung pada satu rumah, terbaik untuk membelinya di toko perangkat keras dan mengumpulkan semuanya di sana sebelum membeli)

Langkah 4: Koneksi Utama dan Papan Pengontrol

Koneksi Utama dan Papan Pengontrol
Koneksi Utama dan Papan Pengontrol
Koneksi Utama dan Papan Pengontrol
Koneksi Utama dan Papan Pengontrol
Koneksi Utama dan Papan Pengontrol
Koneksi Utama dan Papan Pengontrol

Poin sirkuit berikut perlu dihubungkan:

1, tombol panas

2, tombol Dingin

3, dipimpin merah

4, dipimpin hijau

5, tombol daya utama

6, Berbagi GND

Sayangnya saya telah kehilangan catatan / gambar saya di mana untuk menyolder ini di papan tetapi semua dapat dengan mudah dilacak kembali dengan multimeter (cukup gunakan mode uji dioda untuk melacak kabel kembali). Penyolderan tidak terlalu sulit, pilih titik dengan kaki SMD dan solder kabel di sana.

LED Merah/Hijau keduanya terletak bersebelahan di sakelar daya. Mereka diperlukan untuk menentukan status mesin (dinyalakan, siap membuat kopi (boiler dipanaskan), kesalahan). Saya telah melepasnya langsung dari papan utama, karena sulit untuk mengutak-atik sirkuit kecil di sekitar sakelar daya.

Saya menggunakan optocoupler 4N35 untuk berinteraksi dengan Arduino dengan aman dan membaca status LED. Ide awalnya adalah untuk menggunakan 5 dari mereka dan melakukan pembacaan dan kontrol saklar juga (membuat sirkuit yang benar-benar senyap). Sayangnya chip ini tidak dapat menghasilkan resistansi yang cukup rendah untuk meniru penekanan tombol sehingga saya terpaksa menggunakan relai. Saya menggunakan modul relai 4 saluran generik yang saya miliki tetapi jika saya harus mengulang proyek ini, saya hanya akan menggunakan relai Reed kecil (SIP-1A05 Reed Switch Reed dengan dioda flyback internal) yang dapat langsung dihubungkan ke output Arduino pin (~ 7mA beban) sehingga semuanya dapat diletakkan pada struktur papan 2 tingkat.

5 kabel kecil dapat dengan mudah diletakkan di sebelah kabel daya di bawah papan suplai.

Untuk menggunakan ruang lebih efisien di dalam mesin, saya memutuskan untuk membagi elektronik menjadi 2 panel utama:

Kiri adalah papan kontrol utama, kanan (yang saya sebut papan komunikasi) memegang Xbee dan meskipun tidak ditampilkan pada gambar, 2 sensor air (untuk deteksi luapan) terjepit di belakangnya. Di atas jam waktu nyata (opsional untuk waktu aktif:)) dan papan relai 4 saluran yang ditempatkan di sebelah pompa di bagian bawah dibungkus dengan spons, juga direkatkan sedikit untuk melindungi dari resonansi.

Untuk papan komunikasi, saya tidak repot membuat PCB hanya menggunakan papan tempat memotong roti biasa karena tidak banyak yang terjadi di sana. Ini memiliki 6 koneksi ke papan utama:

Vcc (5V), GND, Xbee (TX), Xbee (RX), Sensor air1 (Data), Sensor air2 (Data)

Langkah 5: Kontrol Aliran Air dan Mekanisme Isi Ulang

Kontrol Aliran Air dan Mekanisme Isi Ulang
Kontrol Aliran Air dan Mekanisme Isi Ulang
Kontrol Aliran Air dan Mekanisme Isi Ulang
Kontrol Aliran Air dan Mekanisme Isi Ulang
Kontrol Aliran Air dan Mekanisme Isi Ulang
Kontrol Aliran Air dan Mekanisme Isi Ulang

Saya telah merancang mesin ini dengan mempertimbangkan keamanan, sehingga penyerang/malfungsi tidak mungkin menyebabkan kerusakan air yang serius pada rumah karena mesin akan terhubung ke keran dan Internet 24/7. Inilah yang dilakukan rangkaian proteksi 555 berikut di atas solenoida.

Perhatikan juga bahwa solenoida beroperasi dari catu daya 12V yang masih berhasil saya tekan ke bagian bawah mesin kopi di sebelah pompa dan papan relai. Agar tidak menyia-nyiakan daya, papan relai 4 saluran mengalihkan arus utama 230V langsung ke adaptor yang kemudian akan menyalakan solenoid. Tentu saja ada penundaan mati beberapa mikrodetik yang harus Anda hitung untuk runtuhnya medan magnet baik pada solenoida + pada adaptor saat menarik steker.

Saya menggunakan jack 3.5mm standar untuk menghubungkan blok air eksternal dengan kabel panjang 3m dan pipa PVC berdiameter kecil yang keluar dari blok menuju pembuat kopi.

Bagian atas tangki air dibor untuk menampung pipa ini yang kemudian dibawa ke bagian bawah tangki. Saya akan mencatat bahwa sangat penting untuk memberi makan pipa ke bawah di samping tanpa melalui tengah dan mengganggu sensor ultrasonik.

Setelah solenoid dinyalakan, sirkuit akan mati secara otomatis setelah ~ 4 detik (yang seharusnya lebih dari cukup waktu untuk mengisi tangki hingga penuh) dan tetap dalam kondisi ini hingga siklus ON berikutnya. Sirkuit ini adalah garis pertahanan terakhir terhadap kerusakan dan beroperasi sepenuhnya mandiri dari pembuat kopi. Jika relay di mesin akan gagal dan tetap tertutup air bisa membanjiri rumah, dengan perlindungan ini tidak akan pernah terjadi.

Jika ini masih tidak cukup baik untuk Anda atau tidak mungkin untuk menutup air atau Anda tidak ingin bermain-main dengan blok air periksa proyek WasserStation saya yang dibangun persis untuk ini untuk memperpanjang tangki air kecil dari mesin kopi.

Langkah 6: Deteksi Banjir

Deteksi Banjir
Deteksi Banjir
Deteksi Banjir
Deteksi Banjir
Deteksi Banjir
Deteksi Banjir

Ada 2 sensor air tambahan untuk perlindungan:

  • Sensor1: di bagian belakang tangki untuk deteksi luapan dari tangki
  • Sensor2: di bagian bawah mesin kopi untuk deteksi luapan cangkir

Kedua sensor ini akan memicu interupsi yang mematikan air segera, menyalakan lampu kesalahan dan membatalkan eksekusi program untuk mencegah serangan seperti membuat sejuta kopi dan membanjiri rumah seperti itu. Setelah program keluar, mesin tidak akan lagi merespons apa pun dan harus didaur ulang secara manual.

Jika Anda bertanya-tanya apa yang akan terjadi jika sensor ultrasonik akan kebanjiran (itu terjadi sekali:))

Itu mengembalikan level air seperti ini selama beberapa hari tetapi bahkan setelah mengering itu tidak pernah akurat lagi dan saya harus menggantinya. Mesin dirancang untuk bekerja dari air keran yang dingin sehingga tidak ada uap panas yang akan merusak sensor. Sensor ini hanya akurat sampai ketinggian air 2-3 cm darinya.

Bentuk tangki yang elips membuat perhitungan ketinggian air menjadi sulit sehingga mereka diukur dan dikodekan ke dalam program agar sesuai dengan persentase.

Langkah 7: Pengujian dan Perakitan Akhir

Pengujian dan Perakitan Akhir
Pengujian dan Perakitan Akhir
Pengujian dan Perakitan Akhir
Pengujian dan Perakitan Akhir
Pengujian dan Perakitan Akhir
Pengujian dan Perakitan Akhir

Mesin dalam keadaan akhir, hampir sepenuhnya menyembunyikan jejak peretasan apa pun dan jika 3 LED indikator status dan port debug USB tidak ada di sana, Anda tidak dapat mengatakan bahwa ada hal lain yang terjadi di dalam sementara itu bahkan dapat menampung Wifi yang terhubung Server gempa:)

Ketika saya memodifikasi perangkat, saya selalu menjadikan penggunaan manual sebagai prioritas utama. Setelah diretas, mesin benar-benar dapat digunakan oleh siapa saja seperti semula, kecuali tangki air tidak dapat dengan mudah dilepas. Kecuali Anda menyelesaikan bagian otomatisasi air lengkap dari desain, mesin hanya dapat diisi pada titik ini dengan kombinasi pipa + corong kecil.

Langkah 8: Kode Kontrol Kopi

Kode Kontrol Kopi
Kode Kontrol Kopi

Temukan kode sumber Arduino lengkap yang terlampir di bawah.

Penjelasan singkat tentang kode:

Loop utama memanggil fungsi xcomm(), yang bertanggung jawab atas pemrosesan perintah, membuat kopi, menghidupkan/mematikan mesin.

Kode di bawah ini hanya tercapai dalam kasus kontrol manual. Ini meningkatkan penghitung statistik untuk melacak berapa banyak kopi yang dibuat dan mengisi tangki air secara otomatis.

Perintah dapat dikirim melalui Xbee atau melalui port USB (Debug harus diaktifkan di awal). Saat komunikasi masuk dari salah satu led oranye berkedip sebentar untuk menunjukkan aktivitas jaringan. Perintah berikut diimplementasikan:

1, CMSTAT – statistik kueri dari mesin

Mesin menyimpan statistik tentang berapa banyak kopi panas/dingin/manual yang dibuat dan juga mendapatkan uptime dari RTC yang tidak meluap setelah 3x hari sehingga bisa sampai bertahun-tahun:P

2, CMWSTART – mulai membuat kopi dan minuman panas dengan air panas

3, CMCSTART – mulai membuat es teh dan minuman dingin dengan air dingin

Proses panas dan dingin dimulai dengan memanggil fungsi standby() yang melakukan pemeriksaan lebih lanjut kemudian memicu penekanan tombol daya. Setelah ini program menunggu lampu hijau (ketika boiler dipanaskan) kemudian mengemulasi tombol hot/cold push. Setelah ini menunggu 50 detik (yang lebih dari cukup bahkan untuk secangkir kopi terbesar) kemudian mematikan daya. Ini bahkan tidak diperlukan karena mesin yang luar biasa ini akan mati secara otomatis 5 menit setelah membuat kopi, tetapi mengapa membuang daya? Omong-omong, konsumsi daya mesin siaga bahkan setelah modifikasi kurang dari 2 Watt.

Isi ulang air dan keamanan

Mesin ini dirancang dengan mempertimbangkan keamanan, jadi tidak mungkin penyerang yang menguasai kendali membanjiri seluruh rumah dengan air. Kegagalan perangkat keras juga tidak akan mengakibatkan kerusakan serius. Di sebelah sensor perangkat keras ada perlindungan yang dibangun ke dalam kode untuk isi ulang. Penghitung yang memicu rutinitas ISR jika mesin tidak diisi ulang dalam x detik (ini misalnya dapat terjadi jika sensor ultrasonik tidak berfungsi dan memberikan 20% setelah x detik setelah pengisian ulang dimulai).

Tidak ada otentikasi, siapa pun dapat menggunakan mesin dalam jangkauan radio yang mengetahui perintahnya jadi saya telah mengubah ID piconet Xbee default menjadi sesuatu yang lain, juga ERR_INVALIDCMD dapat dikomentari dan mesin akan mengabaikan perintah yang tidak diketahui.

Bug

Bug kopi ganda: hal yang paling menjengkelkan tentang bug ini adalah mulai terjadi beberapa bulan setelah menggunakan mesin dengan kode yang sama. Setelah perintah kopi dikeluarkan itu membuat kopi, matikan dan nyalakan lagi dan lanjutkan membuat 1 kopi lagi dengan pelindung yang sama.

Saya harus mulai men-debug duplikasi perintah dari level Android karena saya telah menerapkan pengiriman ulang ke kode jika terjadi kehilangan paket. Ternyata baik android, perangkat lunak kontrol C, atau kernel Linux pada raspi2 tidak bertanggung jawab atas hal ini daripada Xbee.

Setelah mengeluarkan echo “CMCSTART">/dev/ttyACM0 pada node kontrol itu keluar dua kali ke ujung yang lain. Saya menyimpulkan bahwa spektrum 2.4Ghz saya di rumah saya mulai jenuh dari banyak perangkat radio dalam kisaran ini yang menyebabkan Xbee meminta semacam pengiriman ulang di lapisan radio dan data dikirim dua kali (tidak selalu). Setelah perintah pertama masuk ke mesin, fungsi xcomm() mulai memprosesnya, namun perintah kedua masuk tepat setelah itu menunggu di buffer Xbees dan ketika loop selesai, ia mulai memproses perintah kedua. Untuk mengatasi masalah ini saya telah memperkenalkan 3 ambang batas dalam kode untuk membuat tidak mungkin membuat lebih dari 1 kopi dalam 2 menit. Juga ada batasan pada CMSTAT tetapi untuk tidak mengganggu kode kontrol C/Android, itu hanya akan memadamkan respons selama 2 detik.

Ambang batas terakhir dimasukkan untuk penghitung kopi manual, karena begitu mesin mencapai kondisi siap (boiler memanas, lampu hijau) ia telah mencatat peristiwa hijau ratusan kali sehingga jumlah kopi meningkat.

Langkah 9: Pertimbangan Desain dan Pemikiran Akhir

Setelah banyak masalah dari komunikasi Xbee, saya tidak akan merekomendasikan Xbee untuk proyek ini. Baik menggunakan radio 433Mhz standar murah dengan VirtualWire dan menurunkan Bps untuk stabilitas atau menyematkan Raspberry PI Zero dengan koneksi Wifi langsung ke mesin kopi.

Seperti yang ditunjukkan tanggal, ini adalah proyek lama, jadi saya minta maaf atas detail kecil yang hilang seperti koneksi dari sirkuit kontrol ke kaki pin yang tepat pada motherboard. Proyek ini membutuhkan tingkat pengetahuan teknis tertentu untuk melakukannya sendiri. Jika Anda menemukan bug/masalah atau ingin berkontribusi pada tutorial ini, beri tahu saya.

Perangkat lunak kontrol, metode untuk kontrol suara adalah untuk bagian lain yang memungkinkan kopi Anda siap hanya dengan perintah suara bahkan sebelum bangun dari tempat tidur.

Saya sekarang telah menyelesaikan dokumentasi sistem penyimpanan air saya (WasserStation) dan memperbarui CoffeeControlCode ke versi terbaru, yang juga mencakup isi ulang otomatis. Jika Anda menggunakan mesin yang sama untuk membangun, isi ulang akan bekerja dengan sempurna (tanpa modifikasi kode) karena ketinggian air dikalibrasi ke tangki air Circolo.

Direkomendasikan: