DIY Wi-Fi Smart Scale (with ESP8266)

A smart bathroom scale, using 3D printing, ESP8266, Arduino IDE, Adafruit.IO and IFTTT app.

Public Chat
Similar projects worth following
If it's already summer where you live, it's probably a great time for outdoor fitness activities. Running, cycling, or jogging are awesome exerciser for you to get in shape.And if you want to lose or control your current weight, it is essential to keep a record of your results. Using a sportsband (link/link) for instance, will allow you to verify whether you are on the right track and stay motivated. But it's essential to keep record of your weight progress. And with the right tools and using a little electronics and programming, you can make your own internet connected bathroom scale! You can find several bluetooth smart scales of different manufactures online (, and for instance). But instead of buying one, why not lose some weight by making your own gadget?

In this project I designed a smart bathroom scale, using some 3D printing, an ESP8266, IFTTT and Adafruit.IO. You can use this tutorial to practice several skills: 3d printing and laser cutting skills, soldering, electronics, programming, etc.
On the next steps I'll show you how I 3D printed it, wired the circuits, and made the code. In the end of this tutorial you'll be ready to measure your weight and log it online!

Some of the knowledges used here were based on Becky Stern awesome Internet of Things Class. It's highly recommended!

Liked that project? Please consider supporting my future projects with a small Bitcoin donation! :D BTC Deposit Address: 1FiWFYSjRaL7sLdr5wr6h86QkMA6pQxkXJ

ino - 5.02 kB - 06/16/2018 at 16:56


View project log

  • 1
    Tools and Materials

    The following tools and materials were used in this project:

    Tools and materials:

    • 3D printer (link). It was used for printing the case where the electronics are encloused.
    • Solder iron and wire. Some of the components (ESP8266 Firebeetle and LED matrix cover, for instance) doesn't come with soldered terminals. I needed to solder some wires or pins in order to connect those devices.
    • Shrinking tube. l also had to solder the wires of each load cell. A piece of shrinking tube might be used for a better isolation of the conductors.
    • Screwdriver. The structure is mounted using some screws. A set of screwdrivers was used.
    • Screws. I used some screws to attach the 3D printed parts to the base of the scale.
    • M2x6mm Bolts. They were used for mounting the electronics inside the case.
    • 1.75mm PLA (link / link / link) of any color you want.
    • FireBeetle ESP8266 dev board. It's really easy to use and program using Arduino IDE. It has built-in Wi-Fi module, so you can use it in a variaty of projects. It has a connector for a 3.7V battery, which was really usefull for assembling this project. I has also a built-in battery charger. It will recharge the battery when connected to an USB plug. You can also use other ESP8266 based bords (link / link / link) if you wish. Deppending on the board you choose, it would be a little more difficult to connect and recharge the battery, or to connect the LED matrix. The dimensions of the case will also need to be verified.
    • Firebeetle covers - 24x8 LED matrix. This module easilly fits on top of the Firebeetle ESP8266 dev board. I used it to display the values measured by microcontroller, display some status, etc. You can also use other kinds of display if you wish, like ordinary LCD displays (link / link) or OLED displays (link / link).
    • HX711 module (link / link / link). This works as a load cell amplifier. Four strain gauge load cells are connected to this module, and it communicates on a serial communication with the ESP8266 microcontroller.
    • 50kg load cell (x4); (link / link). They are used to measure the weight of the user. Four of them were used for a maximum weight of 200kg.
    • Micro USB cable;
    • 6 female-female jumper wires;
    • 2 x 15 mm plywood sheet (30 x 30 cm). It was used for the base of the scale.

    The links described above are only a suggestion of where you can find the items used in this tutorial (and support my future hacks). Feel free to search for them elsewhere and buy at your favourite store.

    I used a FireBeetle ESP8266 dev board, which was kindly supplied by DFRobot. It worked perfectly! I also tested the code with a NodeMCU board. It also worked fine (although the time for connection was significately longer... I still don't know why...).

    Did you know you can buy a Anet A8 3D printer for only $168.99? Get yours!

  • 2
    3D Modeling

    The smart scale was desgined using Fusion 360 CAD software. The model is composed of three different 3D printed parts: cover, case and foot. The case provides an enclosure for the electronics, protecting them from physical contact. Electronics are attached in the cover part (using some bolts). This part has a front visor, where the display is fitted. Load cells fit into the foot part, which allows the sensors to be attached to the base.

  • 3
    3D Printing

    You can download all the stl files on the following websites:

    I printed the whole structure in PLA, usign two different colors. The whole print took me around 5h30, using 0.2 mm resolution and 10% infill. No supports needed.

    This is a experimental prototype. Notice that it was designed for a given ESP8266 dev board model (the ESP8266 Firebeetle).

    If you don't have a 3D printer, here are some things you can do:

    • Ask a friend to print it for you;
    • Find a hacker/maker space nearby. The parts used in this model can be printed quickly. Some hacker/maker spaces will only charge your for the materials used;
    • Buy your own 3D printer. You can find the Creality3D CR10 for only $359.99! Get yours at
    • Improvise! You can try to assemble a structure without 3D printed parts.

View all 18 instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates