Skip to content

Latest commit

 

History

History
102 lines (74 loc) · 3.5 KB

File metadata and controls

102 lines (74 loc) · 3.5 KB

Smart scale bluetooth hack

This arduino sketch is an attempt to reverse engineered the diki smart scale.

I guess it should be working with all smart scale compatible with the Alfit app:


Requirements :

  • Hardware :

    • hm-10 (bluetooth LE module)
    • any arduino (in my case, arduino Uno)

Now connect the hm-10 to the arduino.

Wiring :

Arduino Pin Hm-10 Pin
3.3V VCC
Ground Ground
10 TX
11 RX

Configuration :

First update the hm-10 firmware to a recent release. You can find different firmware release on the official website of the constructor.

Here is an instruction manual on how to update your firmware

In order to make it work we need to configure the hm-10 module
First upload the hm10_comm.ino sketch to communicate with the module.

Once you've uploaded the sketch open the serial monitor, type AT in the input box and press Enter If everything works fine, you should OK written in the serial monitor.

Now like with the AT command, follow the next steps :
AT+IMME1
AT+ROLE1
AT+NOTI1

Try to disconnect all your device with bluetoothLE near you, so that the module will only detect the smart scale.
AT+DISC?

Something like that should appear:
OK+DISCEOK+DISCSOK+DIS0:03B3EC12008DOK+DISCE

If there is nothing, do it again until you see something, if still not verify that your scale is powered on and has no problem.

Will consider that there were only one device found otherwise do the following steps for each device until you find the smart scale.

Now enter
AT+CONN0

you should have this as answer
OK+CONN0OK+CONN

Now step on your scale and look for the serial monitor, if some gibberish appears, congrats you've connected your scale to your arduino.

Now enter
AT

you should have this as answer
OK+LOST

Then
AT+IMME0

And at last
AT+RESET

Here is the hm-10 module DataSheet with all the AT-COMMAND

Now upload the sketch bluetooth_reverse_ingineering.ino open the serial monitor and step on your scale.

To do:

  • Update code for esp8266
  • Use vector instead of static array to hold serial word
  • Add option to persist data on database
  • POO version