This is a hack which was run against an ordinary off the market weight scale product which was then used to push data to google sheet to keep track of the weight overtime
The process being simple as
- A user measures his weight by standing on the scale
- We use a WIFI micro controller connected to the weight scale to pull all the data parameters.
- The micro-controller then uploads data to google sheet of the user.
- In long run user should be able to view data on his google sheet and as well also see the trend line for it.
With this hack i was able to pull following parameters:Weight,Bone%,Water%,FAT%
Step 1: Watch Overview Video
Step 2: [Research] How Does Weight Scale Work!!
I spent lot of time(2 Weeks) studying debugging diagnosing how weight scale works, if you are really interested how the same was done you can follow this link R & D
I was using MKR1000 but that was just for R&D phase.
- The Weight Scale exposes a UART bus which was initially designed for BLE module
- The speed is 7600 of the bus.
- And it exposes all the info of weight and BMI
- Protocol is as mentioned here
Step 3: Bill of Materials
- A nice hack-able weight scale I got this Weight Scale1300 INR 1Pcs
- ESP8266: I got this ESP8266 but you can get any 399 to 599 INR 1Pcs
- BC548 10 INR 2Pcs
- 10K 1/4w 5 INR 4Pcs
- 1n4148 5 INR 2Pcs
- OLED SPI 320 INR 1Pcs.(Optional)
- Some kind of battery I used Power Bank(will replace it with better one soon
- A day to assemble everything.
Step 4: Circuit Design
As per the info found from R&D, it was now time to make a small portable circuit which can house all the components and sit on the scale. Below are the requirements
- The circuit should be small in foot print so that it can be housed on the scale itself
- It should be ULTRA low power so that it does not need frequent charging.(i dont like the idea of charging a weight scale not really user friendly)
- Port for programming
- Port of OLED display optional
With all these requirement in mind i came up with the following schematic & board layout
The heart of the circuit is the ESP8266 which enables to connect to WIFI and do the necessary UART protocol decoding and transfer data to google sheet.
Whenever the User steps on the scale, it wakes up and so does the UART by send eight bytes of zeros, the Idea is to monitor the UART activity and wake up ESP8266 from deep sleep and start its routine of reading the UART
For this i needed an SR latch which will send an RESET signal to the ESP8266 to wake it up from deep sleep further more once the routine is completed ESP8266 will trigger the reset of the SR latch so that the SET pin becomes active and start monitoring UART RX line.
This help us in keeping ESP8266 in deep sleep mode until the user steps/uses the weight scale.
Circuit board design: Board-layout