Coder Social home page Coder Social logo

coffee-drip-scale's Introduction

Bluetooth Coffee Drip Scale

A bluetooth scale to keep track of your hand brew process. This may be useful if you're brewing your coffee with a V60, Chemex, etc...

Disclaimer: As this is a tinkering project it is not meant for production use, and so far has only been tested a few times on my Linux machine. By following the instructions here, you agree that I am not responsible to any damage done in any form, including your coffee :D

This repository contains both the code for hardware and the web interface for the scale.

demo

Video Version

Components:

  • Wemos R32: Basically an ESP32 in an Arduino Uno board. The reason I go with this is because of the built in 5v output required for the HX711. But any other ESP board and external power supply with 5v should work too.

  • A load cell: Usually these come with a load cell amplifier (the HX711), so you may not need to buy them separately.

  • HX711: load cell amplifier. As the name suggests, it amplifies tiny currents coming from the the load cell make it possible for th eWemos R32 to read the signal.

  • A laptop with bluetooth connection to run the web interface. The Wemos R32 is going to send its data to the web backend via Bluetooth Serial.

Prerequisites

You'll need to have these software installed:

  • Arduino IDE to flash the Wemos R32

  • NodeJS to run the web application.

Hardware setup

Wiring

This wiring requires no modification to the code, but if you're using a different wiring, make sure pin numbers are updated accordingly in the Arduino sketches.

wiring

Install Arduino Libraries:

  • HX711: Download the Arduino HX711 library by downloading the zip file code from here. Open Arduino IDE, go to menu Sketch > Include Library > Add .ZIP Library > choose the HX711 zip file.

  • Install the esp32 Arduino libraries: follow instruction from the repository's Readme

Add ESP32 boards to Arduino Board Manager

To check, from the top menu, go to File > Preferences. In the Settings tab, there should be this link https://dl.espressif.com/dl/package_esp32_index.json in the Additional Board Manager URLs. If not, insert the link there, then go to Tools > Board > Boards Manager, search for esp32 and install.

Now in Tools > Boards you should be able to see ESP32 Dev Module in the list. Select it.

Calibrate the load cell & flash the scale sketch

The calibration is needed only once to figure out the CALIBRATION_FACTOR that is specific to your load cell. To do this, follow instruction in this file: ./SparkFun_HX711_Calibration/SparkFun_HX711_Calibration.ino

Then, update CALIBRATION_FACTOR number in coffee_scale_btserial/coffee_scale_btserial.ino.

Finally flash your Wemos again with coffee_scale_btserial/coffee_scale_btserial.ino.

Now the scale readings can be access via a Bluetooth Serial connection with the device "CoffeeScale".

Web interface

Power on the Wemos.

Once the application started, the app will opens the link http://localhost:8080 automatically in your web browser after successfully connected to the Wemos board.

# enter ./web directory
cd ./web

# install dependencies
npm i

# build the frontend and start the web application.
npm run build && npm start

Development

To develop the frontend, use

npm run dev

License

This project is licensed under the MIT License - see the LICENSE file for details

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.