You might want to look into both OmniBuzz and SleepyMe; they're both free IOS app which seems to provide the functionality you want. I've not personally used either before but I have a friend who gets the train to work at a ridiculous hour every day and raves about OmniBuzz.
From what others have said about SleepyMe; it seems that the app currently only supports audible alarms (i.e. no option for vibration only) which may be a concern if you don't want to irritate other passengers.
Let's hope you never miss your stop again!
Best wishes, Tom