I was looking into an inexpensive alternative to a Wi-Fi shield for the Arduino, at first considering XBee Wi-Fi.
The Yún shield
There is also the Newest Iduino Yun Shield Linux WiFi Ethernet USB Compatible for Arduino Board, for £20,
which is a lot cheaper than the exorbitant Arduino Yún (£50):
Description:Iduino_Yun_Shield, an extremely powerful development for Arduino board, is designed to solve the problems of connection and storage which exist in the Arduino board. Iduino_Yun_Shield runs Open Source OpenWrt System (Same system as runs in Arduino Yun) and it is fully compatible with Arduino IDE V1.5.4 or later versions. Yun Shield is an ideal choice for Arduino Projects which require various internet connections and more storage.Actually, Iduino_Yun_Shield is equal to the official Arduino Yun, but Iduino_Yun_Shield is more flexible because it can work with other Arduino board such as Uno, Duemilanove, and Mega etc. Iduino_Yun_Shield uses external antenna which provides stable connection under various environments.The Iduino Yun is the core module of Iduino_Yun_Shield. And it requires 200mA current when in full load, so it is powered by the Arduino VIN pins to avoid overheated in the Arduino onboard 5V LD0.
Features:1. Open source Linux system (OpenWrt) inside2. Low power consumption3. Compatible with Arduino IDE 1.5.4 or later versions. Users can program, debug or upload Sketch to Arduino board4. Managed by Web GUI, SSH via LAN or Wifi5. Software upgradable via network6. Support internet connection via LAN port, Wifi or 3G dongle7. Support USB flash to provide storage for Arduino projects8. Reliable design provides robust system9. Compatible with Arduino Leonardo, Uno, Duemilanove, Diecimila and Mega
1.1 Overview and Hardware Resources1. Processor: 400MHz, 24 MIPS2. Flash: 16MB3. RAM: 64MB4. Power input: 4.75V~23V via Arduino Vin pin5. 1×10M/100M RJ456. Connector 150M Wifi 802.11 b/g/n7. External antenna via I-Pex8. 1×USB port for USB storage or 3G connection9. 1×Reset button10. Compatible with 3.3V or 5V I/O ArduinoSize: 70mm * 53mm*24mm1.2 Software ResourcesCompiling environment: Arduino IDE 1.5.4 or later version
2.2 Interface specifications1. RJ45, Wifi, USB port and Failsafe are connected to the Iduino Yun module directly, and the Iduino Yun module uses SPI and UART to communicate with Arduino board2. The SPI interface is used to upload the sketch coming from the Arduino IDE. SPI interface connects to Iduino Yun only in the upload time, so the Arduino SPI can still be used to connect to the other slave devices.3. The pins of two sides are respectively connected to the corresponding pins of Arduino.
I’ve been playing with one for a couple of weeks bridged to an Uno, works just like a real Yun. I tried a cheap leo clone, didn’t work but Dragino’s wiki mentioned that some of the clones have voltage issues on the SPI. I’ve been happy so far. Dragino, the manufacture of the shield has done a good job with documentation in how to get it to work with the various Arduino flavors and troubleshooting. They also updated the Yun firmware to the latest Barrier Breaker version of OpenWrt ( unlike the real Yun ) and added UI customization to select the Arduino type hooked up.
The microSD of the real Yun is attached to a USB hub that is part of the Yun main board. You should be able to mount a usb flash drive in the same way to store the web service data.
For installing packages, make sure that the OpenWrt package repository is set to go to the right place:
Go to the main Openwrt LuCi system -> software menu and there should be a textbox to enter the script that Openwrt runs to get the package list. Since the Yun sheild is on the very latest release OpenWrt “Barrier Breaker”, you will need to change the path to go to the release “Barrier Breaker” packages. I’m pretty sure I had to change this to get it to see the package list in order to install additional packages, as the path hadn’t been properly updated. Do not try to get packages from the official ardunio Yun site, it runs an older release of OpenWrt.
A flash drive to the usb port or even behind a hub is all the same, it is /dev/sda1
So I have a webcam plus flash drive connected to a hub.I didn’t know which is the newest software source folder, so I took the newest folder that had 2014 packages, and it worked.Running mjpg-streamer was all that was needed, and using port 8080 in my browser.Update: The Yun shield uses RX and TX to communicate with the Arduino board. When using an Arduino Mega, the usb-serial has to be disabled to make the Yun Shield work with the Arduino Mega. So only the Leonardo is the most useful board for the Yun Shield. The Dragino firmware is not very stable. I have to reset it to factory defaults sometimes, or force to re-install packages. The shield requires knowledge of Arduino and linux. If you can get it for about 26 euros inclusive shipping (like I did) you get great value for money. Search on Ebay for : yun shield arduino
It can run a webserver with control by/to the Arduino board, and many more internet applications like a webcam stream. They will run at the same time if you want to. The components don’t get hot. For many projects it is a good (or even a better) alternative for the Raspberry Pi.Update 2: Streaming two webcams via wifi; using a usb flash drive; playing mp3 files (or internet radio) to a usb-audio device, and a webpage controlled by the Arduino board with zepto.js; also having the LuCI interface open, and the SSH telnet. Everything at the same time, and the cpu is at 80% busy
Here is a useful video tutorial, Arduino Yun Shield Tutorial #1 — Quick Start
Another useful tutorial is the A REST API for Arduino & the CC3000 WiFi Chip, from I would like to retrieve data from a MySQL database using PHP using HTTP requests, on my Arduino