The Arduino Ethernet Shield allows the Arduino boards to connect to the internet.
I ended up buying my Ethernet Shield 2 through Amazon for $28 in order to get express shipping, but if you shop around you can find it for closer to $20. Adding the Ethernet Shield greatly increases the functionality of the board, allowing the board to be used as both a webserver and webclient. In my opinion, it is definitely worth spending the extra $20 dollars to get this additional functionality.
Resources for getting started with the Ethernet Shield
- Getting started documentation from Arduino LLC (arduino.cc)
- Getting started documentation from Arduino SRL (arduino.org)
- Arduino Ethernet Shield Tutorial by Instructables
- “Connecting Arduino: Programming and Networking with the Ethernet Shield”
Running into issues with the Ethernet Shield 2
Setting up the Ethernet Shield 2 looked like it was going to be a breeze – clip the board on, plug the power and Ethernet chord in and you are good to go. Unfortunately, it was not that easy for me. All of the test sketches I ran to verify the internet was working came back with errors or were completely unresponsive. To trouble shoot I replaced my Ethernet chord, did some research to make sure my router was not the issue, and then rewrote all of my sketches to make sure the issue was not caused by a typo on my end. Fortunately, after reviewing some blog posts from others who faced similar issues I came across a post on the Arduino.cc forum from Hydrocontrol called Beginners guide to Arduino Ethernet Shield 2.
Ethernet shields are sold by both Arduino.cc and Arduino.org, and while these boards are similar there is one very important difference that was at the root of my problem. The ORG shield uses a W5500 chip (which is what I have) while the CC boards have a W5100 chip. The reason why this is important is because the W5500 requires a separate Ethernet2 library that must be downloaded from an external source. Fortunately, I learned how to install external libraries from my Arduino Project Book! After updating the libraries in my sketches from Ethernet to Ethernet2, everything ran very smoothly.