A cheap way to get an Arduino on WiFi

Update 3/8/2014: There is an Arduino WiFi shield for around $40 now sold by Adafruit Industries (but you have to solder on the connectors). That shield costs about as much as the TP-Link router I mention in this article, and a $20 Ethernet shield. However, with clone Ethernet shields now around $9 from China, it’s still cheaper to hack something together. (Another advantage of the TP-Link device is you can have it set up to connect and publish the connection via Ethernet, and plug it in to anything that needs it — an Arduino, an OUYA, TiVo, etc.)

To test my Arduino Ethernet code, I needed a way to get my Arduino on my home network. Unfortunately, my router is somewhere else, and I was not able to run a long ethernet cable to it. I initially experimented with making my old MacBook act as a gateway using Apple’s Internet Sharing. I was going to have it share my home WiFi internet out the ethernet port, and hook that port up to the Arduino. Unfortunately, again, it seems there is some problem with the current version of Mac OS X and Internet Sharing and I was unable to get it to work. So, I turned to a free bit of software called Ice Floor which is a GUI front end for the Unix firewall running on Mac OS X. With a bit of Googling I was able to configure Ice Floor to let my Arduino hook to the MacBook, then reach out to the Internet.

I won’t be writing about that. It was easy, once I figured it out, but I spent all night trying.

What I really wanted was a way to get my Arduino on my home WiFi.

With Arduino ethernet interfaces being real cheap if your order from China, or slightly less cheap if your order from the USA, it puzzled me that WiFi shields were so much more. Well, if you don’t need everything to fit inside a small Arduino case, you can just get one of the cheap Ethernet shields and then use one of these things:

http://www.amazon.com/TP-LINK-TL-WR702N-Wireless-Repeater-150Mpbs/dp/B007PTCFFW/

This $23 TP-LINK WR702N WiFi router is really teeny tiny (about 2″x2″ and .5″ tall), and comes with a short ethernet cable, USB cable, and USB power supply. It has several modes of operation, including the one you would expect — plugging up to an Ethernet jack and broadcasting it as a WiFi signal. But, it also has a Client mode, so you can plug it up via Ethernet to the Arduino and then use it as a WiFi card.

Configuration was a bit tricky because I didn’t know what I was doing, but basically, you plug it up to power (USB or power adapter), and configure it via your computer and an Ethernet cable. If your computer is already on a network that is 192.186.0.x (like mine was, from my home DSL router), you will need to disable that from your computer (turn off WiFi, or unplug the Ethernet cable). The instructions (on the website) tell you to change your computer’s IP address to 192.168.0.10, and then in your web browser you go to 192.168.0.254 (which is the router’s default IP address). Up loads an admin web page.

Type in the password (admin/admin), then click the easy setup button and select Client. It will then give you a screen where you can browse to the WiFi network you wish to join, and enter the password (if it’s a protected network) and encryption method used (again, if it’s a protected network).

Once you do that, the little box will reboot and then try to connect to that WiFi hotspot, and then get an IP address from it and link the Ethernet port to the WiFi… So, configure it, then unplug it from the computer and plug it to the Arduino and… your Arduino’s Ethernet code now talks out WiFi.

So, if you ever try to telnet in to my home Arduino, that is how the connection will be getting there.

Just passing information along. Hope it helps someone.

11 thoughts on “A cheap way to get an Arduino on WiFi

  1. Ads

    Thanks mate! this was EXACTLY what i was looking for, and wondering if was possible. Can I ask have you tried setting the tplink to router mode, plugging in the arduino, and trying to access the arduino from another pc via wifi? for example running the ethernet chat server example and trying to access the arduino directly and wirelessly? would be cool.
    Also curious if you could plug a mini ethernet hub into the tplink and connect many arduinos to the net through the one tplink router. Thanks for the tutorial though buddy!

    Reply
    1. Allen Huffman Post author

      Yes, I used this device and was able to telnet in to my Arduino remotely. I had a small BBS program running on mine that way for awhile. It works great!

      Reply
  2. Greg

    Hi!
    Can you share how did you configure IceFloor to connect Arduino Ethernet Shield to the ethernet port on your macbook (via Wifi to Ethernet sharing) ? I’m kind of stuck on it now :/
    Thanks!
    Greg

    Reply
  3. garth

    Hi. I am thinking of using Arduino for BitTorrent server. The WiFi option would make it very convenient to use.

    Please post your BitTorrent server code so I can copy and paste it into my Arduiono. Thank you.

    Reply
  4. Daniel

    There is also a TP-LINK WR703N which has a USB interface. Chinese only web interface – mitigate that by installing OpenWRT – and then you also get a “full” Linux environment on the router that you can use to connect through the USB port to your Arduino. No need for the Ethernet shield….

    Reply
  5. Pingback: Configuring the TP-LINK TL-WR702N nano router for Arduino | Sub-Etha Software

  6. electronicska

    I’ll try it, just bought this router online and i think i will use it in my engineering degree project :).

    Reply
    1. Allen Huffman Post author

      I also use one on a Raspberry Pi. The Pi cannot do a network install over WiFi, so I have a TP-LINK configured on my WiFi network that I can plug in to the Pi ethernet and let it install that way. I also use one on a printer I have that only has ethernet. This is turning in to a very useful device.

      Reply

Leave a Reply