自宅でドリンクバーできる装置
自宅ドリンクバー
いつでも冷えたジュースが飲めるドリンクバーを作りました。
材料
- シリコンチューブ 内径4mm 外径6mm
- 2Lペットボトル
- 段ボール
- DC 12V マイクロ真空ポンプ
- M5Stack Core2
- DC-DCコンバーター 2USB 12v To 5v 3a 15w
- DC-DC 直流電圧 コンバータ 降圧型 5v-24v → 0.93v-18v
- 12V 5.8A 65W ペルチェ素子 冷却ペルチェプレートモジュール
- CPUウォーターブロック
- 5.5 x 2.1mm 3A 12VDC電源アダプタコネクタ
- Grove リレー
- 12V 10A 汎用ACアダプター
- CPUファン
構成
作り方
ジュースを冷やす機構
ペルチェ素子のモジュールを使って冷やします。
とても冷えますが裏面が熱くなるので熱くなる面にCPUクーラーをあてます。
さらにこの上(ペルチェ素子の冷たくなる面の上)にCPUウォーターブロックをのせます。
ジュースをくみ出す機構
ペットボトルのふたには穴を2つあけておきそれぞれにシリコンチューブを図の長さのように差し込んでおきます。このときペットボトルのふたとシリコンチューブには隙間のないようにぴったりと差し込みます。
そしてシリコンチューブの長い方(ペットボトルの中でジュースに浸かる長さの方)は、ペルチェ素子と重なる前述のCPUウォーターブロックの一方の穴につなぎます。
ペットボトルに繋がるもういっぽうのシリコンチューブの短い方(ペットボトルの中でジュースに触れない長さの方)は、ポンプの空気が出る方につなぎます。
ここまでやると、以下の動作が確認できます。
M5Stackによる制御
M5Stack Core2ではボタンが押されている間ジュースを注ぐように作成しました。
構成図のとおりリレーモジュールを配置してポンプのON/OFFを行います。
リレーはGrove接続のものを利用し、M5Stack Core2のGroveポートに接続します。
なおM5Stackの電源はACアダプタから引っ張ってきたものをDC-DCコンバータで5Vに変換してUSBポート(type-C)につないでおり、すべての電源を1口にまとめるようにしています。
段ボールによる筐体の作成
程よい大きさの段ボールに以下の穴をあけました。
- M5Stackがはめ込める穴
- ACアダプタの穴
- 外置きのペットボトルへつながるシリコンチューブが通る穴
- ジュース注ぎ口の穴
プログラム(M5Stack)
coke.ino
#include <M5Core2.h>
#include <AXP192.h>
AXP192 M5Power;
uint16_t color(uint8_t red, uint8_t green, uint8_t blue) {
return ((red >> 3) << 11) | ((green >> 2) << 5) | (blue >> 3);
}
void setup() {
// put your setup code here, to run once:
M5.begin();
pinMode(33, OUTPUT);
digitalWrite(33, LOW);
M5.Lcd.setTextFont(2);
M5.Lcd.fillScreen(WHITE);
M5.Lcd.setTextColor(BLACK, WHITE);
M5.Lcd.setTextSize(3);
M5.Lcd.setCursor(5, 0);
M5.Lcd.println("Coca-Cola");
M5.Lcd.setTextSize(2);
M5.Lcd.setCursor(5, 50);
M5.Lcd.print("A cool coke. yummy");
M5.Lcd.setCursor(5, 175);
M5.Lcd.println("Hold POUR button.");
M5.Lcd.setCursor(5, 210);
M5.Lcd.setTextColor(color(255, 154, 38), WHITE);
M5.Lcd.print(" BACK ");
M5.Lcd.setTextColor(BLUE, WHITE);
M5.Lcd.print(" POUR ");
M5.Lcd.setTextColor(color(255, 154, 38), WHITE);
M5.Lcd.print("LABL ");
}
void loop() {
// put your main code here, to run repeatedly:
if (M5.Touch.ispressed()) {
TouchPoint_t pos = M5.Touch.getPressPoint();
if (pos.y > 240) {
if (pos.x < 120) { //btnA
Serial.println("btnA");
while (M5.Touch.ispressed()) {}
}
else if (pos.x > 240) { //btnC
Serial.println("btnC");
while (M5.Touch.ispressed()) {}
}
else if (pos.x >= 150 && pos.x <= 200) { //btnB
digitalWrite(33,HIGH);
while (M5.Touch.ispressed()) {}
digitalWrite(33,LOW);
}
}
}
if (!M5Power.isCharging()) {M5Power.PowerOff();}
}
ソースコード中、
・BACK : btnA
・POUR : btnB
・LABL : btnC
となっており、現状POUR(btnB)のみ機能します。
このボタンを押したときに
digitalWrite(33,HIGH);
離したときに
digitalWrite(33,LOW);
とすることでリレーを制御しています。(Grove接続なので33ピンを制御)
完成品
注意点
注ぎ口よりもペットボトルが高い位置にあると注ぐのを止めても液体の流れが止まらなくなるので注意してください(#サイフォンの原理)
また今回注ぐのをストップしても流れが止まるのに少し時間がかかります。
止めたときにペットボトル内の圧を抜くような仕組みを作ったら止まりやすくなると思いますが、今回はそこまでは作成しませんでした。
投稿者の人気記事
-
siroitori0413
さんが
2021/01/15
に
編集
をしました。
(メッセージ: 初版)
Opening
3duilab
2021/01/16
siroitori0413
2021/01/18
3duilab
2021/01/19
siroitori0413
2021/02/01 Opening
ultimatemasashi
2021/01/30
siroitori0413
2021/02/01 Opening
kipopytokyo
2021/04/18
siroitori0413
2021/04/19 -
siroitori0413
さんが
2021/12/20
に
編集
をしました。
ログインしてコメントを投稿する機構が難しいので作ろうと思わないです。適切に冷やす事が難しい気がします
ですよね~w
適切に冷やす件については、書いていませんでしたがポンプの強さで冷え具合が変わるので、ポンプに繋がっているDC-DC コンバータを調整する必要があります。(ポンプが強すぎると水流が早くなり冷えないので弱める)
ソフトや回路と同じくらいに、このような複雑な機構を上手く作る事も価値があるかもしれません
ありがとうございます!
流れが止まらなくなるのは電磁弁をM5stackで制御すれば解決できるかもしれませんね。
ペルチェ素子は熱交換が難しいので冷たい水が出てくるところはすばらしいですね。
コメントありがとうございます。
なるほど電磁弁というのを使えば良いのですね。勉強になります!
この作品、中学1年生の息子が作ったものをまとめたものなんです。ほめてくださり嬉しいです。
こんにちは。自宅ドリンクバーなるシステムは、大変参考になりました。
大人もうかうかしてられません。(;^o^A
簡単に手に入るパーツで実現しているのもいいですね。( ..)φメモメモ
ご覧くださり、コメントありがとうございます!
電子工作というのは奥が深いですねえ、私も子供に教わりながら日々勉強しています。
大人になると「そんなの製品があるんだからわざわざ作らなくても」って思っちゃうところを自作しちゃうのが子供の良い所なのかもしれないなぁと感じたりしています。