DIY全自動コーヒーメーカー:Arduino + Bluetooth + Androidアプリで音声操作
プロジェクト概要
忙しい朝、コーヒーメーカーが温まるのを待つ時間すら惜しい。市販のコーヒーメーカーをArduinoとBluetoothで制御し、Androidアプリから「小さめ/大きめ」を選択、さらに音声認識で「コーヒー」ひと言で淹れられるように改造しました。
必要なパーツ
- コーヒーメーカー(ボタン式)×1
- Arduino Uno ×1
- リレーモジュール(4チャネル以上推奨)×1
- HC-06 Bluetoothモジュール ×1
- ジャンパーワイヤ、はんだごて、はんだ
改造手順
1. コーヒーメーカー分解
底面のネジ(またはクリップ)を外し、基板を露出させます。機種によって構造が異なるため、事前にサービスマニュアルや分解記事を確認してください。
2. ボタンへのハンダ付け
各ボタン(電源、小さめ、大きめ)のパターン裏面にリード線をハンダ付けし、リレーのCOM/NO端子に接続します。ボタンが1つしかない機種なら1チャネルリレーでOKです。
3. Arduino側配線
| リレーCH | Arduinoピン | 機能 |
|---|---|---|
| IN1 | 未使用 | — |
| IN2 | D11 | 小さめコーヒー |
| IN3 | D10 | 電源ON/OFF |
| IN4 | D9 | 大きめコーヒー |
HC-06 Bluetoothモジュール:
- VCC → 5V
- GND → GND
- TXD → Arduino RX (D0)
- RXD → Arduino TX (D1) ※分圧推奨(HC-06は3.3Vロジック)
Arduinoスケッチ
シリアル(Bluetooth経由)で 1 受信 → 小さめ、2 受信 → 大きめコーヒーを淹れるシーケンスを実行します。
char junk;
String inputString = "";
void setup() {
Serial.begin(9600);
pinMode(10, OUTPUT); digitalWrite(10, HIGH); // 電源
pinMode(9, OUTPUT); digitalWrite(9, HIGH); // 大きめ
pinMode(11, OUTPUT); digitalWrite(11, HIGH); // 小さめ
// 注: このリレーはHIGHでOFF、LOWでON動作
}
void loop() {
if (Serial.available()) {
while (Serial.available()) {
char inChar = (char)Serial.read();
inputString += inChar;
}
Serial.println(inputString); // デバッグ用エコー
// バッファクリア
while (Serial.available() > 0) { junk = Serial.read(); }
if (inputString == "1") { // 小さめ
pressButton(10); // 電源ON
delay(120000); // 2分加熱待ち
pressButton(11); // 小さめボタン
delay(30000); // 抽出待ち
pressButton(10); // 電源OFF
}
else if (inputString == "2") { // 大きめ
pressButton(10); // 電源ON
delay(120000);
pressButton(9); // 大きめボタン
delay(30000);
pressButton(10); // 電源OFF
}
inputString = "";
}
}
void pressButton(int pin) {
digitalWrite(pin, LOW);
delay(500);
digitalWrite(pin, HIGH);
}
重要な注意点
- 書き込み時はBluetoothの5V線を外すこと(HC-06がシリアル通信を妨げるため)
- リレーの極性(HIGH/LOWでON/OFFどちらか)はモジュールにより異なる。動かない場合はHIGH/LOWを入れ替えて試す
- 加熱・抽出時間は機種に合わせて調整
Androidアプリ(MIT App Inventor 2)
MIT App Inventor 2(Googleアカウント必須)で作成。主な構成:
- BluetoothClient コンポーネントでHC-06とペアリング/通信
- ボタン「小さめ」→
SendText "1"、ボタン「大きめ」→SendText "2" - SpeechRecognizer で音声入力。「コーヒー」認識時 →
SendText "2"(大きめ) - APKファイル(
F2WKLSKIU9V6Q3T.apk)とソース(easycoffee_PMPn5pALOv.aia)を提供
インストール時の注意: Android設定「提供元不明のアプリ」を許可する必要があります。
送信方式の違い
SendText: 文字列「1」「2」を送信(Arduino側Serial.read()で文字コード 49/50 として受信)SendBytes: バイト値 1/2 を送信(ASCIIコード 49/50 とは異なる)。Arduino側でSerial.read() == 1等と判定する場合はこちら
今後の拡張アイデア
- コンベアベルトでカップ位置を自動検出・搬送
- 水タンク残量センサー追加
- 豆挽きグリンダー連動
- ケース化して見た目もスマートに
まとめ
既存のコーヒーメーカーを数千円のパーツでIoT化し、スマホ・音声で操作できるようになりました。配線とはんだ付けさえクリアすれば、Arduino初心者でも週末で完成可能なプロジェクトです。朝のルーチンがちょっと楽しくなりますよ。
製造プロセス