กลับไปหน้ารวมไฟล์
weight-based-coffee-grander-with-blynk-app-73c189.md

ในที่สุดพี่ก็เริ่มเข้าใกล้เป้าหมายในการดัดแปลงเครื่องบดกาแฟ Rancilio Rocky ให้เป็นเครื่องบดอัจฉริยะแล้วนะน้อง

นี่คือภาพที่เครื่องบดน่าจะออกมาหลังจากเสร็จ พี่จะถอดที่วาง Portafilter ออก แล้วใช้แก้ว Long-Drink มาวางรองแทน เวลาบดเสร็จก็เทลง Portafilter หรือ French Press ได้เลย งานนี้สะอาดขึ้นเพราะเทผงกาแฟลงที่ต้มได้ตรงเหนืออ่างล้างจานเลยจ้า ;0)

แก้วจะวางอยู่บนตาชั่ง และเราจะต้องทำการ Tare (ตั้งศูนย์) ตาชั่งทุกครั้งก่อนเริ่มบด

รายละเอียดการดัดแปลงเครื่องบดของพี่

เครื่องบดของพี่จะมีฟีเจอร์แบบนี้เมื่อดัดแปลงเสร็จ

ปรับขนาดเมล็ดกาแฟแบบไร้ขั้น (Step-less) จากแอป และอาจมี Preset ปรับได้ เช่น Espresso, French-press, Drip เป็นต้น สองข้อแรกด้านบนทำเสร็จแล้ว ส่วนข้อที่ เอียงๆ เนี่ยยังไม่นะ!

  • ตาชั่งอัจฉริยะที่สั่งบดและปิดเครื่องบดอัตโนมัติเมื่อถึงน้ำหนักที่ตั้งไว้
  • แอปสำหรับเปิด/ปิดเครื่องบด และปรับ Preset น้ำหนักบดแบบไร้ขั้น
  • เชื่อมต่อผ่าน Wifi
  • ไอเดียเพิ่มเติมรอมาในอนาคต

สำหรับการเขียนโค้ด ESP8266 (พี่ชอบใช้บอร์ด Dev อย่าง WeMos D1 Mini) พี่เลือกใช้ [Arduino](https://s.shopee.co.th/7fUgFAWSki) IDE เพราะเป็นที่นิยมและเริ่มต้นง่าย ไม่มีสอนพื้นฐาน Arduino, Blynk หรือ ESP8266 นะ หาในเน็ตได้เพียบ

ฮาร์ดแวร์สำหรับเครื่องบดอัจฉริยะ

ฮาร์ดแวร์ที่ใช้ในโปรเจกต์นี้ (ลิงก์สินค้าด้านล่างเป็นลิงก์แอฟฟิลิเอทช่วยสนับสนุนเว็บไซต์นะ)

ESP8266 [Relay](https://s.shopee.co.th/3fyXTmWPbL) board พี่ชอบอันนี้ ->

  • เครื่องบดกาแฟ ถ้ายังไม่มี! พี่ออกแบบสำหรับ Rancilio Rocky เพราะพี่มีอยู่แล้ว ;)
  • [Raspberry PI](https://s.shopee.co.th/6pvZFdZdRf) (สำหรับรัน Blynk server ในเครือข่ายท้องถิ่น ถ้าใช้ Blynk cloud service ก็ไม่ต้อง)
  • ESP8266 แบบไหนก็ได้ พี่แนะนำ WeMos D1 Mini Pro ที่ต่อเสาอากาศภายนอกได้ (ซื้อหลายๆ อันสิ ราคาถูกและน้องจะรักมัน ;-)
  • HX711 AD converter with built in amplifier for load cells, พี่ชอบแบบที่มีชิลด์ อีกเวอร์ชันที่นิยม (พี่ยังไม่ได้ลอง) คือบอร์ด SparFun
  • ตัวเก็บประจุ Some 100uF capacitors ไม่จำเป็นแต่ช่วยให้วงจรเสถียรขึ้น พี่ใส่ไว้ใกล้ขาไฟเข้า ของบอร์ด ESP8266, Relay และ HX711
  • แหล่งจ่ายไฟ A usb micro power supply สำหรับวงจร ใช้แบบ 2 แอมป์จะเสถียรกว่า
  • ตาชั่งหรือ load cell เลือกตามชอบ พี่ใช้ cheap 500g digital scale รสชาติก็... กระเป๋าก็เบาละกัน ;)
  • + เครื่องมือต่างๆ แต่ถ้าน้องมาถึงจุดนี้แล้ว น่าจะมีอยู่แล้วแหละ!

โค้ดและวงจร

โค้ดและวงจร ณ วันที่ 27 มีนาคม 2019(จะอัปเดตอีกแน่ๆ คอยติดตามนะ)

Arduino Libraries ที่ใช้ในโปรเจกต์นี้

HX711_Arduino_Library เวอร์ชัน 0.7.2ESP8266WiFi เวอร์ชัน 1.0Blynk เวอร์ชัน 0.6.1

 Download Arduino sketch 
//#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include "HX711.h"
BlynkTimer timer;
int relayPin = D5; // Change to suit your board.
// HX711 circuit wiring
const int LOADCELL_DOUT_PIN = D2; // Change to suit your board.
const int LOADCELL_SCK_PIN = D1; // Change to suit your board.
HX711 scale;
//Blynk project auth.
char auth[] = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "YOUR-SSID";
char pass[] = "YOURPASS";
BLYNK_WRITE(V0) { scale.tare(); // Strain [sensor](https://s.shopee.co.th/7VBG2rX65j) tare
}
BLYNK_WRITE(V2){
if (param.asInt()) {
digitalWrite(relayPin, HIGH); // Relay ON.
} else {
digitalWrite(relayPin, LOW); // Relay OFF.
}
}
BLYNK_WRITE(V3) {
Blynk.virtualWrite(V2, 0);
digitalWrite (relayPin, LOW); // Grinder interupt (Emergecy stop), Relay OFF.
}
int slider;
BLYNK_WRITE(V11)
{
slider = param.asInt(); // Assigning incoming value from pin V11 (Slider value) to a global variable.
}
void setup() {
Serial.begin(57600);
Blynk.begin(auth, ssid, pass, "192.168.254.110", 8080);
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
scale.set_scale(1040.f);
timer.setInterval(500L, HX711data); // .5 sek delay to unstress the server and stabalize readout on numeric widget @ V1.
timer.setInterval(60L, HX711relay); // 60ms delay ono to keep fast stop grinder response and not overshoot grinding to much.
digitalWrite(relayPin, LOW); // To make sure grinder doesn't start running during boot.
pinMode(relayPin, OUTPUT);
BLYNK_CONNECTED();
Blynk.syncAll();
}
void HX711data()
{
Blynk.virtualWrite(V1, scale.get_units(20)); // sending calibrated strain sensor value to Blynk value widget.
}
void HX711relay()
{
if (scale.get_units(20) >= (slider-0)) {
Blynk.virtualWrite(V2, 0);
digitalWrite(relayPin, LOW); //Relay OFF change the (slider-0.0) number in seconds with one decimal to compensate if grinder overshoot "Grinder calibration".
}
}
void loop()
{
Blynk.run();
timer.run();
}

นี่คือวงจรทดสอบของพี่ สายจากตาชั่งดิจิตอล 500g ถูกบัดกรีเข้ากับแผงวงจรภายใน (ตาชั่งยังทำงานปกติได้พร้อมกัน ไม่ต้องใช้แบตเตอรี่ และจอแสดงผลก็ยังทำงานได้ด้วย!)

นี่คืออินเทอร์เฟซ Blynk บน Android สำหรับโปรโตไทป์ของพี่ รายละเอียด Widget ต่างๆ ด้านล่าง V1 คือ Virtual Pins ดูจาก Arduino sketch ด้านบน และ อ่านคู่มือ Blynk เพิ่มเติมนะ

Widget “Labled value” แสดงค่าจาก Slider (V11 0-80 ‘หรือตามที่ตั้ง’, Push)Widget “Slider” สำหรับปรับปริมาณผงกาแฟที่ต้องการ (V11 7-80 ‘หรือตามที่ตั้ง’ , send on release OFF, Show value OFF, #, # สำหรับปรับค่าทศนิยมหนึ่งตำแหน่ง)

  • Widget “Level V” จะเติมสีขึ้นเรื่อยๆ ขณะบด (V1 0-100 ตรงกับกรัมในเวอร์ชันพี่)
  • “Styled Button” Grind (V2 0-1 Switch button) พี่ตั้งปุ่มว่า Grind เมื่อปิด และ Grinding พร้อมพื้นหลังสีส้มเมื่อเครื่องบดกำลังทำงาน
  • “Styled Button” Stop (V3 0-1 Push button) หยุดได้ด้วยการกดปุ่ม “Grind/Grinding” อีกครั้งเมื่อแสดงว่า “Grinding”
  • “Styled Button” Tare (V0 0-1 Push button) สำหรับตั้งศูนย์ตาชั่งเมื่อวางภาชนะว่างไว้บนตาชั่ง ทำก่อนบดทุกครั้ง

โปรเจกต์นี้จะอัปเดตเรื่อยๆ คอยติดตามและแวะมาใหม่นะ :0)

stockholmviews.com

EXPANDED TECHNICAL DETAILS

Precision Barista Automation

เครื่องมือระดับสูงนี้ช่วยอัตโนมัติการ "ตวง" เมล็ดกาแฟด้วยความแม่นยำระดับกรัม ควบคุมจากสมาร์ทโฟนได้เลย

  • Precision Load-Cell Interfacing: ใช้ Load Cell 500g หรือ 1kg คู่กับ HX711 24-bit ADC ให้ความละเอียดในการวัดน้ำหนักกาแฟภายใน +/- 0.1g
  • Relay Controlled Actuation: Arduino (ผ่าน ESP8266 หรือ ESP32) ควบคุมมอเตอร์เครื่องบดผ่าน Relay 10A

Mobile Integration

  • Blynk IoT Interface: ผู้ใช้ตั้ง "Target Weight" บนแอป Blynk Arduino จะสั่งให้เครื่องบดทำงานและหยุดทันทีเมื่อตาชั่งวัดถึงน้ำหนักเป้าหมาย ได้ปริมาณที่แม่นยำทุกครั้ง

ข้อมูล Frontmatter ดั้งเดิม

title: "Weight-Based Coffee Grander with Blynk App"
description: "Make your stupid coffee grinder smart with this IoT and weight-based coffee grinder modification."
author: "stefan63"
category: ""
tags:
  - "home automation"
  - "smart appliances"
  - "food and drinks"
  - "remote control"
  - "internet of things"
views: 3008
likes: 1
price: 299
difficulty: "Intermediate"
components:
  - "1x Capacitor 100 µF"
tools: []
apps:
  - "1x Blynk"
  - "1x Arduino IDE"
  - "1x Arduino IDE"
  - "1x Blynk"
downloadableFiles: []
documentationLinks: []
passwordHash: "349d857901acba5f32c98b22cb977b9c91ec396aa08dcaf54cddef7d94792ccb"
encryptedPayload: "U2FsdGVkX1+YvD/NKXLulyo4STGIyguy083Bj89AFrlpSiCNPzOWWqhI2LCL9Z0g5hUnoX4oVOxhDbJAwLATRsUmo5qPjgptvp3FU8EEIMGgj9kNeBlYxOnaDXkyDVdXJkhL+e/Yv28F0OWIot3V4w=="
seoDescription: "Smart Coffee Grinder DIY project using IoT and Weight-Based technology controlled via Blynk App."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/weight-based-coffee-grander-with-blynk-app-73c189_cover.jpg"
lang: "th"