Меню Рубрики

Подключение w5100 к роутеру

Подключаем Arduino к сети, с помощью Ethernet модуля W5100

Модуль 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 (подробней о нём вы можете прочитать здесь).

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

Скетч для Arduino:

Источник

Arduino Ethernet Shield на базе W5100 enc28j60

Модули и шилды Ethernet для Arduino – это один из самых простых способов организовать подключение к интернету в ардуино проекте. В этой статье расскажем о том, как организовать выход в интернет и управление платой Arduino на расстоянии при помощи шилдов Ethernet Shield, опишем основные характеристики модулей на базе w5100 enc28j60. Мы узнаем, как подключиться через SPI, как написать скетч для создания своего сервера на Arduino или отправки данных на удаленный сервер.

Модули Ethernet для Arduino

Подключить плату arduino к интернету можно несколькими способами. Беспроводное подключение прекрасно организуется с использованием платформ ESP8266 или ESP32. Можно использовать Lora модули с соответствующими WiFi-шлюзами. Но самым помехоустойчивым и “традиционным” является старый добрый Ethernet. Используя обычный RJ45 разъем и витую пару вы сможете объединить вашу плату с другим сетевым оборудованием, будь то роутер, маршрутизатор или тот же WiFi модем. Преимущества Ethernet-подключения – скорость, стабильность, бОльшая защищенность от помех. Недостатки очевидны – оборудование привязывается проводом, причем в условиях реальной эксплуатации качество этого провода должно быть высоким.

Плата расширения Arduino Ethrnet Shield

Наиболее популярные Ethernet модули для ардуино сегодня выпускаются на основе микросхемы wiznet w5100, которая способна поддерживать обмен данными с постоянной скоростью в 100 Мбит/сек. Для устройств на базе w5100 написаны готовые библиотеки, данная архитектура является простой и идеально подойдет начинающим любителям электроники, которые могут использовать как стартовую площадку для последующих проектов.

Ключевые характеристики модулей на базе W5100:

  • Рабочее напряжение – 5 Вольт, подходит питание с платы Arduino.
  • Внутренний буфер 16 Кб.
  • Скорость соединения достигает значения в 10/100 Мбит/сек.
  • Связь с платой ардуино осуществляется посредством порта SPI.
  • W5100 поддерживает TCP и UDP.

Варианты модулей на базе других микросхем:

  • Модуль на базе Wiznet W5500. Имеет меньшие размеры, меньше греется, имеет большую мощность.
  • Модуль на базе enc28j60. Это гораздо более бюджетный вариант, дешевле W5100, но и потенциальных проблем с ним может возникнуть больше.

Шилды Ethernet Shield для Arduino Uno или Nano

Наиболее удобным способом работы с W5100 является использование готовых шилдов Ethernet Shield для Arduino Uno или Nano. На таких модулях уже выполнены все необходимые обвязки, шилд просто вставляется в соответствующие разъемы платы и вам остается только загрузить скетч. Естественно, что при желании к плате могут быть подключены и другие устройства.

Arduino Ethernet Shield

Подключение платы расширения происходит через соединение RJ-45. Плата обладает встроенным слотом SD/MicroSD , который используется для хранения файлов, используемых для подключения и передачи по локальной сети. Такой слот совместим со всеми платами Arduino/Genuino, т.е. работать с данными на карте можно с помощью стандартной библиотеки SD Library. На плате расширения также можно найти кнопку перезагрузки . питания. Ранние версии платы расширения не дружили с ардуино мега, там требовался ручной сброс после поступления питания.

Если плата оснащена POE модулем (питание подается по витой паре), то шилд будет соответствовать следующим спецификациям:

  • Совместим со стандартом IEEE3af.
  • Имеет низкие пульсации на выходе.
  • Защищает от явлений перегрузки и короткого замыкания.
  • Эффективно преобразует напряжение.
  • Имеет изоляцию 1500 вольт на точке между «вход-выход»

По умолчанию плата не комплектуется данным модулем, нужно находить соответствующую модель.

Назначение светодиодов Ethernet Shield:

  • PWR показывает наличие питания на плате.
  • LINK светится при наличии сети и мигает при передаче/приеме данных.
  • FULLD обозначает сетевое полнодуплексное соединение.
  • 100M обозначает сетевое соединение со скоростью 10мбит/сек.
  • RX мигает при приеме экраном данных.
  • TX мигает при отправке данных экраном.
  • COLL мигает при обнаружении сетевых конфликтов.

Кроме этих имеются еще пара светодиодов на гнезде rj 45, один из которых при подключенном шнуре светится, а другой мерцает при поступлении данных.

Ehternet для Arduino Nano

Отдельного упоминания заслуживает модуль Arduino Nano Ethernet. Он выполнен в формфакторе, облегчающим подключение к плате Nano v 3.0, но обладает практически такими же возможностями, что и “обычный” вариант для Uno. В основе шилда лежит микросхема ENC28J60.

Шилд Ethernet Arduino Nano Shield

Модуль точно так же имеет разъем RJ-45, слот для SD и в некоторых модификациях тоже оснащен PoE контроллером.

Как работает Ethernet

Подразумевается, что для проектов, связанных с подключением Arduino к сети вы должны обладать хотя бы общими знаниями в области сетевых технологий. Сегодня можно без труда найти соответствующие материалы в интернете. Хотя мы не ставим себе целью написать учебник по Ethernet, но общие сведения могут оказаться полезными.

Сегодня Ethernet – ключевая и наиболее распространенная наряду с WiFi технология организации локальных сетей. В стандартной модели OSI она находится на канальном и физическом уровне, определяя подуровни управления доступом к среде и управления логическим каналом. Создателем Ethernet стала компания Xerox, ее инженер Роберт Метклаф создал технологию как инструмент подключения многих компьютеров к общим ресурсам в локальной сети. Официальным стандартом технология стала в 1982 году после появления спецификации IEEE802.3.

Сегодня существует несколько вариантов и модификаций Ethernet, отличающихся скоростными характеристиками и способом организации физического канала:

  • Ethernet. Скорость до 10Mb/s. Любые типы проводов (коаксиал, витая пара, оптоволокно).
  • Fast Ethernet. Скорость до 100Mb/s. Только витая пара или оптика.
  • Gigabit Ethernet. Скорость до 1Gb/s. . Только витая пара и оптика.
  • 10G Ethernet. Скорость до 10Gb/s. Естественно, тоже без коаксиала.

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

Возможная схема Ethernet-сети

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

Если вы начинаете проект с Ethernet, то вам нужно будет понимать следующие базовые понятия, имеющие отношение к этой технологии:

  • Кабель. Как правило, это витая пара, реже – оптоволокно (ее подключить к арудино простым способом не получится).
  • Разъемом для подключения кабеля – RJ-45. На самом деле, стандарт для штекеров носит совсем другое название (8P8C), но “в народе” принято называть стандартный Ethernet разъем именно как RJ45. Следует отметить, что есть и другие стандарты – RJ-25, RJ-14 и т.п. Для подключения к ардуино через стандартные модули они не подойдут.
  • Сетевой Ethernet MAC-адрес. Это уникальный шестибайтовый идентификатор устройства в сети, который обычно прошивается в само устройство, но в некоторых случаях может быть изменен программно. Всего может быть задано 2 в 48 степени адресов, это триллионы разных вариантов (точнее, 281 474 976 710 656), так что пока их с головой хватает для создания действительно уникальных идентификаторов.

В подавляющем большинстве задач проект с Ардуино будет подключен к уже существующей Ethernet сети через стандартное оборудование. Т.е. вы просто берете модуль Ethernet, подключаете его к Ардуино, а затем вставляете сетевой кабель в этот самый модуль. Все, что вам понадобится – правильно настроить в своем скетче ваш MAC адрес (его можно менять!) и прописать IP адрес устройств, к которым вы будете подключаться. Мы рассмотрим пример в разделе, посвященным программированию.

Как подключить модуль Ethernet к Arduino

Подключение модулей w5100 к ардуино осуществляется через SPI. При наличии некоторого опыта работы c платформой никаких трудностей это вызвать не должно. В самом простом случае нужно просто “надеть” плату шилда, вставив в соответствующие разъемы платы Uno или Nano. В случае использования отдельного модуля подключить w5100 к ардуино можно через стандартные SPI-выводы.

Нужно помнить, что в Arduino Uno для SPI выделены пины 11, 12, 13. В Arduino Mega – 50, 51, 52. На шилде для Uno SS сигнал связан с 10 пином. На плате Mega за SS отвечает пин 53, но он не используется. Не смотря на этой, вам нужно обязательно установить его в режим OUTPUT с помощью функции pinMode.

Распиновка шилда с описанием элементов платы для Arduino Uno представлена на следующем рисунке.

Схема шилда Arduino Ethernet Shield

После подключения внешнего модуля к арудино нужно будет подключить его к уже существующей сетевой инфраструктуре через витую пару с RJ45 разъемом. Причем подключать можно и к WiFi роутеру, что позволяет вашему проекту выходить на связь в беспроводном режиме (провод от ардуино до роутера все равно понадобится).

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

Программирование скетча для Ethernet модуля в Arduino

Создавая программу на ардуино для работы с сетью, вы всегда будете отправлять или получать какие-то данные. В зависимости от целей проекта ваше устройство может выступать и в качестве сервера, и в качестве клиента – все зависит от выбранной вами логики и структуры системы. Можно отправлять данные с датчиков и вашей ардуинки на удаленный сервер и получать указания от него. А можете сделать управляющий сервер, получающий данные от остальных устройств или от человека через Web-браузер, который уже будет выступать в качестве клиента.

Поддержка Ethernet для платформы ардуино появилась уже в первых версиях Arduino IDE. Вам нужно просто добавить стандартные библиотеки в ваш скетч с помощью и использовать уже готовые классы.

Нельзя сказать, что библиотека написана безупречно, время от времени в ней находят очень сомнительные фрагменты кода, влияющие на производительность. Но для первых учебный проектов она подходит полностью. Для работы с картой памяти можно использовать встроенную библиотеку SD.

Сервер на Arduino Ethernet

Создаваемый Web-Сервер работает в полном соответствии с НТТР протоколом. Основные функции сервера заключаются в отслеживании клиентских запросов и выполнении различных функций на основе принятых данных. А затем следует отправка непосредственно самого результата в виде НТМL кода. Пример скетча можно найти в Arduino IDE (Файл-Примеры). Ниже приведем лишь короткие фрагменты и описание ключевых моментов.

Работа с библиотекой разбивается на два этапа. Сначала мы создаем необходимые объекты и производим настройку. В процессе инициализации следует прописать MAC-адрес и IP, по которому пользователь будет получать доступ к серверу.

Затем мы включаем бесконечный цикл, в котором постоянно проверяем наличие в очереди запросов от клиентов. Если запросы есть, то анализируем их и в зависимости от параметров формируем ответ. В принципе, мы реализуем логику обычного web-сервера, только все задачи по аутентификации, роутингу и генерации ответа приходится реализовывать самостоятельно. Дополнительный неудобства создают весьма скромные возможности встроенных библиотек по работе со строками.

После того, как пользователь загрузил скетч и подключил его к компьютеру при помощи сетевого кабеля, сервер на ардуино ожидает команд. После того как пользователь перейдет по заданному IP адресу, на сервер попадает get запрос, который информирует о необходимости выдачи интернет-страницы. В задачу сервера входит формирование этой страницы и посыле ее на клиента обратно, после чего браузер сам перерабатывает НТМL код и отображает формы, таблицы и другой контент. Пользователь может выполнить какие-то действия в форме (например, отметив включение необходимых пинов) и они опять отправятся на Arduino-сервер. И так до бесконечности, пока будет работать система и не отвалится сеть.

Arduino Ethernet как клиент. Отправка данных на сервер

Если мы хотим отправлять данные через Ethernet подключение, то нужно использовать методы класса Client стандартной библиотеки Arduino. Процесс инициализации выглядит точно так же – мы указываем IP и МАК-адрес. Но создаем объект клиента, а не сервера.

Следующим этапом является подключение и отправка данных на сервер

Отправив данные, мы хотим получить какой-то ответ от сервера. Например, о том, что данные успешно дошли или возникла ошибка. Сервер может также дать какие-то инструкции на выполнение в ответ на полученную от нас информацию. Поэтому следующим этапом является прослушивание ответов сервера и выполнение какой-то реакции.

Все приведенные фрагменты скетчей не будут работать по отдельности. Вы можете получить полный работающий код для Ethernet модуля бесплатно в самой среде Arduino IDE. На рисунке показано, где именно это можно сделать.

Примеры скетчей для библиотеки Ethernet в Arduino IDE

Выводы

В данной статье была рассмотрена возможность управления платой Arduino через интернет посредством Etherent модуля на базе w5100. Как мы убедились, подключение модуля и программирование скетча не представляет существенной сложности. Главное, это правильно определиться со структурой проекта, определить, что будет являться сервером, а что клиентом, как будет осуществлено подключение к интернету.

Самый удобный и быстрый способ подключения модуля – использовать готовый Ethernet Shield для Arduino Uno или Nano. Подключение осуществляется через интерфейс SPI, который есть в любых платах платформы. Взяв за основу уже готовые библиотеки и скетчи из примеров Arduino IDE можно создать приложение любой сложности. Но для этого вам обязательно понадобятся навыки программирования и понимания принципов работы существующих сетевых протоколов. Будем надеяться, что наша статья помогла вам сделать первый шаг.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Подключение voip шлюза через роутер
  • Подключение usb флешки или внешнего hdd к роутеру zyxel
  • Подключение usb принтера к роутеру asus
  • Подключение usb модема к роутеру zyxel keenetic
  • Подключение usb модема к роутеру smart box