Ethernet shield w5100 подключение к arduino mega 2560

Обновлено: 05.07.2024

Для связи с внешним миром и передачи данных в наше современное время удобно использовать сеть Интернет. С появлением Wi-Fi модулей задача упростилась и удешевилась, но всё ещё существуют мета, где не существует беспроводной сети, она загрязняет диапазон частот или просто неудобна, но рядом есть сетевой кабель. В таком случае нам поможет Ethernet Shield на основе W5100!

Краткий обзор W5100

Шилд предназначен для коммуникации микроконтроллера с локальной сетью и реализует физический уровень интерфейса. Подключается к Arduino по интерфейсу SPI. Скорость обмена Internet – 10/100 Mb/s. Напряжение питания – 5В.

Кроме собственно элементов для связи с сетью на плате расположен разъём для microSD карты памяти (для упрощения организации памяти для веб-сервера).

На шилд выведены закрытые им кнопка RESET и служебные светодиоды, в том числе индикаторы работы проводного интерфейса. Шилд совместим с Arduino Mega, так как использует ICSP-разъём (разъём программирования) для подключения.

ethernet shield w5100

Обратите внимание – стандартный пин 10, используемый для выбора активного устройства, будет занят и для других устройств придётся выбирать другой пин, чтобы избежать конфликта на линиях данных. Это – одна из самых распространённых ошибок, по причине которой у многих не работают SPI устройства вместе с Ethernet Shield.

Подключение в Arduino IDE


Шилд был разработан одним из первых и стал стандартом де-факто, поэтому библиотека для работы с ним включена в комплект поставки Arduino IDE и называется она просто – Ethernet library.

Для подключения шилда к Arduino просто наденьте его на плату (возможны проблемы с совместимостью с Arduino Leonardo)

Используйте качественные сетевые провода, поскольку оборудование чуть более привередливое к мелочам, чем компьютерные сетевые кабели. Для стабильной работы желательно обеспечить отдельное внешнее питание.

Откройте среду и загрузите пример WebServer. После чего подключите Arduino к сети и перейдите по IP-адресу 192.168.1.177. Возможно, это вас удивит, но вы только что зашли на собственный, только что поднятый сервер! А если «пробросить» 80 порт сквозь роутер наружу, то доступ к нему можно будет получить из любой точки света, что позволит удалённо управлять устройством или контролировать его.

В настоящее время большинство устройств интернета вещей (Internet of Things, IoT) подключаются к сети Интернет с помощью технологии Wi-Fi. Однако в ряде случаев для стационарных устройств целесообразно подключение к сети Интернет с помощью Ethernet кабеля поскольку такое соединение более стабильно чем Wi-Fi и обеспечивает более высокую скорость передачи данных.

Внешний вид проекта подключения Arduino к интернет с помощью Ethernet модуля W5100

Ранее на нашем сайте мы уже рассматривали подключение платы Arduino к сети Интернет с помощью модулей ESP8266 (удаленный мониторинг здоровья пациента, управление сервомотором, удаленный мониторинг температуры и влажности, передача данных на веб-страницу и другие). В этой же статье мы рассмотрим подключение платы Arduino к сети интернет с помощью Ethernet модуля W5100. Таким образом, плата Arduino будет подключена к компьютеру с помощью локальной вычислительной сети (LAN). С помощью установленного интернет соединения мы будем управлять светодиодом, подключенным к плате Arduino.

Для реализации данного проекта необходимы базовые знания основ построения локальных вычислительных сетей, принципов работы хабов/роутеров, разъемов RJ45, IP и MAC адресации.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress) или Nano (купить на AliExpress).
  2. Ethernet модуль W5100 (купить на AliExpress).
  3. Светодиод (купить на AliExpress).

Ethernet модуль W5100

Ethernet модуль W5100 позволяет устанавливать полнофункциональное интернет соединение. С его помощью можно подключать плату Arduino к сети интернет без поддержки операционной системы компьютера. Модуль поддерживает различные протоколы стека TCP/IP: TCP, PPPoE, Ethernet, UDP, ICMP, IPv4 и другие. Модуль W5100 способен работать в дуплексном и полудуплексном режимах работы. Также он имеет поддержку ADSL соединений (до 4-х соединений одновременно).

Внешний вид Ethernet модуля W5100

Для подключения Ethernet модуля W5100 мы будем использовать библиотеку Arduino Ethernet library, которая поддерживает все версии плат Arduino: UNO, NANO, mega 1280, mega 2560 и другие. Функциональность Ethernet модуля W5100 такая же, как и у шилда (shield) Arduino Ethernet, а стоит модуль в два раза дешевле чем данный шилд.

Вид на Ethernet модуль W5100 сбоку

Схема проекта

Схема подключения Ethernet модуля W5100 к плате Arduino Nano представлена на следующем рисунке.

Схема подключения Ethernet модуля W5100 к плате Arduino Nano

В схеме необходимо подключить контакты 5V и GND платы Arduino Nano к контактам +5 и G Ethernet модуля соответственно – это обеспечит подачу питания на модуль.

Также необходимо подключить контакты 9, 10, 11, 12 и 13 платы Arduino к контактам to R, SS, MO, MI, CK Ethernet модуля соответственно – это обеспечит взаимодействие между платой Arduino и Ethernet модулем по интерфейсу SPI.

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Первым делом в программе подключим библиотеку для работы по интерфейсу SPI.

Ethernet Shield W5100

В этой статье рассмотрим Ethernet Shield W5100 с помощью которого можно подключить плату Arduino к интернету или локальной сети. Shield основан на чипе Wiznet W5100 с поддерживаемой скоростью передачи данных до 100 Мбит/с. Используют данный Shield совместно с Arduino можно организовать простой веб-сервер с доступом к этому серверу.

Технические параметры

► Напряжение питания: 5 В
► Внутренний буфер: 16 кбит
► Скорость подключения: 10 и 100 Мбит/с (RJ45)
► Разъем для карт памяти: micro-SD
► Габариты: 73 мм х 54 мм х 27 мм

Общие сведения

Чтобы подключить Ethernet Shield W5100 к Arduino (UNO или MEGA), предусмотрены длинные штыревые разъемы, так же поверх W5100 можно установить другие Shields. Для хранения больших файлов на плате установлен разъем micro-SD, для установки micro-SD карт. Плата Arduino взаимодействует как с W5100, так и с SD-картой, используя шину SPI (вывода 10, 11, 12 и 13 (UNO) и 50, 51 и 52 (MEGA), на обеих платах вывод 10 используется для выбора W5100 и вывод 4 для выбора SD-карты, эти вывода нельзя использовать (это надо учесть, при проектировании). Так-как W5100 и SD-карта используют одну шину SPI, одновременно может быть активно только одно устройство. Для подключения к маршрутизатору или компьютеру, установлен стандартный разъем RJ45. Кнопка RESET дублирует кнопку RESET на Arduino, который сбрасывает как W5100, так и плату Arduino.

Ethernet Shield W5100

Назначение светодиодов:
► PWR: указывает, что подано питание на плату.
► LINK: указывает наличие сетевого канала и мигает, когда экран передает или принимает данные
► FULLD: указывает, что сетевое соединение полнодуплексное
► 100M: указывает на наличие сетевого соединения 100 Мбит/с
► RX: мигает, когда экран получает данные
► TX: мигает, когда экран отправляет данные
► COLL: мигает, когда обнаруживаются сетевые конфликты

Помимо этих светодиодов, есть два светодиода, расположенные на гнезде RJ45, при подключении кабеля, один светится постоянно, а другой мигает в соответствии с потоком данных.

Принципиальную схема Ethernet Shield W5100 можно посмотреть ниже

Принципиальная схема Ethernet Shield W5100

Устранение проблемы c W5100

Существует проблема с некоторыми Ethernet Shield на базе W5100. Производитель поставил неправильную сборку их четырех резисторов, вместо 49,9 Ом установил 510 Ом. Из-за этого Shield W5100 нестабильно работает при подключении к роутеру или вовсе не работает c маршрутизатором (свичем). На данный момент, существует два варианта устранения данной проблемы:

Замена резистора Ethernet Shield W5100

► Первый вариант, просто заменить резисторную сборку на 51 Ом, но если у вас нету опыта в пайке SMD компонентов, лучше воспользоватся вторым способом.

Замена резистора Ethernet Shield W5100

► Второй способ, установить дополнительные резисторы на 100 Ом, между контактами 1 и 2, 3 и 6. Теперь W5100, будет работать более стабильнее.

Замена резистора Ethernet Shield W5100

Подключение W5100 к Arduino

Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Ethernet Shield W5100 x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.


Модуль W5100 предназначен для подключения Arduino к локальной сети/интернету с помощью кабеля. Такой модуль позволяет удаленно получать данные с нашей Arduino при наличии подключения к сети, в которой он находится, а также удаленно управлять различными устройствами, подключенными к контроллеру.

Характеристики:

  • Питание: 5В постоянного тока
  • Размеры: 5.2x3x1.5 см (Д*Ш*В).
  • Скорость передачи данных: до 25Mbps
  • Интерфейс подключения: SPI

Модуль имеет 10 выводов. Для подключения к Arduino нам необходимо использовать 6 из них:

MI – линия “MISO” интерфейса SPI

MO – линия “MOSI” интерфейса SPI

CK – линия “SCK” интерфейса SPI

SS – линия “SS” интерфейса SPI


Подключение к Arduino:

Для подключения и настройки модуля нам необходимы:

  • Любая Arduino-совместимая плата
  • Компьютер с установленной средой Arduino IDE
  • USB кабель для подключения Arduino к персональному компьютеру
  • Патч-корд (RJ45-RJ45)
  • Маршрутизатор/сетевой коммутатор (не обязательно)

Принципиальная схема подключения компонентов:


Патч-корд необходимо подключить с одной стороны к модулю w5100, а с другой к свободному входу маршрутизатора или, в случае, если его нет, к разъему сетевой карты вашего компьютера.

Скетч для Arduino:

Для работы с модулем будем использовать следующие библиотеки*:

Эти библиотеки уже встроены в среду, скачивать их дополнительно не нужно.

*Библиотека Arduino – программный код, хранящийся не в скетче, а во внешних файлах, которые можно подключить к вашему проекту. Библиотека содержит в себе различные методы и структуры данных, которые нужны для упрощения работы с датчиками, индикаторами, модулями и другими электронными компонентами.

Скетч для пробного запуска модуля можно получить из меню примеров:


После выбора примера, обратите внимание на строку IPAddress


IP-адрес вам необходимо указать самостоятельно, в зависимости от ваших сетевых настроек. Узнать IP-адрес ваших сетевых устройств вы можете с помощью команды ipconfig (для Windows) в командной строке.

Выбирать адрес для модуля следует из доступного для вашей подсети диапазона IP-адресов.

Адрес сети (первые 3 байта) должен совпадать с настройками вашего сетевого устройства (маршрутизатора или сетевой карты компьютера)

Адресом хоста (последний байт) нужно указать любой свободный адрес в подсети.

Если вы подключаете модуль напрямую к сетевой карте компьютера, вам необходимо установить сетевые настройки вручную.

Для этого необходимо зайти в Панель управления компьютера и выбрать раздел “Настройки параметров адаптера”


В свойствах устройства вам необходимо зайти в раздел “IP версии 4 (TCP/IPv4)” и задать IP-адрес, например: 192.168.100.1 (маску подсети для нашего примера можно задать любую)


Нажимаем “ОК”, чтобы сохранить изменения.

Теперь в скетче вы можете указать IP-адрес для нашего модуля. (для примера выше он будет таким: 192.168.100.2)

После загрузки скетча, наша Arduino превратится в веб-сервер.

С помощью любого браузера, введя в адресной строке IP-адрес нашего модуля, мы сможем увидеть результат работы скетча (в нашем случае это показания с аналоговых входов).


Еще один пример:

Теперь немного усложним задачу и создадим веб-сервер, выдающий показания с термометра DS18B20 (подробней о нём вы можете прочитать здесь).

Читайте также: