loading

Update: 23rd Sept 2016

Do Not use the Arduino ESP board library V2.3.0 for this project. V2.2.0 works

Update: 17th December 2015

Rev 11 of this project cleans up other attempted connections if it is already connected. Also uses the timeout set by the web config. Rev 10 ignored the timeout setting.

Update: 11th November 2015

This is Rev 10 of the this project. Rev 10 uses a non-blocking WiFi library, pfodESP8266WiFi, that lows for higher through put particularly for Windows Clients. It also allows for web page configuration of the Serial baud rate

Update: 23rd October 2015

This is Rev 8 of the this project. Rev 8 has improved ESP8266 code that is more reliable.NOTE: Each packet sent halts this code until the receiver (client) acknowledges the packet. This can take between 10mS and 200mS. During that time the incoming Serial data from the UART is not being handled. The incoming serial buffer can buffer 256 bytes. At 9600 baud it takes about 270mS to fill the buffer so as long as you keep the Serial baud rate to 9600 or less you should not loose any outgoing data while the ESP8266 is sending the previous packet. This is providing you have a good WiFi connection. If the WiFi connection is poor, a packet can be lost and have to be re-transmitted by the ESP826, then the Serial incoming buffer may fill up if you are trying to send a lot of data and some of your data my be lost.

Update 20th September 2015

This is Rev 3 of the this project. Rev 3 adds a connection time out setting to the web page configuration. If there is not send or receive of data in that time the WiFi Shield closes the connection and waits for a new one. This ensures the WiFi Shield recovers from 'half closed' connections which happen went the client just disappears due to bad wifi connection, power loss at the router or forced shut down of the client. See Detection of Half-Open (Dropped) TCP/IP Socket Connections for more details.

This connection time out defaults to 15 sec. but can be changed as needed. Setting it to 0 means never time out. When using pfodDesigner, set a menu refresh that is less than the connection time out.

Introduction

This WiFi Shield makes DIY home automation much more affordable. Nothing else on the market is this cheap and this simple to use and configure.

The WiFi Shield described here is very cheap (<$12) and very simple to build, just 2 parts and 4 wires, and very simple to securely configure, via push button web page, and very simple to use, no libraries needed.

This Shield is for use with any 5V or 3.3V micro that has a serial connection. As constructed here it is plug compatible with the standard Arduino boards. These instructions are also available at www.pfod.com.au

This project uses Adafruit's HUZZAH ESP8266 module. If you are looking for an ESP8266-01 WiFi Shield that is just as simple to use at this, but which requires more components and wiring up, one then check out this page instead. (For a comparison with SparkFun WiFi Shield – ESP8266 see below under Parts List.)

This is Rev 11 of this project. Rev 11 uses GPIO0 and GPIO2 as the ConfigLink, as described on this page, ESP8266-01 Pin Magic. Also the code sketches used in Rev11 are now exactly the same at those used in ESP8266-01 Wifi Shield

Features

  • Cheap :- Less than US$12 in parts per shield, plus shipping. A USB to Serial cable (< US$10) is needed for programming.
  • Simple to build :- Just two parts and 4 wires needed.
  • Simple to use :- The 5V and 3.3V compatible shield acts as UART to WiFi bridge. It sets up a server on the IP and port you configure and once connected just passes data to and from the Serial connection. No libraries are need in the connecting micro, just a Serial (UART) connection, so it can be used for any micro-processor that has a serial port. It can also be modified to be configured to make a client connection (with optional login) to a remote server.
  • Simple to configure :- Shorting out a link and powering up the shield, puts it into configuration mode. In this mode it creates a secure Access Point that you can connect to via your mobile or computer. Then opening http://10.1.1.1 presents a web page where you can configure your network's name and password and the IP and port number the shield should listen on for connections. The configuration web page uses HTML5 validation to check the user's settings.

Step 1: Parts List

The WiFi Shield needs just two parts, 4 bits of wire and some soldering equipment. Parts List:-

Adafruit HUZZAH ESP8266 Breakout US$9.95 + shipping
Uno Protoshield US$1.88 + shipping

Total US$11.83 (as of June 2015)

To program the shield with the push button configuration and UART to WiFi bridge program, you also need a USB to Serial cable. Here a SparkFun's USB to TTL Serial Cable (US$9.95) is used because it has nicely labelled ends and has driver support for wide range of OS's, but you can also use Adafruit's USB to TTL Serial Cable - Debug / Console Cable for Raspberry Pi which is the same price and might save you extra shipping costs.

Including the programming cable, the cost for just one WiFi Shield is US$21.78. A quick search finds Arduino WiFi Shields costing a minimum of US$30 up to over US$70. So even including the once off cost of the programming cable this shield is significantly cheaper than the other available shields, as well as being much easier to configure and use.

SparkFun as recently brought out the SparkFun WiFi Shield – ESP8266. Here is a quick comparison.

  • Cost – The SparkFun WiFi Shield – ESP8266 does not come with headers. Cost with headers is US$16.49 i.e. 40% more then this project. Also SparkFun's recommended programming accessories cost US$32.90 or more then 3 times the USB to TLL Serial cable used in this project. So a one off shield + programming accessories cost for SparkFun WiFi Shield – ESP8266 US$49.43 versus US$21.78 for this project. That is the SparkFun shield is twice as expensive.
  • Construction – You still need to solder the headers on the SparkFun WiFi Shield – ESP8266 so this project only adds 4 wires to the construction.
  • Program – You still need to re-program the SparkFun WiFi Shield – ESP8266 to get push button configuration and a transparent Serial-To-WiFi bridge.
  • Installation – The SparkFun WiFi Shield – ESP8266's WiFi antenna is interfered with by the Arduino ISP header pins, so the SparkFun WiFi Shield – ESP8266 cannot be property plugged into the Arduino board. See https://learn.sparkfun.com/tutorials/esp8266-wifi-shield-hookup-guide for the details.

By all means check out SparkFun's shield, but if you just want a very cheap/simple wifi shield for your Arduino, this project is still the best choice.

Step 2: Construction

The Adafruit HUZZAH ESP8266 board comes two lengths of header pins, 19 and 17 pins long. Fortunately, they are not soldered into the ESP8266 board and so can use for the Uno Protoshield which does NOT come with pins.

From the 19 pin length, break off two lots of 8 pins leaving 3pins. From the 17 pin length, break off two lots of 6 pins leaving 5 pins. Solder the two lots of 8 pins and the two lots of 6 pins into the protoshield, as shown in the picture. For the ESP8266 board use the left over 3 pin length for the TX, RX and V+ connection and break off one pin from the 5 remaining pins for the GND connection. Break the remaining 4 pins in half and use two for the Configuration link, in locations #0 and #2 on the ESP8266 board. Note in the photo the two configuration link pins go up while the other ESP8266 pins go down.

Now solder the ESP8266 board to the protoshield as shown and add the 5V, GND and RX, TX wiring to complete the construction.

The ESP8266's V+ and GND go to the protoshield's 5V and GND buses using short wires. The ESP2866 TX is connected to protoshield D0 (orange wire). The ESP8266 RX is connected to the protoshield D1 (white wire).

That's all there is to the construction!!

Step 3: Programming the WiFi Shield

The WiFi Shield needs to be programmed once, only, and never again, with the web page configuration and the Serial to WiFi Bridge code.

To program the shield, follow the steps given on https://github.com/esp8266/arduino under Installing With Boards Manager. When opening the Boards Manager from the Tools → Board menu and select Type Contributed and install the esp8266 platform. This project was compiled using the ESP8266 version 1.6.4-673-g8cd3697. Later versions well be better but may have their own bugs as the platform is evolving rapidly.

NOTE: DO NOT use the Adafruit Board install as the sketch used here will not compile under that code.

Close and re-open the Arduino IDE and you can now select “Generic ESP8266 Module” from Tools → Board menu.

You also need to install the latest version of pfodESP2866BufferedClient.zip This library works with ESP8266.com IDE plug-in V2.2. If you have previously installed the pfodESP2866WiFi library, delete that library directory completely.

  1. Download this pfodESP2866BufferedClient.zip file to your computer, move it to your desktop or some other folder you can easily find
  2. Then use Arduino 1.6.5 IDE menu option Sketch → Import Library → Add Library to install it. (If Arduino does not let you install it because the library already exists then find and delete the older pfodESP8266BufferedClient folder and then import this one)
  3. Stop and restart the Arduino IDE and under File->Examples you should now see pfodESP2866BufferedClient.

Setting the Configuration Access Point password

After you have installed the pfodESP8266BufferedClient library, open the Arduino IDE and copy this sketch, ESP8266_WifiShield.ino, into the IDE. Before you program the shield, you need to set your own password for the configuration access point.

In configuration mode, the WiFi Shield sets up a secure Access Point called pfodWifiWebConfig with a password contained in a QR code attached to the shield. This secure connection prevents any one listening in on your connection while you are setting your real networks ssid and password. You should generate your own password for your shields. A SecretKeyGenerator java program is available here which generates random 128bit keys and writes out QR.png files. Another alternative is to use QR Droid Private (from Google Play) to create a QR Code for you own chosen password.

In either case you need to update the #define near the top of the sketch with your own password.

// =============== start of pfodWifiWebConfig settings ==============<br>// update this define with the password from your QR code
//http://www.forward.com.au/pfod/secureChallengeResponse/keyGenerator/index.html
#define pfodWifiWebConfigPASSWORD "b0Ux9akSiwKkwCtcnjTnpWp"

You can also set your own configuration Access Point name, if you wish.

Programming the Shield

To program the shield, connect the USB to Serial cable as shown in the photo. Check the photo and your wiring.

Carefully check the VCC and GND connections as it is easy to short out the USB power supply if you are one pin off.

This photo is for the SparkFun USB to Serial cable. If you are using the Adafruit cable, it does not have the terminals marked but is colour coded, red is power, black is ground, green is TX and white is RX.

Plug in the USB to Serial cable into your computer and select it COM port in the Tools → Port menu. Leave the CPU Frequency, Flash Size and Upload Speed at their default settings.

Then put the Adafruit HUZZAH ESP2866 module into programming mode by holding down the GPIO0 push button and clicking the Reset push button and then releasing the GPIO0 pushbutton. The GPIO0 led should remain dimly lit. Then select File → Upload or use the Right Arrow button to compile and upload the program. Two files are uploaded. If you get an error message uploading check your cable connections are plugged in the correct pins and try again.

Step 4: Configuring the WiFi Shield

Attaching the Configuration QR code

You will need your unique configuration access point password each time you need to configure the shield, so it is convenient to attach it as a QR code to the shield (or its case). Here is the Open Office presentation file that was used to print out the QR code and connection details for this project. Replace the QR code and password text with your own unique one. Attach the QR code to your shield (or the box it is mounted in) to complete the shield.

Configuration

This WiFi Shield uses an open source web page method to configure both the network name and password, and the IP address and port No.

All other available WiFi shields have to have the IP and port no hard coded in the sketch and either hard code the network name and password or use a proprietary method with proprietary apps to connect to the local network. This is very restrictive when you have multiple devices in an evolving environment.

This WiFi Shield completely avoids this restriction. You never need to re-program it to connect it to a network or change its configured IP and Port No.

Putting the WiFi Shield into Configuration Mode

To put the WiFi shield into configuration mode, turn the power off, short out the header pins #4 and #5 you soldered to the ESP8266 module and then turn the power back on

The GPIO0 led will be brightly lit indicating you are in configuration mode. In this mode the ESP8266 module sets up a secure access point with the name pfodWifiWebConfig.

This access point will show up on your mobile and on your computer. To connect to this access point you will need to enter the unique password for your shield. You can type the password in by hand but it is easier and more reliable to scan the QR code you previously attached to your shield, using a QR scanner app, such as QR Droid Private.

Then copy and paste the password into your mobile's WiFi setting screen to connect your mobile to the configuration access point.

Then open a web browser and type in the URL http://10.1.1.1 This will return the configuration web page shown above.

Filling in the Setup Web Page

The WiFi Shield automatically fills in the Network SSID with the local network with the best signal strength. Which will usually be the one you want. If not just overwrite that entry. You must enter a Network SSID and password and portNo. The IP address field is optional. If you leave it blank, the WiFi Shield will use DHCP to get its IP address on your local network. It is often easier to specify a specific IP address so you can easily connect to this shield.

If your browser is HTML5 compliant then the web page will validate the input before sending it.

Rev 10+ also allows you to configure the Serial baud rate for this shield. Default is 19200, but the examples here use 9600 so change the baud rate to 9600.

When you click the Configure button, the WiFi Shield will process the results and store them in EEPROM and then display a web page as shown above, telling you to power cycle the shield to connect to your network.

Step 5: Using the WiFi Shield

As mentioned above, using this shield with a micro-processor is simple, just connect 3.3V to 5V supply and connect to a UART's TX RX pins running at 9600 baud. This shield plugs into a Uno or Mega2560 board directly.

The only point to note is that when the shield powers up it sends a short string of debugging data to it serial connection, so any connected micro-processor should ignore the serial data for 1 second after power up.

Note: The WiFi Shield draws up to 250mA (average 80mA) so be sure the power supply can deliver this much current or the shield will reboot at odd times.

The Arduino UNO and Mega2560 can supply this much current from their USB connection.

Any Serial connection can be used to test the Shield. For example you can use the USB to Serial cable and the Arduino IDE Serial Monitor to send and receive data to a remote client.

Rev 10 also allows you to configure the Serial baud rate for this shield. Default is 19200, but the examples here use 9600 so change the baud rate to 9600 on the config webpage, above.

However to test this shield, pfodApp was used to turn the Uno's LED on and off via WiFi. First the pfodDesigner was used to design a simple menu.

NOTE: You must set a Menu Refresh time that is less than the connection time out set for the WiFi Shield, otherwise the connection will close.

Then the code was generated for the Serial connection at 9600 baud and transferred the file to the PC, using wifi file transfer.

The sketch's setup() did not need to have the delay(1000) added because the pfod parser ignores any characters outside { }, but it was include because it is recommended for this WiFi board.

The complete sketch, UnoLedControl.ino, is here. Note there is no special WiFi code, the sketch just reads and writes to the Serial output. A 1sec delay has been added at the top of the setup() to skip the ESP8266 debug output on power up.

Remove the WiFi Shield, select Tools → Board → Uno in the Arduino IDE and program this sketch into the UNO.

NOTE: you must remove the WiFi shield to program the UNO because the USB is connected to the UNO's TX/RX pins.

Plug the WiFi Shield back in, it will automatically connect to your local network and start a server on the port you configured. In pfodApp you can set up a connection for this device. See pfodAppForAndroidGettingStarted.pdf for the details.

Then connect to turn the Uno's LED on and off from your Android mobile via wifi.

That's it finished!!

Step 6: Extensions for the WiFi Shield and Conclusions

Here are some possible extensions to this instructable.

Adding Client Support

As presented here the WiFi shield can be configured to run as a server listening on a specified IP and port No. However the pfodWifiConfig also provides support for storing and retrieving Client settings as well as Server settings. So by adding these fields to the configuration web page and saving/loading the Client values, you can also use this WiFi Shield to connect to a remote server, with a client username and password, and upload data to there.

Adding an external Configuration Push Button and Led

If you are mounting your device in a box you will want to wire the config pin to an externally accessiable push button and perhaps also add a LED and 330ohm resistor between the ESP8266 boards 3v pin and #0 (GPIO0). When in configuration mode the #0 output is driven low so you can use this to turn on an external indicating led.

Conclusions

This WiFi Shield is both cheap and simple to build and simple and easy to use and configure.

Once programmed you never need to program it again to set or change the network settings. They can all be set via a web page on a secure temporary WiFi network.

It is simple to interface to any micro that has a UART and runs on either 5V or 3.3V.

No libraries are required to connect to this shield. It runs as a simple Serial to WiFi bridge.

Using the Cheap WiFi Shield makes Home Automation and other IoT (Internet of Things) much more affordable.

<p>$12 would get you a wifi raspberry pi zero.</p><p>faster. more useful. can do GPIO. can even use wiring language on it. </p>
<p>Raspberry pi is Linux based and much more complicated software wise. Various Operating Systems and package updates, each with their own set of bugs, and lots of linux commands to master.</p><p>Great if you already know and use linux, but not for a someone just starting out, in my opinion. </p><p>The Arduino IDE used to code this project is based on the wiring language and is suitable for beginners. </p><p>ESP8266 board also has GPIO, Check out some of my other ESP8266 projects for examples of GPIO use. </p><p>My free <a href="http://www.forward.com.au/pfod/pfodDesigner/index.html">pfodDesigner</a> Android app will let you build menus (WYSIWYG) for your Android mobile and connect them, via pfodApp, to control, read and plot the GPIO's of the ESP8266 and then generate the necessary code for programming via the Arduino IDE. </p><p>So you can turn GPIO's on and off from your Android and plot and log data to your Android, <strong><em>without writing any code at all</em></strong>. Much simpler for beginners.</p><p>You will need to purchase my <a href="http://www.forward.com.au/pfod/index.html">pfodApp</a> to actually connect your Android to the ESP8266. pfodApp also connects to numerous other Arduino based boards via BLE, Bluetooth Classic, Ethernet, WiFi and SMS and the pfodDesigner generates code for these as well.</p>
<p>I'm attempting to connect the Huzzah ESP8266 through a Makershed prototype shield into my Arduino Uno. Although I've changed TX/RX around and additional power sources, I still get:</p><p>warning: espcomm_sync failed<br>error: espcomm_open failed<br>error: espcomm_upload_mem failed<br>error: espcomm_upload_mem failed</p><p>Is my problem with hardware setup or software? </p><p>I can successfully load the script with the 8266 disconnected from the prototype shield, but not when connected. I also never see pfodWifiWebConfig as a potential WiFi access point on my phone or computer. Any suggestions? Ultimately, I'm interested in using MQTT to send sensor data via WiFi, and be able to program the Arduino through a Python serial connection.</p>
<p>Looks like you have a problem programming the esp. Don't try to program it while connected to the arduino. Once once you get it to program correctly you can test by uncommenting the #DEBUG line and checking the serial output for connections and pfodWifiWebConfig, while not connected to the Uno</p>
<p>hi, i have my esp8266 based wifi shield (esp 11) can i use it as access point and a server? big thanks sir. what library will i use to achieve my goals?</p>
<p>I have not tried using the ESP as an AP and Server AT THE SAME TIME. It is possible BUT the chip can not maintain connection to AP on one Wifi channel while having SoftAP on another one.</p><p>WiFi AP channel changes to the one used by the access point connected via the STA. Not a problem unless you are trying to explicitly set your Wifi channels.</p><p>Just use the 'standard' ESP8266 IDE board library, and check out the example sketches (AFTER you select ESP8266 as your board). I currently use ESP board library V2.2.0 as I have had problems with V2.3.0</p>
<p>Do Not use the Arduino ESP board library V2.3.0 for this project. V2.2.0 works</p>
<p>Rev 11 of this project cleans up other attempted connections if it is already connected. Also uses the timeout set by the web config. Rev 10 ignored the timeout setting.</p>
<p>corrected urldecode2 method</p>
<p>Rev 10 -- uses non-blocking WiFi library for higher through put. Also allows Serial baud rate to be set from web config page</p>
<p>Rev 8 -- improved ESP code for reliability</p>
<p>Rev 3 - added connection time out to config and code.</p>
<p>revised IDE software install section</p>
<p>SparkFun as recently brought out the <em style=""><strong>SparkFun WiFi Shield &ndash; ESP8266</strong></em>. Here is a quick comparison.</p><ul> <br><li>Cost &ndash; The SparkFun WiFi Shield &ndash; ESP8266 does not come with headers. Cost with headers is US$16.49 i.e. 40% more then this project. Also SparkFun's recommended programming accessories cost US$32.90 or more then 3 times the USB to TLL Serial cable used in this project. So a one off shield + programming accessories cost for SparkFun WiFi Shield &ndash; ESP8266 US$49.43 versus US$21.78 for this project. That is the SparkFun shield is twice as expensive.<li>Construction &ndash; You still need to solder the headers on the SparkFun WiFi Shield &ndash; ESP8266 so this project only adds 4 wires to the construction.<li>Program &ndash; You still need to re-program the SparkFun WiFi Shield &ndash; ESP8266 to get push button configuration and a transparent Serial-To-WiFi bridge.<li>Installation &ndash; The SparkFun WiFi Shield &ndash; ESP8266's WiFi antenna is interfered with by the Arduino ISP header pins, so the SparkFun WiFi Shield &ndash; ESP8266 cannot be property plugged into the Arduino board. See <a href="https://learn.sparkfun.com/tutorials/esp8266-wifi-shield-hookup-guide" rel="nofollow">https://learn.sparkfun.com/tutorials/esp8266-wifi-shield-hookup-guide</a> for the details.</ul><p>By all means check out SparkFun's shield, but if you just want a very cheap/simple wifi shield for your Arduino, this project is still the best choice.</p>
<p>The ESP8266 data lines are 3.3 volt signal level - Adafruit has made their breakout RX pin 5 volt tolerant so it's safe with the Auduino Uno. Be careful with the other pins if you use them or if you use your own ESP board. Great project.</p>
<p>Very true. If you have a generic module, rather than Adafruit, then you should use my other instructable instead <a href="https://www.instructables.com/id/ESP8266-WiFi-Shield-for-Arduino-and-other-micros/" rel="nofollow">ESP8266 WiFi Shield for Arduino and other micros</a> which adds the necessary 5V protection components for RX/TX and the other used pin.</p>
<p>Very interesting....thanks for sharing.</p><p>Build_it_Bob</p>
<p>Interesting! =D</p>
<p>well done.<br>I dont have the Adafruit break out board, but just a generic ESP8266 module. will give that a try</p>
<p>See <a href="https://www.instructables.com/id/ESP8266-Wifi-Add-on-for-Arduino-Made-Simple/" rel="nofollow">ESP8266 Wifi Add on for Arduino Made Simple</a></p><p>for an example of how to use the ESP8266-01. Currently that instructable uses the pfodWifiConfigV1 app, but next week I will update the ESP8266 code to use the same webpage config as is used here.<br></p>
<p>great</p>
<p>Posted <a href="https://www.instructables.com/id/ESP8266-WiFi-Shield-for-Arduino-and-other-micros/" rel="nofollow">ESP8266 WiFi Shield for Arduino and other micros</a> which has the same functionality as this instructable but uses an ESP8266-01 (and extra components)</p>
<p>great, i will have a look</p>
<p>Another problem is that the generic ESP8266 are NOT 5v tolerant.</p><p>And do not come with a power supply. Not all Arduino cards can supply 250mA from their 3v3 regulators, in addition to what the Arduino itself is using. </p><p>Which is why I used the Adafruit module</p>
<p>correct. I have a added a 3.3 Volt regulator on a simple adapter board: </p><p>https://www.instructables.com/id/Send-sensor-data-DHT11-BMP180-to-ThingSpeak-with-a/ (step 3)</p><p>If I didnt already have two of the older modules, I probably would go for the adafruit one as well, but for now. I will try and use the old one for an add on WIFI board and may use the other one as stand alone</p>
<p>If you are using an ESP8266-01 board with just GPIO0 and GPIO2 (8 pins version) </p><p> (see <a href="http://www.forward.com.au/pfod/ESP8266/simpleWiFiAddon.html" rel="nofollow">http://www.forward.com.au/pfod/ESP8266/simpleWiFiA...</a> </p><p>then modify the code to use GPIO2 as the config input </p><p>To start config apply power and then once powered up connect GPIO2 (D2) to GND via 270ohm resistor (within 20sec)</p><p>!!! NOTE: Important!! Do NOT connect GPIO2 to GND while appling power as this prevents the module from starting up </p><p>When config finished remove connection to GPIO2 and turn off and turn on again.</p><p>Then modify the code in this instructable to add a 20 delay on startup during which you test for GPIO2 grounded.(see <a href="http://www.forward.com.au/pfod/pfodWifiConfig/ESP8266/pfodWifiConfig_ESP8266_PassThrough.ino.txt" rel="nofollow" style="">pfodWifiConfig_ESP8266_PassThrough.ino</a></p>
<p>yes, i have that 8 pins (2x4 double row) version. One of the early ones. Never be the first to try something new :-)<br>I have used it to contact Thinkspeak, but it is laying idle now :-)<br>Thanks for those links</p>
<p>I consider your Instructable to be the best that I have seen in several years of following Instructables. Clear,complete, concise, step-by-step instructions cut through the murk that I have been struggling with to allow implementation of a very useful project. I have just received an ESP8266 and I'm in the process of testing it and learning how to use it. I think that I will stop where I am and switch to your great way of implementing my first DIY, low cost, WiFi capability. </p><p>The project I am aiming for is a lawn sprinkler controller using the existing Timer along with hard-wired soil moisture sensing and 24 hour rainfall measurement. An Arduino Pro Mini will read the data and enable the Timer by hard-wiring to its roof-top rain sensor line that normally disables the Timer when it rains. The Timer will be set to water 7 days a week, but will be disabled until the Mini enables it. </p><p>I want a capability to PC-display the data gathered and to make remote adjustments to the Mini's program parameters. WiFi looks like a good way to do this at low cost and complexity.Thanks for your valuable contribution.</p>
<p>If you already have an ESP8266 module, check out this alternative instructable, <a href="https://www.instructables.com/id/ESP8266-WiFi-Shield-for-Arduino-and-other-micros/" rel="nofollow">ESP8266 WiFi Shield for Arduino and other micros</a> which provides the same functionality and simplicity of use as this one, but uses a bare ESP8266 module and additional components.</p>
<p>Interesting and highly technical. One thing, though. What the heck is a WiFi shield FOR? I thought the whole purpose of wifi is connectivity. If this is some kind of security measure, don't most routers have built in protection? What am I missing here?</p>
<p>Many microprocessor boards come with NO WiFi hardware, e.g. Arduino UNO, Mega, etc. This WiFi shield adds that hardware. The term Shield refers to a plug in board the covers the Arduino UNO board (i.e. shields it). </p><p>Re security. - There is a universal problem of how to connect a WiFi device to your home network when the device is just a box with no display or keyboard. </p><p>There are existing solutions (some of which are not secure) that only let you set the SSID and password. None of those solutions let you set any other configuration settings.</p><p>This instructable provides a secure, open source, means of entering not only your network SSID and password but other configuration parameters like IP and portNo for the device to use. </p><p>If you want to set other parameters as well such as a remote host to connect to and the login details for that host, then you can modify the code given here to do that.</p><p>Nothing else provides the level of functionality and flexibility.</p>
<p>Obviously this is a well-designed, well<br>described technical instructable.</p><p>&ldquo;<em><u>This WiFi Shield makes DIY home automation much more affordable</u></em>.&rdquo;</p><p>That is the part that caught my eye.However, due to my very limited programing<br>and electronics experience I can&rsquo;t envision how to use this device in, let&rsquo;s<br>say, a home security system to monitor 8-point perimeter intrusion, water<br>leakage and similar parameters.</p><p>Could you provide some high level view of your instructable in such usage (or as detail as you feel) in order to help me grasp how I could start my project-idea?</p><p>I am assuming I would be using an Arduino, or maybe a different controller?<br>Many thanks. <a href="mailto:ron.dacosta@gmail.com" rel="nofollow">ron.dacosta@gmail.com</a></p>
<p>Home automation requires some type of communication. Common choices are Ethernet, bluetooth and Wifi. </p><p>Ethernet requires you to run wires to each point. Bluetooth has limited range and is one connection at a time.</p><p>So WiFi is the preferable type of communication.</p><p>This instructable significantly reduces the cost of connecting via WiFi.</p><p>As for the rest of the system, start with designing your Arduino or other microprocessor to monitor/control what ever you are interested in, then you can use this shield to send/receive data via any Serial connection to that board from any where else via wifi/internet.</p><p>I use pfodApp to control and monitor devices. </p><p>For intrusion monitoring you will need something of the other end of the wifi link to monitor when something happens. </p><p>The instructable mentions that it is also possible to use this shield as a client connection to a remote server to push data. There are a number of DIY cloud services available to receive the data and relay it to your phone. I have not used any of them so can not offer any specific advice on this.</p>

About This Instructable

55,063views

624favorites

License:

More by drmpf:The Best Headphones for Air Travel and Inexpensive Too Custom Robot Apps -- No Android Programming Required Arduino101 Controller App 
Add instructable to: