1

I have a small project which will use iPad as an information kiosk for visitors to browse and one of the requirements is that the iPad needs to communicate with Arduino (with ethernet shield) by sending commands (basically texts) through LAN (or internet) to a port of another display computer.

Been reading about iPad app development including XCode, Cocoa and Objective-C. It seemed to me there's a whole bunch of programming stuff specific to the iPad to familiarize with before I can jump into development. I have a couple of years of experience in LAMP stack but still it looks a bit daunting to get started since the deadline is just well over 3 weeks.

I am now weighing my options, instead of a native app, I am gathering information on building the app using HTML and CSS (web-based). All functions would be built into a web-based app and the iPad acts as a client, triggering the function inside the web-based app and sends the command to Arduino, and the Arduino would in turn send a command to the display computer.

And I thought for a while that I might be able to setup a webserver inside the display computer. Having the iPad opens a web-based app from the webserver and triggers whatever function called and a script in the app would send a command to itself at port 3040.

Now, questions:

  1. Saw this hackaton (Yelps 2nd Hackaton - The iPad Kegbot) the other day and it used iPad with Arduino but couldn't dig deeper. Any clue?
  2. If I were to make a native app, what are the steps to get the app available, to at least a few personal iPads since this app would only be used internally?
  3. Any iPad Arduino integration out there but unpublished (or undetected to my tiny radar)?
  4. I am familiar with HTML, JS and CSS but not to mobile safari, is there anything that I could use as a reference or library that I could use to speed up the web-based app development?

Much appreciated!

Scott
  • 308
  • 4
  • 20

3 Answers3

3

Note that these days (2015+) the IDE for Arduino boards (both Windows or Mac) is really quite easy to use. Just click to download and away you go. This extremely old QA is rater out of date now.


To just "get something done" as you describe, you could possibly use something like Corona ( http://www.anscamobile.com/ or perhaps nowadays at https://coronalabs.com ) In some cases if you are just getting started with iOS/Android that can save you time.

Networking --------

Personally, I would advise you to AVOID the web-related approach. It will likely dead-end. I would advise to take the time (some days) to get some sort of simple low-level communications going between the iOS device and Arduino.

In general terms, on the iPhone, "GameKit" (if nothing else) is ridiculously easy to use for networking. For example this QA has info about how you might make your own protocol (just a data structure) and how that relates to other iOS networking concepts, and may thus answer some basic questions you have.

In answer to your other question "If I were to make a native app, what are the steps to get the app available, to at least a few personal iPads..." These days (2015+) it's basically quite easy and you needn't even pay Apple anything for up to 100 or so devices. You can easily google 1000s of QA on this, and the details will change from year to year.

Community
  • 1
  • 1
Fattie
  • 27,874
  • 70
  • 431
  • 719
  • That's a lot of useful information, thank you, Joe! About the Arduino thing, provided that you haven't already googled, here it is : http://www.arduino.cc/ :) – Scott Nov 03 '10 at 07:56
  • Thanks Joe! Yeah, Arduinos board are quite cheap as compared to some other boards like Beagle Board. It's easy to integrate with other components such as sensors, camera, buttons etc. And the good thing is there's an active community and a team of developers keep polishing it. But it has its own limitation as well such as too little memory to store the code. Guess it trades many things for simplicity. – Scott Nov 04 '10 at 01:38
  • Yes, there's a wireless shield for Arduino called Xbee (http://www.arduino.cc/en/Main/ArduinoXbeeShield) and Bluetooh (http://www.arduino.cc/en/Main/ArduinoBoardBluetooth). Haven't tried them myself though. – Scott Nov 09 '10 at 06:43
1

I have implemented a similar (native) iPhone app with an Arduino. Communication was done over UDP. Today I would go for ASIHTTPRequest (http://allseeing-i.com/ASIHTTPRequest/) and a web server on my Arduino and JSON (http://interactive-matter.eu/how-to/ajson-arduino-json-library/)

The effort for a novice iOS developer building an app is very high (starting with all those certificates), so I would suggest you to put a web server on your Arduino: http://arduino.cc/en/Tutorial/WebServer and call the site in Safari. Later you can try your skill with iOS programming. And I highly recommend to start with the iOS simulator. This requires no registration and it's free! Simple download Xcode from the Mac App Store and start.

It has some limitations, but it's a lot easier than building a native app from zero. Espe

flexo
  • 1,120
  • 1
  • 9
  • 14
1

Depending on what the user interaction is required on the iPad you could create a web application that interacts with the Arduino. And than use something like iWebKit or iUI to adapt your view layer for the iPad.

Ruben
  • 9,056
  • 6
  • 34
  • 44
  • The interaction is quite simple, just a few buttons (or clickable images) with each click sending command to Arduino or sending command directly to a computer with port 3040 open, whichever easier. – Scott Nov 03 '10 at 07:22
  • Then I think iWebKit and iUI are libraries you can use to speed up view layer development of the web based app. And they should both integrate well with the LAMP stack you have experience with. If you do have the time a native application offers more possibilities to create a rich user experience. – Ruben Nov 03 '10 at 07:59
  • Yes, at least part of the development wouldn't be a total dark area for me. Thanks! :) – Scott Nov 04 '10 at 01:42