Arduino Nanoで作るBluetooth対応スマートコーヒーメーカー 〜温度グラフ表示と自動開始機能付き〜
概要
Arduino Nanoをベースに、ST7920 LCD、HC-05 Bluetoothモジュール、DS18B20温度センサー、リレー、ブザー、CD4017BEデカッドカウンター駆動のLEDバーを組み合わせた全自動コーヒーメーカーを製作しました。スマートフォンからのBluetooth操作に加え、水を注ぐだけで自動的に抽出を開始する「オートスタート」機能、抽出中の温度変化から湯量やヒーター異常を判定する「ワンタイム解析」、テストモードとして汎用温度計としても使える多機能デバイスです。
主な機能
- Bluetooth制御:専用アプリ(Serial Bluetooth Terminal等)から
start/stop/auto/c/f等のコマンド送信 - オートスタート:スタンバイ中に水の注入による温度低下を検知し自動開始(EEPROMで設定保持)
- 抽出解析(60秒後):初期温度との差分で「水忘れ」「2杯分」「6杯分」「ヒーター異常」を判定
- センサーエラー検出:異常値(-127℃等)を継続監視
- ℃/℉切替:抽出中でもコマンドで切替可能、グラフは途切れず過去データも変換
- 動的グラフ表示:画面端でスクロール、文字とグラフが重ならないよう位置自動調整
- テストモード:外部センサー接続で-20℃〜+128℃、測定間隔1秒〜11.57日まで設定可能な汎用温度計に
- LEDバー表示:CD4017BEで測定サイクルごとにステップ、ステータス表示用LEDも搭載
ハードウェア構成
| 部品 | 数量 | 備考 |
|---|---|---|
| Arduino Nano R3 | 1 | |
| HC-05 Bluetoothモジュール | 1 | ソフトウェアシリアル(D7/D8)で接続 |
| DS18B20温度センサー(1m防水) | 1 | D2にOneWire接続 |
| ST7920 128x64 LCD | 1 | D9/D10/D11でSPI制御 |
| リレー(ヒーター制御) | 1 | D12 |
| ブザー | 1 | D3 |
| CD4017BEデカッドカウンター | 1 | CLK=D4, RST=D5 |
| タクトスイッチ(二色LED内蔵) | 1 | D13、LEDはA0/A1でPWM制御 |
| LED×4、抵抗330Ω×4、10μFコンデンサー等 | 各1 | ステータス表示用 |
ソフトウェアのポイント
状態管理
6ビットのフラグ配列(binFlags)で「チェック済み」「完了」「スタンバイ」「メッセージ送信済み」「コイル/センサーエラー」「テストモード」を管理。elapsedMillisライブラリで複数のタイマーを並行動作させています。
温度測定とグラフ描画
DallasTemperatureライブラリでDS18B20を読み取り、trendSens閾値で上昇/下降/一定を判定。グラフは128ドット幅のリングバッファ(posY[])で管理し、参照温度配列(temprRefr[])との比較でドット位置を決定。画面溢れ時は左スクロール、文字表示位置も動的に切替えます。
Bluetooth通信
SoftwareSerialで受信したコマンドをパースし、EEPROM設定(アドレス0:オートスタート、1:温度単位)の更新、テストモード間隔設定、リブート等を実行。接続状態(D6ピン)も監視し、切断時は自動再接続を試みます。
コマンド一例
start // 抽出開始
stop // 抽出中止 / テストモード終了
auto // オートスタートON/OFF切替
c / f // ℃ / ℉ 切替
1..999999 // テストモード時の測定間隔(秒)
Reboot // デバイス再起動
回路図と製作写真
回路図(quadrant_ZkMygPyRiE.fzz)と多数の製作過程写真が提供されています。WiFiモジュール(RN171VX)使用時のADCノイズ対策として、XBeeシールド上に3.3Vレギュレーター(LM1117)と10μFコンデンサーを実装し、マイクとADCの基準電圧を分離した点が参考になります。
まとめ
一見複雑なコーヒーメーカーですが、モジュールごとに機能を分割し、状態遷移をフラグとタイマーで明確に管理することで、安定動作と拡張性を両立しています。Bluetooth経由の操作・監視に加え、テストモードで汎用温度ロガーとしても使える汎用性の高いプロジェクトです。
製造プロセス
- QR・RFID・体温検知統合アクセス制御システム(Raspberry Piベース)
- Arduinoで温湿度ロガーを作る – DHT11とEthernetシールドでSDカード記録
- ArduinoでBluetooth経由でLEDを制御 – シンプルDIYガイド
- スマート自動靴紐シューズ:発電機能内蔵で実用性抜群
- BME280 温湿度・気圧データを Nextion タッチスクリーンに表示
- Arduino & MPU6050:SG90 & MG996Rサーボの精密制御
- 音声で家電を操作:GoogleアシスタントとBluetoothでArduino家電制御
- u-blox LEA-6H 02 GPSモジュール: Arduino & Python 統合ガイド
- DHT11 と Blynk で温湿度をリアルタイム監視する Arduino チュートリアル
- スマートなArduino制御ロボットアームの製作:簡単DIYチュートリアル
- Arduino Dueでマスターする音声認識と音声合成