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:
-
- hm-10 (bluetooth LE module)
- any arduino (in my case, arduino Uno)
Now connect the hm-10 to the arduino.
Arduino Pin | Hm-10 Pin |
---|---|
3.3V | VCC |
Ground | Ground |
10 | TX |
11 | RX |
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.
- Update code for esp8266
- Use vector instead of static array to hold serial word
- Add option to persist data on database
- POO version