S
It seems the easy part of this is the actual opening of the gate. A simple bash or python script can run the appropriate commands to send a signal to open a relay/GPIO pin.
The hard part seems to be the connection between phone (as you want to be mobile!) and the onion.
A couple of ways I can think of:
1: Use Telegram - It is a messaging app but you can use it to send commands to a device. The device polls Telegram through an API and if a specific command is sent then you can tell it to do something. ie, run a script that opens a gate!
2: Use IFTTT maker channel - Its a simple cloud based automation tool. So you can either have an IF This Then That, so if your phone gets to this GPS co-ord then open the gate. Or better would be the DO function of IFTTT which you launch the app and it has specific buttons which you can set, ie button to open gate, button to close. In the background, again the device will need a webhook to poll the API of IFTTT looking for the DO button presses.
Each method relies on polling the API of the service, IFTTT DO function would work better as the command structure of Telegram would mean you'd have to a send a command (ie /opengate) whereas the DO presents a nice button on an app you press.
As each method relies on polling an API and you'd want it to be fast I reckon you'd want something like poll every second. I dont know if this is possible because I've not used it before!
IFTTT: https://ifttt.com/maker
Telegram: https://core.telegram.org/api
I did make a post on how to use Telegram for notifications, so you can use this to setup your bots which seems a bit odd at first. https://community.onion.io/topic/499/sending-telegram-messages-via-bots/1