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
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.
Step 5: Test Drive
Speedometer works correctly, and also it is strong enough to survive a very aggressive forest ride. That’s all I wanted to show you, so see ya later! You can watch test drive video by this link