You may have to write code to ignore short triggers caused by road vibration. Only set off your alarm when the trigger is longer than "x" ms, when it is obvious that it is due to someone opening the cap. Find "x" by trial and error, or log the duration of every trigger over some number of days and figure it out from that data. That may allow you to use your existing 15 degree sensor. Or maybe not.
Also, damping would help control erroneous triggering, and Google says that tilt sensors with damping are available. Or you could build your own: e.g., a pendulum with some friction would be one way. A pendulum hanging from a small rotary damper with viscous (i.e., velocity-dependent) damping would be better.
How this can be done? could you please help me with the changes what i have make with the code.