controlling arduino from across the country

Hi,

I'm planning a project to control a variety of devices remotely via an arduino. I have two options - SMS control and IP control (via a WIFI connection to a broadband network), and I need to choose which to use.

Wifi control seems a little more appealing to me, because it would allow me to use a range of devices to control the arduino in a more sophisticated way than SMS. In particular, with Wifi control I could add new commands and programming without a physical connection to the controller.

It also appears that there are a number of apps out there which allow me to control an arduino remotely via an iphone.

But I have two concerns:

  1. Reliability
  2. Security

---- Reliability ---

Reliability is paramount. I see reliability as being problematic in two ways.
a. Power interruptions
If there is a power interruption, I would want the device to reinitialise to a ready state automatically. Would arduino do this natively or would special engineering and coding be required?

b. IP issues
With a dynamic IP address, if this changes, it seems plausible that IP communication to the arduino would be interrupted. Is this a real issue?

---Security---
I am extremely concerned about security. I would like to be able to control plant which is rather more sizeable than a few LEDs. I would not want a bored kid in China to connect to my arduino, toggle an output at 500hz and start a fire.

Just how secure are the off the shelf apps which control the arduino from an iphone? Do they just rely on the hope that no one is malicious, or do they incorporate some degree of password protection? Absent such protection, I think an SMS solution clearly comes out on top, but I think robust IP encryption would beat SMS, security-wise.

Many thanks in advance for your help. As you can probably tell, I'm rather new to all of this, but I have quite a definite problem which needs to be solved, and the arduino seems like a really elegant way to approach it.

if security is so important, then it seems some what unusual you want to rely on a $10 micro controller. You best go with a pc based secure system.

on re-start, the program you write will be followed to the letter.

if you have anything that relies on pre-existing information you need to write the code.

you get to choose how it will react when started or re-started.

one problem is the external device failure modes. if they can fail into a safe condition, that would be great.
in industrial controls, we often use a spring to close valves or dampers if the event of loss of power. then re-start is safer.

point #2, you can always send out a ping to an e-mail. that way, the sending IP address could be determined and communication re-established with the remote.

point 3#, protection - you can write a series of IF statements that would require specific reposes. if the responses are incorrect, it could shut down the control or stop listening for some period.