This project based on Arduino, it will measure time of one revolution of wheel, then divide wheel's lenght on this time, and it will be the speed. Revolutions of wheel will be measured by magnet and hall sensor. I used servo motor with arrow and scale to show the speed, it looks like "analog". Also I used 7 segment display to show distance (odometer), also arduino write odo in its EEPROM after bicycle is stopped, so odo keeps in Arduino and not clears after system reboot.
You can watch all process of making this device IN THIS VIDEO
Step 1: Components and Wiring
All we need:
- Arduino NANO http://ali.pub/pd9j7
- Hall sensor http://ali.pub/v9li4
- Servo http://ali.pub/ukaeg
- Display http://ali.pub/b8fzv
- 5V dcdc step up http://ali.pub/u5pg9
- Lithium charger http://ali.pub/zvytc
Connect components by scheme.
Sketch for Arduino and library are here, on my GitHub page
Step 2: Body
Body is made of shoe sponge box. Servo and display are fixed by hot glue. Button fixed by superglue.
Step 3: Scale
Draw scale on thick paper and cut it off. Arrow is made of painted toothpick and fixed to servo by thermalshrink tube
Step 4: Mount
Speedeter will be mounted on bike's handbar by tube mount. Sensor wire I wond around brake tube. Plastic cap is body for hall sensor. Magnet I fixed on cable holder.