Wifi Board control over the internet

Hello, I am new to arduino and I apologize if I posted this in the wrong area. I was curious if I got the wifi shield and had a mobile hotspot, could I put the mobile hotspot on a drone and be able to send it commands while constantly receiving telemetry such as GPS and direction?

The idea is that I can remotely control this drone from an unlimited distance, so long as I have an internet connection. I would also like to be able to control it via an android phone or tablet with a 4g connection. Please let me know if this is beyond possibility, or how it can be achieved.

Thank you very much for your time! Have a great day!

Sure, it can be done, but there are some things you need to think about.

The main issue is you won't be able to contact the arduino directly through the hotspot. This is because typically such hotspots do not give you a fixed IP address, by default. You might be able to pay extra for your wireless carrier to give you a fixed address for the hot-spot, and in turn configure the hot-spot so it can pass through packets for a particular port to the arduino. A more typical way to do this is setting up a control at a host with a fixed IP address and a web server, and have the arduino contact that. That host would act as an intermediary, relaying commands from you to the Arduino and back and forth. Presumably you would need appropriate security, etc. This means programming the intermediate host as well as the Arduino.

Given the limited memory in the Arduino, you likely don't have the resources to open up a VPN (virtual private network), which would allow you to contact the arduino directly.

Another issue is how much traffic is generated. While mobile hotspots/cell phones can give you the internet anywhere, if you exceed the data limit, you might get cut off, start paying by the megabyte for overages, or get your bandwidth reduced. If you are just sending text status messages every so often, that is probably fine. If you are trying to stream video, that will likely put you over the limit. Another issue is making sure you lock down the connection so other people don't start using it as free wifi.

Obviously your drone might have to deal with areas that have limited cell reception (dropped calls, no signal, etc.)

Finally, you will need to power the hot-spot, the drone, and the Arduino. I suspect the drone will use the most power, but you do need to take into consideration the power usage of the mobile hotspot.

Now, depending where you are in the world, and what cell phone company you use, rather than using a mobile hot-spot, you can get a GPRS/GSM Shield, which provides the mobile internet connection.

Alright, I really appreciate the message.

I contacted my local provider and I was informed that their mobile hotspot devices dont change IP addresses, they remain the same for the contract. Would that eliminate the need for creating a server? or the VPN. I dont really understand how all of this would work. Can I send commands to my fixed IP and pull information (telemetry) and command it through the internet, and that wouldnt require additional programming?

The hotspot has a built in battery, so that wont be an issue. On just the motors, I should have about 1.5 hours of flight time, with a camera Im not that sure how long.

I plan to have a preprogrammed response to losing internet connection where the drone will return to the launch point or another designated point autonomously. Or if it loses internet connection, it could manage its internet use, such as the camera going off first, then telemetry, and at least a gps location for recovery.

Could I record all flight information, like telemetry every 1/4 second on a micro sd card? For analyzing flight information on google earth.

THANK YOU VERY MUCH! Ive been searching information on this and couldnt find anything.

I have just done this. The way it works is this:

I have an Arduino Uno and an Arduino Wifi Shield, also a internet hotspot through an Android phone.
The Arduino connects to the hotspot, reads all pin values, sends the information to my server/php. Like this: http://myserver.com/stringdata.

After the server has read the data sent, it does calculations based on it and replies with a body message in form of a string. Like this: echo $returnstringdata.

The Arduino reads only the returned string through a http library (i forgot the exact name). It skips the return headers thanks to the library.

UPDATE: the library is called amcewen httpclient, youll find it on github. I have slightly modified it to fit for WiFi shield rather than the Ethernet shield.

I convert the returndata to variables and make my arduino set its pins based on the server calculations.

So it is possible to use a http client with a normal wifi hotspot phone to communicate to and from an Arduino.