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-разъём (разъём программирования) для подключения.
Обратите внимание – стандартный пин 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 к сети Интернет с помощью модулей ESP8266 (удаленный мониторинг здоровья пациента, управление сервомотором, удаленный мониторинг температуры и влажности, передача данных на веб-страницу и другие). В этой же статье мы рассмотрим подключение платы Arduino к сети интернет с помощью Ethernet модуля W5100. Таким образом, плата Arduino будет подключена к компьютеру с помощью локальной вычислительной сети (LAN). С помощью установленного интернет соединения мы будем управлять светодиодом, подключенным к плате Arduino.
Для реализации данного проекта необходимы базовые знания основ построения локальных вычислительных сетей, принципов работы хабов/роутеров, разъемов RJ45, IP и MAC адресации.
Необходимые компоненты
- Плата Arduino Uno (купить на AliExpress) или Nano (купить на AliExpress).
- Ethernet модуль W5100 (купить на AliExpress).
- Светодиод (купить на AliExpress).
Ethernet модуль W5100
Ethernet модуль W5100 позволяет устанавливать полнофункциональное интернет соединение. С его помощью можно подключать плату Arduino к сети интернет без поддержки операционной системы компьютера. Модуль поддерживает различные протоколы стека TCP/IP: TCP, PPPoE, Ethernet, UDP, ICMP, IPv4 и другие. Модуль W5100 способен работать в дуплексном и полудуплексном режимах работы. Также он имеет поддержку ADSL соединений (до 4-х соединений одновременно).
Для подключения Ethernet модуля W5100 мы будем использовать библиотеку Arduino Ethernet library, которая поддерживает все версии плат Arduino: UNO, NANO, mega 1280, mega 2560 и другие. Функциональность Ethernet модуля W5100 такая же, как и у шилда (shield) Arduino Ethernet, а стоит модуль в два раза дешевле чем данный шилд.
Схема проекта
Схема подключения 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 с помощью которого можно подключить плату 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.
Назначение светодиодов:
► PWR: указывает, что подано питание на плату.
► LINK: указывает наличие сетевого канала и мигает, когда экран передает или принимает данные
► FULLD: указывает, что сетевое соединение полнодуплексное
► 100M: указывает на наличие сетевого соединения 100 Мбит/с
► RX: мигает, когда экран получает данные
► TX: мигает, когда экран отправляет данные
► COLL: мигает, когда обнаруживаются сетевые конфликты
Помимо этих светодиодов, есть два светодиода, расположенные на гнезде RJ45, при подключении кабеля, один светится постоянно, а другой мигает в соответствии с потоком данных.
Принципиальную схема Ethernet Shield W5100 можно посмотреть ниже
Устранение проблемы c W5100
Существует проблема с некоторыми Ethernet Shield на базе W5100. Производитель поставил неправильную сборку их четырех резисторов, вместо 49,9 Ом установил 510 Ом. Из-за этого Shield W5100 нестабильно работает при подключении к роутеру или вовсе не работает c маршрутизатором (свичем). На данный момент, существует два варианта устранения данной проблемы:
► Первый вариант, просто заменить резисторную сборку на 51 Ом, но если у вас нету опыта в пайке SMD компонентов, лучше воспользоватся вторым способом.
► Второй способ, установить дополнительные резисторы на 100 Ом, между контактами 1 и 2, 3 и 6. Теперь 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 (подробней о нём вы можете прочитать здесь).
Читайте также: