Besides the pre-customized solutions like the Arduino Ethernet Board (retired) or the Arduino Ethernet Shield, there is a favorable alternative to connect an Arduino Board to the internet: the ENC28J60 Ethernet Network Module. As Hans Crijns pointed out, it is possible to connect the Ethernet Module with any Arduino (3.3V or 5V) without level shifting. To connect both boards, wire the pins like this:
|ENC28J60 Module||Arduino Board|
|PIN CS||PIN 8|
|PIN SI||PIN 11|
|PIN SO||PIN 12|
|PIN SCK||PIN 13|
|PIN VCC||PIN 3.3V|
|PIN GND||PIN GND|
Next, download and include the EtherCard Library from the GitHub repo.
Note: The EtherShield Library is no longer maintained. Follow this post on how to migrate from the EtherShield Library to the EtherCard Library.
Re-check all of your wired connections and run one of the examples from the library above. The Ethernet Module should work out of the box with any type of Arduino Board.