私のプロジェクトが本当に実現可能かどうか確認するのに苦労していますが。
アーカイブするもの:インターネット経由でSenseoコーヒーマシンを制御します。つまり、単純に2つのボタンを制御することになります。
最初の簡単な解決策:
- Raspberry PiにNodeJSサーバーをセットアップします。
- Raspberry GPIOを2つのトランジスタに接続して、コーヒーマシンのボタンを制御します
- JavaScriptでRaspberry GPIOを直接制御できます。たとえば、http://myraspberrypi.com/makemeacoffeeを呼び出すと、GPIOがアクティブになり、ボタンがアクティブになり、コーヒーが流れます
しかし:私はラズベリーをコーヒーマシンに接続したくありません(他の目的でPiが必要です)。Webサーバーとコントローラー自体を分離することは良い考えだと思います。明日、バスルームの温度を監視したい場合、または(別のESP8266を使用して)2台目のコーヒーマシンを制御したい場合は、全体を考え直すことなくそれを実行できます。
それをアーカイブする必要があるのは、Wi-Fiヘッドレスコントローラーとして使用するためにNodeMCUを備えたESP8266です(このリンクを参照)。Raspberry GPIOは使用されなくなりました(これがポイントです)。PiにはNodeJS Webサーバーのみがあります。
主なコンポーネントの役割を明確にしましょう:
- Raspberry Pi:NodeJS Webサーバーをホストします
- NodeJS Webサーバー:Webページをエンドユーザーに提供します。基本的に「Make me a coffee」というボタンのあるページ。背後で、水ボタンを「押し」、30秒待ってから、コーヒーボタンを「押し」ます。Webサーバーは、ESP8266にHTTPリクエストを(Wi-Fi経由で)送信することでこれを行います。NodeJSサーバーはロギングとデータ分析も行います(今年は何杯のコーヒーを飲みましたか?)
- ESP8266:NodeMCUを使用します。そのGPIOは、コーヒーマシンのボタンを制御するトランジスタに接続されています。ESP8266に電力を供給する方法については気にしません。Raspberry Piリクエストをリッスンし、それに応じてGPIOでアクションを実行するWebサーバーを実行します。
このアーキテクチャは実現可能ですか?このアーキテクチャは柔軟ですか?
編集、ショーンフーリハネ(投稿を比較的短く保つネタバレ)に答えるには:
これについては100%よくわかりませんが、トランジスタで十分です。コーヒーマシンスイッチは低電圧(3、3 V)で動作しており、ESP8266はコーヒーマシンとグラウンドを共有しません。
温度感知と水位制御については、Senseoコーヒーマシンにこれが組み込まれています。一般的な使用方法:中央のボタンを押して加熱プロセスを開始し、「シングル」または「ダブル」ボタンを押してコーヒーのサイズを選択します。加熱プロセスが終了すると、コーヒーが流れ始めます。十分な水がない場合、それは終了し、LEDが点滅します。
私が期待する進歩:
- バージョン1.0は、「コーヒーマシンを実行するだけで、準備ができていると確信しています」になります。シングルカップボタンとヒートアップボタンを操作します。
バージョン2.0は「マシンを実行してフィードバックを提供する」になります。別のESP8266がフィードバックLEDに接続されていて(加熱されているときと水がなくなったときがわかるようになっています)、別のESP8266がスケールを確認してコーヒーマシンを実行する前にカップがあります。コーヒーマシンが実行されたときに、ユーザーにポッドを変更するように通知するアラートを追加することもできます。
バージョン3.0では、ポッドが変更されたかどうかを確認する方法を見つけるために、なんらかのスイッチでメカニズムの開放を追跡します。しかし、これは現時点では私のプロジェクトの範囲外です。