Is there a way of waking up an Arduino board by shaking any sensor or something. There's something similar in "SparkFun Wake on Shake" board. But I want to do it without using this SparkFun board.
Sample project in below link is what I really want to do.
You could certainly reproduce that project if you wanted. I don't think the ATtiny2313 is absolutely necessary. The benefit of it is that it means you don't need to run any special code on your Arduino because all the "Shake and Wake" code is running on the ATtiny2313.
The most simple system would be to use a simple vibration sensor something like this: www.ebay.com/itm/142191692764
connected a pin of the Arduino to wake it up. That's not quite the same as the Sparkfun board with the accelerometer though because it more limited in what types of movement it will sense and you would have to handle adjusting the sensitivity differently. If you did it right it could result in significantly less power consumption while sleeping because you've gotten rid of two ICs. It will also reduce the price for the same reason.
I was talking about using the switch to wake the microcontroller up from sleep via a pin change or level interrupt. You just set the pin to INPUT_PULLUP mode and then connect the switch from the pin to ground. Inside the switch is a spring that closes the switch momentarily when shaken and triggers the interrupt.
There are a variety of these sensors available. The link I posted was just the cheapest one to pop up in my search. I actually haven't tested that style yet. I did try out a few of the other common ones and I found that these were more sensitive to vibration: www.ebay.com/itm/311747189004
And these were less sensitive: www.ebay.com/itm/201073479103
You could also decrease sensitivity in code by requiring multiple triggers from the sensor or it can also be done via hardware.