An Arduino Device that Monitors Your External IP Address

[Bayres’] dad setup a webcam as a surveillance camera for a remote property. The only problem was that the only stable Internet connection they could get at this property was DSL. This meant that the external IP address of the webcam would change somewhat often; the needed a way to keep track of the external IP address whenever it changed. That’s when [Bayres] built a solution using Arduino and an Ethernet shield.

The main function of this device is to monitor the public IP address and report any changes. This is accomplished by first making a request to checkip.dyndns.org. This website simply reports your current public IP address. [Bayres] uses an Arduino library called Textfinder in order to search through the returned string and identify the IP address.

From there, the program compares this current value to the previous one. If there is any change, the program uses the Sendmail() function to reach out to an SMTP server and send an e-mail alert to [Beyres’] dad. The system also includes a small LCD. The Arduino outputs the current IP address to this display, making it easy to check up on the connection. The LCD is driven by 74HC595 shift register in order to conserve pins on the Arduino.

The system is also designed with a pretty slick setup interface. When it is booted, the user can enter a configuration menu via a Serial terminal. This setup menu allows the user to configure options such as SMTP server, email address, etc. These variables are then edited and can be committed to EEPROM as a more permanent storage solution. Whenever the system is booted, these values are read back out of the EEPROM and returned to their appropriate variables. This means you can reconfigure the device on the fly without having to edit the source code and re-upload.

Using an Android as a webserver

In the latest episode of XDA TV [Adam Outler] turned his Android phone into a webserver. At first this might sound comical, but the ever-increasing power of our handhelds makes it a pretty legitimate option. It’s hard to come up with concrete uses off the top of our head, but we’re sure there’s value in being able to pull the phone out of your pocket and serve some content.

The app BotBrew Basil makes the installation process nearly automatic. It gives you point-and-click access to install the lighttpd webserver package and set the daemon to run automatically at boot time. That’s it! Of course you need to supply your own HTML to be served. [Adam] used an HTML5 website template for this.

Next you also need a way to resolve the address of the phone. In this case it’s assigned a static IP from the router, and a dynamic DNS service provides a link that maps to the router’s location. But since these phones are running Linux (at least on the lowest level) it should be pretty easy to add a cron job which will send IP address updates to the service if you want to take the ‘webserver’ out in the world with you. You can watch the entire video after the break.

Ironically this is a big hardware upgrade for [Adam’s] webserver. The previous version was running from an Evalbot.

Continue reading “Using an Android as a webserver”

Dynamic DNS updating – no PC required

arduino_ddns

[Boris] from Open Electronics recently wrote us to share their latest creation. Like many of us, he uses DynDNS to keep his home network a FQDN’s reach away. While DynDNS is quite a convenient service, many people don’t like the idea of leaving their computer on all the time to keep the IP updated. That’s where the Arduino DDNS module comes into play.

Built using a standard ATMega328 with the Arduino bootloader installed, the module periodically checks to see if the user’s IP has changed, updating the DynDNS entry as needed. The Arduino talks to the network via a WIZnet Ethernet breakout board, contacting DynDNS’ servers to check and update the user’s IP over a series of standard HTTP requests.

We are aware that several router firmware packages such as DD-WRT have this functionality built-in, but this project makes for a nice alternative when those resources are not available.

As always, a bill of materials, PCB layouts, and Arduino Sketch code are all available for download over at the Open Electronics site.