I'm working on a project where I have an Arduino Ethernet Shield and one, and I plugged everything locally configure a router and it works but now I want to access and control the Arduino from another network (remotely). I need a public IP? or is there another way?
If you don't want to pay for a static IP, you can sign up for a service such as dyn-dns that will map a domain name to your IP as it changes. You will need a PC on the network to run their client software though. Also, I wouldn't recommend dyn-dns - they recently instituted a policy that you have to respond to an email every month to keep your free service alive. There are other free equivalents though.
I've been researching this same topic and find it incredibly difficult to get a complete answer, especially concerning which router/cable modem/DDNS service combo works best/easiest/or even works at all.
There seems to be two basic approaches (very briefly and probably only semi-accurate to NA)--
An external server that devices attached to your local network can communicate with through the internet, such as xively (formerly pachube) or others. Most seem to have a minimum service free version or be a user-supported school project of some kind. To access your devices remotely you would need to access the external server which I believe can only pass information back and forth to your home network when your devices contact the server.
The other approach is to allow external access to devices on your own home network through your router so in effect you could sign on directly to the device from the internet. As the other reply noted you need a method to locate your device on the internet. Your internet provider normally uses an address that changes over time and is resolved between the provider and your modem. They can provide a static IP address at extra cost (~$20/month in my case). With a set address you can set your domain name to point where you want it. Or you can use a service like dyn-dns (or a dozen others) to translate your current dynamic address from the internet service provider into a stable domain name.
So far the Cable company technical people were unable to help except to say that the only way a static IP was available was through a business rather than residential cable plan at higher cost.
It does appear though that many relatively recent routers are capable of broadcasting the current dynamic IP address automatically to the DDNS servers in which case no PC-level computer needs to be powered up on the home network. For Arduino projects having to have a PC on all the time as a gateway kind of defeats the purpose, doesn't it? Unfortunately there does not seem to be much information regarding which model routers work with which services. I currently have some questions in to DLink regarding one router that's available locally. DLink also has some sort of deal with dyn-dns for a free account but I am not clear on the details.
I haven't contacted any of the other router manufacturer's but I would be happy to update with info from Dlink if they respond. So far the on-line technical support directed me to sales email so I am not overly confident.
PS: Safety first!!! Make sure you set up adequate security (like a firewall) if allowing external access to your network.
In case anyone wanted some additional info:
Finally had a chance to test the dynamic dns setup with the new router. The Dlink router appears to be correctly updating the DDNS entry without any PC intervention. I believe it will automatically keep the DDNS entry updated even if no pc is powered up. Worked with the Ethernet server example and connected through the internet with only a small amount of fiddling (mostly to do with ports) -- very cool.
NOTE though that the router I have appears to do the ddns update automatically only for dyndns.com and doesn't appear to be able to work automagically with any other service. By using www.dlinkddns.com you can set up one free domain name through dyndns. The name will be xxxxxxx.dlinkddns.com.
Though I guess it should have been obvious (duh!) when testing you will need to supply the port number and must not use www or http in the domain. I found it easiest to set the router up to respond to pings until I got it right.
Hi Doug , Man, I am battling for a week now to get WAN access to my network. I got a D-link modem.
Applied for a domain name with dlinkddns.com entered it in the spaces provided but can only access my webserver from my local PC.I.E LAN If I try from another PC via another ISP in other words WAN it cannot find it. So please, can you explain. in detail what I must put where in the Dynamic dns user name? is that my username with the service provider firstname.lastname@example.org I did fill that in but still no joy. What must I put in port forwarding? I put webserver HTTP some port numbers and for server ip the ip address as per sketch. What I am missing here?
What I am missing here?
Is your D-link modem a router or an Ethernet modem that takes input from a cable company? Got a link to it?
Hi zoomkat. thanks for the question.
The modem, is a router connected to an ADSL line to my telephone company. By the way I got the Dyn ip working but still cannot call up the webpage from another PC via a different ISP. Wifi. I can however call it up form the PC connected to the router.
Does that help you?.