Control Arduino with iPad locally

I'm going to be installing an iPad in my car. I have an Arduino Mega connected to a Sainsmart 12v relay board that I use to control some lights and other things in my car.

I want to design a nice custom interface that I can use on my iPad to control the Arduino (none of these pre built general Arduino apps that are on the app store).

My first thought was that I could build a website that could send commands to the Arduino. This would be nice because I could build a killer looking site as HTML/CSS/Javascript is easy. But then I realized I'll have nothing to run the website on in my car, and the Arduino has no way to be connected to the internet in my car.

As of now I think my best bet is a bluetooth low energy shield and writing a custom iOS app. I would ratherrrr not go this route, as iOS apps are a pain to code. I can do it, but I would have a lot more design flexibility with a web based solution.

Does anyone know of a way that I could control an Arduino using my iPad when there is no live internet connection in my car? I also have a raspberry pi that I could work into this too...

I don't use any apple devices, but my Android phone has several apps that allow you to create custom buttons to send specific text to an Arduino via bluetooth. Perhaps there are similar apps on the Apple side of things that allow you to put a veneer over the raw bluetooth interface.

It is possible to run a website in your car believe it or not. You can use a Raspberry PI as a server and connect to it directly using it's IP address over a network. Just like how you access your router or use IP printing. Just hook everything up to a small router, set up the server, program the Arduino, and done!

You can use the Arduino as a server but I'm not sure if there is any way to make it act as an Access Point.

One way of doing it would be run a HTTP server on an Arduino with Ethernet then use a TP-Link WR702N Nano, in Access Point mode, connected to the ethernet on the Arduino. The Nano runs from 5V via a USB lead, so is easily hackable.

Your iPad could then just connect to the car access point and get onto it's local network, which simply has the Arduino server on.

tack:
You can use the Arduino as a server but I'm not sure if there is any way to make it act as an Access Point.

One way of doing it would be run a HTTP server on an Arduino with Ethernet then use a TP-Link WR702N Nano, in Access Point mode, connected to the ethernet on the Arduino. The Nano runs from 5V via a USB lead, so is easily hackable.

Your iPad could then just connect to the car access point and get onto it's local network, which simply has the Arduino server on.

Interesting. The access point thing was the part that was throwing me for a loop. I found some info for the TP-Link here: http://www.lucadentella.it/en/2012/12/09/enc28j60-e-arduino-11/ (interesting that the TP-Link is actually getting powered from the Arduino here)

Could this also be done with a wifi shield?

So essentially I could run a HTTP server with Arduino to build a simple website. Connect the Arduino the to access point. Connect to the access points wifi network with the iPad and hit the local IP and I should be able to control it!

The HTML i've seen in most Arduino examples seems exceptionally basic, do you have the flexibility to host some more complicated sites on an Arduino?

Thanks for the help!

I'm not sure about the WiFi shield as it all depends on having an Access Point for your iPad to connect to. I am waiting on a couple of WiFi modules to arrive from China to play with myself as I currently use ENC28J60 + WR7-2N to convert ethernet to WiFi, but I am connecting outwards to a router/AP, rather than inwards like you want to.

It's a shame it's not an Android tablet as you could have done it very simply with a Bluetooth adapter for less than £10.

See the following link for web server on Arduino - Excellent Arduino Ethernet Shield Web Server Tutorial - Networking, Protocols, and Devices - Arduino Forum