Apakah arsitektur ini layak dan fleksibel?

9

Saya mengalami masalah tetapi memastikan proyek saya benar-benar layak.

Yang ingin saya arsipkan: Kontrol mesin kopi Senseo saya melalui internet. Itu hanya untuk mengendalikan 2 tombol.

Solusi mudah pertama:

  1. Siapkan server NodeJS di Raspberry Pi saya.
  2. Saya pasang GPIO Raspberry saya ke 2 transistor, untuk mengontrol tombol mesin kopi
  3. Saya dapat mengontrol GPIO Raspberry langsung di Javascript. Misalnya memanggil http://myraspberrypi.com/makemeacoffee mengaktifkan GPIO, mengaktifkan tombol, dan aliran kopi

Tetapi: Saya tidak ingin memasukkan raspberry saya ke mesin kopi saya (saya butuh Pi untuk keperluan lain), dan saya pikir bahwa decoupling server web dan pengontrolnya sendiri adalah ide yang bagus. Jika besok saya ingin memantau suhu kamar mandi saya, atau mengendalikan mesin kopi kedua (menggunakan ESP8266 lain) saya ingin dapat melakukannya tanpa memikirkan kembali semuanya.

Apa yang perlu saya arsipkan adalah ESP8266 dengan NodeMCU untuk menggunakannya sebagai pengontrol tanpa kepala Wi-Fi (lihat tautan ini ). Raspberry GPIO tidak lagi digunakan (itu intinya). Hanya ada server web NodeJS di Pi.

Berikut ini sketsa arsitekturnya: apakah arsitektur ini layak?

Biarkan saya mengklarifikasi peran komponen utama:

  • Raspberry Pi: Host server web NodeJS
  • Server web NodeJS: Melayani halaman web untuk pengguna akhir. Pada dasarnya halaman dengan tombol "Buatkan saya kopi". Di belakang layar, kita perlu "menekan" tombol air panas, tunggu 30 detik, lalu "tekan" tombol kopi. Server web melakukannya dengan mengirimkan permintaan HTTP ke ESP8266 (melalui Wi-Fi). Server NodeJS juga melakukan pencatatan dan analisis data (berapa banyak kopi yang Anda minum tahun ini?)
  • ESP8266: Menggunakan NodeMCU. GPIO-nya dipasang ke transistor yang mengendalikan tombol mesin kopi. Saya tidak peduli bagaimana memberi daya pada ESP8266. Ini menjalankan server web untuk mendengarkan permintaan Raspberry Pi dan melakukan tindakan pada GPIO yang sesuai.

Apakah arsitektur ini layak? Apakah arsitektur ini fleksibel?


EDIT, untuk menjawab Sean Houlihane (spoiler agar posnya relatif singkat):

Saya tidak 100% yakin tentang ini, tetapi transistor tampaknya sudah cukup. Sakelar mesin kopi bekerja pada tegangan rendah (3,3V) dan ESP8266 tidak akan berbagi tanah dengan mesin kopi.

Tentang penginderaan suhu, dan kontrol ketinggian air, mesin kopi Senseo memiliki built-in ini. Penggunaan umum: Tekan tombol tengah untuk memulai proses pemanasan, pilih ukuran kopi Anda dengan menekan tombol "tunggal" atau "ganda". Setelah proses memanaskan berakhir, kopi mulai mengalir. Jika tidak ada cukup air, air itu berakhir dan LED berkedip.

Kemajuan yang saya harapkan:

  • Versi 1.0 akan "Cukup jalankan mesin kopi, saya yakin sudah siap". Saya mengontrol tombol cangkir tunggal dan tombol panas.
  • Versi 2.0 akan menjadi "Jalankan mesin dan beri saya umpan balik" Saya punya ESP8266 lain, dicolokkan ke LED umpan balik (Agar saya bisa tahu kapan itu memanas dan kapan keluar dari air) dan satu lagi ke skala untuk memastikan bahwa cangkir ada sebelum menjalankan mesin kopi. Saya mungkin juga menambahkan peringatan ketika mesin kopi dijalankan untuk memberi tahu pengguna untuk mengganti pod.

  • Versi 3.0 akan menemukan cara untuk mengetahui apakah pod telah diubah, dengan melacak pembukaan mekanisme dengan semacam saklar. Tapi ini di luar cakupan proyek saya saat ini.

Etsitpab Nioliv
sumber
Halo dan selamat datang di Internet of Things! Walaupun saya tidak mencoba meyakinkan Anda untuk memindahkan pertanyaan ini (semuanya baik-baik saja di sini) saya ingin mengundang Anda ke raspberrypi.stackexchange.com untuk pertanyaan lain (atau jawaban yang mungkin ingin Anda berikan) sehubungan dengan Raspberry Pi :)
Ghanima
@ Ganima Saya menyadari keberadaan situs ini, saya baru saja "bergabung dengan komunitas" sekarang, terima kasih
Etsitpab Nioliv
2
HTTP? Anda harus menggunakan HTCPCP .
JAB

Jawaban:

5

Arsitektur yang Anda usulkan tampaknya OK. Anda dapat membangun lebih banyak fungsionalitas di atas ini, seperti otentikasi dan sanitasi permintaan (misalnya kontrol waktu hari, pembatasan tingkat, dll) sehingga ini adalah contoh yang bagus untuk diselidiki.

Mungkin ada beberapa detail penting dalam implementasi yang belum Anda perhatikan. Misalnya, saklar transistor - ini mungkin harus berupa MOSFET, mungkin relay (atau relay solid-state) dan mungkin memiliki masalah tegangan dan isolasi.

Banyak hal yang perlu dipertimbangkan, penginderaan suhu, level air (hati-hati tentang kontaminasi) dan fitur lainnya. Pelacakan pod RGB (apakah ini menjadikannya mesin sekali pakai, atau perlu alarm yang tidak diganti pod?)

Sean Houlihane
sumber
1
Mengedit jawaban saya untuk memberikan lebih banyak info tentang tujuan akhir dan langkah-langkah untuk sampai ke sana
Etsitpab Nioliv