Сетевой модуль W5100 сравнения, поделки (ардуинство)


Данный модуль призван обеспечить сетью ваши поделки на микроконтроллерах, придав им существенно большие возможности. Под катом будем смотреть насколько модуль соответствует описанию и использовать его по прямому назначению. А так же сравним его с другими собратьями по функционалу. Цена за 5 штук (не пугайтесь :) )

Если вы планируете (или уже занимаетесь) автоматизацией рутинных процессов (сейчас принято это называть «умным домом»), то безусловно приходите к необходимости взаимодействия различных устройств межу собой. И, почти как всегда, существует множество альтернативных решений. Одно из них (не самое плохое) будет рассмотрено далее.
Модульки пришли в антистатических пакетиках, все вместе сложены в коробочку.

Доехали хорошо, за 35 дней. Трек номер отслеживался (ехали из Китая через Финляндию). Тут показатели весьма средние.

Размеры модулей 3 на 5 см. Что не может не радовать, модулек меньше своих собратьев.



Раз уж мы планируем стыковать данный модуль с arduino, то напомню, что arduino представляет собой некий стандарт для быстрого построения устройств автоматики и робототехники не профессионалами, фактически же это заключается в среде разработки, язык (на самом деле это c++ с несколькими специфическими функциями), загрузчик для контроллеров, формат плат и дополнительных подсоединяемых устройств. Существует несколько плат, для которых можно разрабатывать в одной среде, конкретная плата выбирается исходя из потребностей по производительности, памяти, габаритам и цене. Более подробно прочитать можно здесь.

Вкратце для arduino есть шилды (плата которая подсоединяется непосредственно к одной или нескольким видам плат с arduino) и модули (платы которые нуждаются в проводах для подключения к arduino), в данном случае это именно модуль, то есть если вы используете arduino, например UNO, то для подсоединения потребуются провода. Шилды удобны для быстрой сборки, а модули более компактны и удобно встраиваются в самодельные устройства — тут каждый решает сам. Стоимость обычно определяется тиражом, соответственно, если модули популярнее шилдов они дешевле и наоборот. В данном случае шилд немного дешевле чем модуль, но если вы планируете использовать контроллер или arduino pro mini — то использование шилда малоцелесообразно.

Сделан модуль довольно аккуратно, флюса нет. Шелкография четкая.


При рассмотрении обрадовали обозначения POE+ и POE-, которые, судя по всему, должны были подавать питание приходящее по сетевому кабелю на соответствующие выводы… Но оказалось что это совсем не так, сетевой разъем имеет встроеный трансформатор с гальванической развязкой выводов, что делает данную процедуру невозможной, хотя это очень бы пригодилось для такого модуля. Соответственно POE+ и POE- ни к чему не подсоединены и их следует рассматривать как не используемые выводы.
POE (Power Over Ethernet)
Технология которая позволяет передавать питание на устройства вместе с сигналом по витой паре. Существует нормальный стандарт (poe ieee 802.3af), где передается 48 вольт (повышенное напряжение снижает потери — 100 метров норма для этого стандарта) по неиспользуемым в 100 мегабитных сетях парам, с опросом поддержки такого питания устройством (если подключить в такой разъем устройство без поддержки POE, то все будет хорошо, устройство будет работать, как подключенное в обычный коммутатор), другой стандарт (если его таким можно назвать) используется в основном в китайских устройствах и самоделках — Passive POE — к неиспользуемым парам подается какое-то напряжение (обычно 12В), и не делается никаких проверок, вся ответственность на сборщике, расстояние передачи питания, также определяется экспериментально (колхоз в общем).


Я решил в своих поделках пойти по пути Passive POE — так как:
— легко реализовать инжектор из обычного коммутатора, припаяв проводки питания к неиспользуемым ножкам
— на приемной стороне достаточно стабилизировать напряжение до нужного
— стоимость итогового варианта очень низкая
— к устройству идет один кабель сразу с питанием и сигналом
Фото переделки коммутатора
Я использовал 16 портовые 3com OfficeConnect (купленные на авито за 300 р штука). Немного великоваты, но в моем случае размер не критичен.
Предварительно нужно отпаять smd резисторы подтягивающие неиспользуемые выводы на землю.





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


Чтобы удобно было сравнивать и оценивать данный модуль, представим его конкурентов:
1) родной шилд arduino uno на том же чипе w5100 (китайская версия)

2) модуль на базе enc28j60 (родного шилда не имеет)


Принципиальная разница в чипах: w5100 (datasheet) имеет аппаратную реализацию tcp/ip, стандартную библиотеку входящую в состав среды arduino. Enc28j60 (datasheet) реализует протоколы через библиотеки, которые нужно устанавливать дополнительно. Если кратко, забегая вперед, то лучше использовать w5100, безпроблемная работа, мало памяти и нет танцев с бубном. Хотя цена — весомый аргумент за enc28j60 (он стоит в 4 раза дешевле).

Количество необходимых выводов контроллера, да и, собственно, их номера для данных модулей совпадают. Обозначения выводов сохранил оригинальными, хоть они и странные :)
Cхема подключения enc28j60 (тот что на фото):
Q3 — 3.3 V
GND — GND
CS — любой цифровой вывод (задается в функции библиотеки, по умолчанию используется d8, я обычно переопределяю на d10 — так удобнее)
ST — d11
SCK — d13
SO — d12
RST — (либо на RST arduino, либо на один из цифровых выводов, чтобы иметь возможность перезагружать модулек без перезагрузки платы)
Выводы сделаны удобно для односторонней платы. После тестов пришел к выводу, что наиболее адекватная библиотека для работы с данным модулем: EtherCard.

Cхема подключения модуля w5100 (тот что на фото):
V+5 — 3.3 V (да именно так, не всегда нужно верить тому что написано)
GND — GND
NSS — любой цифровой вывод (задается в функции библиотеки, по умолчанию используется d10)
MO — d11
SCK — d13
MI — d12
RST — (либо на RST arduino, либо на один из цифровых выводов, чтобы иметь возможность перезагружать модулек без перезагрузки платы)
Выводы сделаны не сильно удобно для односторонней платы. Библиотека входит в состав среды( не нужно скачивать) — Ethernet.
Очень удивило обозначение V+5, и наличие стабилизатора ams1117 на 3.3В, когда модулек отказался работать от 5В. Подал 3.3 и все стало нормально. при этом напряжение на выходе ams: 1.8 В. Видимо китайские инженеры проектировщики, как-то неудачно спроектировали и использовали недокументированные возможности )

потребляемый ток:
enc28j60

w5100

То есть, оба модуля не подходят для автономного питания, впрочем, сложно представить кому это может потребоваться.
Используемая память при компиляции самого простого web-сервера
enc28j60

w5100

отличия налицо, но иногда это не так важно.

Собственно выводы, если вам важны ресурсы производительности и памяти — используйте w5100, если устройство простое и/или логика на центральном сервере можно использовать enc28j60.
Шилд w5100 отличается от рассматриваемого модуля только механизмом подключения + наличие разъема для TF карты, который, кстати, просто съест пины контроллера, если вам не нужна карта (где-то даж мелькала инструкция какие дорожки надо перерезать, чтобы их можно было использовать).

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

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

Так как, I2C индикатор LCD (точнее библиотеки по работе с ним) требует много памяти то выбран был модуль w5100 для работы с сетью. Питание устройству планируется подавать по витой паре от коммутатора. Контроллер посылающий сигналы на ресивер не требует много памяти и является простым устройством, поэтому принято решение на него установить enc28j60.

Печатные платы изготовлены по технологии ЛУТ.
Приемник ИК


Передатчик ИК



Ранее я описывал устройство по управлению электрическим шаровым краном через сеть: обзор, там же описаны особенности ЛУТ. Схемы очень похожи, поэтому не будем на этом останавливаться. Кстати, если вам понравился данный обзор то небольшая просьба плюсануть тот обзор про кран, не хватает совсем немного голосов для получения приза в рубрике «Сделано руками», впрочем, если не победит тот обзор — не сильно расстроюсь, меня гораздо больше порадует если кому-то пригодится информация из данных обзоров при построении своих поделок автоматизации. В коментариях к тому обзору просили выложить программу, немного причесал код для устройства управления краном и выложу его здесь, может кому-то пригодится.

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

Товар приобретен за свои деньги для решения конкретных задач.
Спасибо тем, кто дочитал до конца.

UPD: чуть не забыл главного помощника и критика в своих поделках


Планирую купить +45 Добавить в избранное +43 +96
+
avatar
0
Странная цена для подобной вещи. Брал похожую плату в районе 6-7 $
Поправьте если я не прав. Читать все не осилил. У самого крутится проект web-server c
парой датчиков температуры на ардуине.
Это не одно и то же?

UPD: Прочитал обзор автор разложил все по полочкам. Спасибо за обзор.
+
avatar
  • lolipop
  • 29 апреля 2015, 18:33
0
Тоже сначала не понял, что цена за 5 штук.
+
avatar
  • yurok
  • 29 апреля 2015, 18:34
0
там цена за 5 штук
+
avatar
  • yurok
  • 29 апреля 2015, 18:43
0
прочитайте обзор там как раз написано, что не одно и то же и сравнение есть )
+
avatar
+1
Все равно 8 долларов за это — дорого.
Esp8266 стоит $3 за штуку.
+
avatar
  • yurok
  • 29 апреля 2015, 19:03
0
разные устройства, у каждого есть плюсы и минусы
+
avatar
  • mcshel
  • 29 апреля 2015, 19:06
0
На ESP8266 в данный момент нужно очень постараться, чтобы реализовать что-то сложное. Работает по UART, если в связке с Arduino, так как у UNO он один, доставляет неудобство.

Есть смысл приобретать Ethernet Sheild он в районе 300-350руб. стоит, а так да $8 за данную плату дорого.
+
avatar
  • yurok
  • 29 апреля 2015, 19:08
0
про минусы и плюсы того и другого написано, шилд более распространен поэтому дешевле, но совсем не на много, в обзоре его недостатки тоже написаны
+
avatar
  • mcshel
  • 29 апреля 2015, 19:10
0
Разница в районе доллара.

ebay.com/itm/191480014193
+
avatar
  • telek
  • 29 апреля 2015, 22:45
+1
Сильно стараться не нужно. Есть та же arduino IDE, в которой точно так же как и под ардуину пишешь код, даже в большинстве случаев библиотеки правит не нужно. Потребление существенно меньше, габариты минимальны, много портов(если например esp-201 брать, цена около 3$ — одна плата и никаких лишних проводов)
+
avatar
  • yurok
  • 29 апреля 2015, 23:08
0
у меня есть такие, там есть кое-какие грабли как-нить напишу, или вы напишите — будет интересно
+
avatar
  • Um-ka
  • 30 апреля 2015, 09:50
0
еще там памяти 512к, вместо неполных 32 ардуиновских. Кому быть ведущим еще вопрос. Однако 8266 wifi, а эти ethernet.
+
avatar
  • mcshel
  • 30 апреля 2015, 22:27
0
arduino IDE для ESP8266 еще очень сырая.
+
avatar
  • mcshel
  • 29 апреля 2015, 19:03
0
> родной шилд arduino uno на том же чипе w5100

По фото это китайский аналог, в родном как раз есть место под PoE модуль, но его так же необходимо приобретать отдельно.
+
avatar
  • yurok
  • 29 апреля 2015, 19:04
0
ну это не так важно, имелось ввиду, что родной — в плане не модуль.
+
avatar
+3
Отличный обзор, но хочу покритиковать принцип построения системы. Во-первых Ethernet много жрёт, ватт на линк минимум. Значит автономность работы существенно сокращается, надо городить гору аккумуляторов на случай выключения электричества. Во-вторых, устройство привязано к определенному месту. Экран маленький. У меня, например, плохое зрение и на таких экранах я ничего не вижу.

Как вариант решения — использовать для передачи только модуль на 433 МГц. С нокиевским экраном, вгоняя ардуину в сон, среднее потребление будет около 0.1мка. Соответственно, автономность от батареек полгода минимум. Экран советую вообще изъять. Мне надоело прищуриваться и присматриваться к экранам, и я собрал на Raspberry Pi центральный пункт управления домом, который собирает по 433 МГц каналу информацию с датчиков и через музыкальный центр проговаривает мне то что я запрашиваю.
+
avatar
  • yurok
  • 29 апреля 2015, 19:45
+2
спасибо!
критика это всегда хорошо.
у Ethernet есть свои плюсы и их немало, взвесив все за и против пришел к выводу за основу взять его. Один бесперебойник прокормит гору этих устройств, если они по POE запитаны, а батарейки надо лазить и менять.
По экрану вначале когда пришел — я тож подумал что мелко, но если выводить одно значение во весь — то с 5-6 метров все мои домашние точно сказали что написано, он очень яркий (в отличии от нокии) — а большего расстояния на веранде мне не нужно. Вгонять в сон ик приемник помоему не лучшее решение, вот для датчиков это вполне приемлемо. Голос это хорошо и он тож будет, там где это нужно, если что опишу как голосовую сетку планирую строить )
+
avatar
0
Синтез голоса задача несложная. Raspberry Pi с установленным RHVoice отлично работают. Я вот копаю в сторону распознавания голоса. Пока ничего хорошего не нарыл.
+
avatar
  • yurok
  • 29 апреля 2015, 19:58
+2
Raspberry Pi слабоват для распознавания, у меня лежит BeagleBone Black вот на нем планирую посложней задачки решать, но это совсем другие истории
+
avatar
+1
Одному мне кажется, что два контроллера и Ethernet чтобы передать сигнал ик из одной комнаты в другую это ну оочень чересчур?)
Можно было тогда уж два жсм модуля использовать)

Есть же rs485 если очень хотелось контроллер и сеть. (не говорю уже об аналоговой передаче, где всё бы обошлось одним транзистором, светодиодом и фототранзистором скорее всего)
+
avatar
  • yurok
  • 29 апреля 2015, 21:57
0
я написал что контроллеры пригружу еще другими функциями + возможность управления через телефон и комп, при такой цене — купить в магазине радиоудлинитель ик будет дороже чем данная конструкция
+
avatar
  • zair
  • 29 апреля 2015, 22:23
0
Тссс не спугните :)
+
avatar
0
)) и то верно
+
avatar
  • Skarl
  • 29 апреля 2015, 22:46
0
Аffтор — маньяк :-) автоматизации.
+
+
avatar
  • yurok
  • 29 апреля 2015, 23:05
0
спс, вроде нет — самое простое пока делаю
+
avatar
  • igsru
  • 30 апреля 2015, 03:31
0
А для чего столько проводов в переделке на PoE в коммутаторе? Судя из текста «Passive POE — к неиспользуемым парам подается какое-то напряжение (обычно 12В), и не делается никаких проверок, вся ответственность на сборщике» и «Я решил в своих поделках пойти по пути Passive POE — » как я понимаю нужно на каждый порт подать напряжение на неиспользуемую пару. У вас же там далеко не одна пара на два порта. Почему?
+
avatar
  • yurok
  • 30 апреля 2015, 06:23
0
пара это два провода, 4 порта = 8 пар = 16 проводов. Потом место пайки залил термоклеем, чтобы защитить пайку (по примеру китайских друзей)
+
avatar
  • kven
  • 30 апреля 2015, 09:14
0
Очевидно, что цену нужно за штуку указывать, хорошо что вы 100 штук не купили, цена была бы более внушительной.
+
avatar
  • yurok
  • 30 апреля 2015, 10:22
0
цена автоматом ставится, я подумал исправить, но так тоже не сильно правильно поштучно они дороже
+
avatar
  • 10hippi
  • 30 апреля 2015, 22:01
0
Отличный обзор! Полезное чтиво))
+
avatar
+1
Браво автору!
Я тоже делаю умный дом, и тоже на Ethernet. Также как и автор пустил питание по свободным линиям Ethernet, подпаялся к контактам в коммутаторе. Пошёл дальше, и у меня уже и точки доступа, и электрозамок на калитки также записаны по витой паре. Только я использую 24 вольта, проще большую мощность притащить. А питает всё самодельный низковольтный ИБП на 24 вольта. Так намного экономичнее, нежели простой ИБП + блок питания. В коммутатор хочу установить мегу и сделать всё же что то больше похожее на настоящий PoE, хочу анализировать потребление.
У себя использую ENC28J60, они и компактнее, и дешевле — за ту же цену получается «наавтоматизировать» больше. PoE в модули завожу «грубо» — подпаялся к контактам внутри разъёма, там не сложно, и выжег импульсом с конденсатора сопротивления внутри него. Работает так уже 4 устройства 24/7, остальные участвуют в экэкспериментах. По потреблению — да, модули прожорливые, но жрут не меньше ESP, а медь есть медь, надёжность проводных коммуникаций для умного дома оптимально. Да и коммутаторов море, разъёмы и провода дешевы и доступны.
+
avatar
  • yurok
  • 01 мая 2015, 18:12
0
Спасибо за хороший отзыв!
Описали бы обзором как и что у вас используеетя, как сделали ИБП, как получаете требуемый вольтаж из 24. Какие проблемы возникли и как они решены. И про импульс и подпайку тоже. Думаю многим будет интересно.
Беда enc28j60 в программной реализации всего, фактически половину ресурсов контроллер отдаст этому модулю… Считаю что их тоже вполне можно использовать, но не всегда. А по размерам, так модулек из обзора поменьше даже. Коммутаторы я купил сразу 4 штуки по 16 портов на авито — 300 руб штуку, организация перешла на гигабит и админ решил видимо на пиво заработать )
+
avatar
0
Напряжение получаю так же, как и вы — таким же модулем крохотным. Раньше брал на LM2596ADJ, но они более капризные, и большие :-) проблем никаких, про ИБП и прочее постараюсь рассказать. Про импульс: открываем крышку разъёма (там защелки) к контактам один к 4-5, другой — 7,8 конденсатор из любого импульсного блока (сетевой у меня 20 мкФ 450 вольт.) через кнопочку к этим проводам. Конденсатор заряжаем (к примеру через мостик и резистор), ОТКЛЮЧАЕМ ОТ СЕТИ, и кнопкой разряжается на эти контакты. Если всё правильно сделали, в разъёма щелкнет, всё, резисторы мы выжигли :-)
+
avatar
  • yurok
  • 02 мая 2015, 10:01
0
я про то что написали бы обзор, где подробно бы все рассказали — многим думаю пригодиться
+
avatar
  • yurok
  • 05 мая 2015, 09:14
0
вскрыл enc28j60 там 4 трансформатора маленьких залито смолой.
или вскрывать надо «глубже»?
+
avatar
+1
Нет, не нужно, этого достаточно. Находите нужные контакты (у меня не смола а, скорее, силикон черный был — аккуратно отковырял с контактов) — в самом верху ряд их. Когда уберете смолу то увидите что от нужных вам контактов дорожки по этой стороне платы не идут к трансформаторам. Вам нужны 4,5 и 7,8 контакты. На фото считать начиная справа. Подпаивайте к ним 2 провода (будущий плюс на 4,5; будущий минус на 7,8; вроде так по «стандарту») Далее их через мощную кнопку (я сделал готовое «устройство» — так как модулей у меня много) нормально разомкнутую без фиксации (!) к конденсатору. Тут подробнее: у меня есть коробка со всякими блоками питания, в том числе и неисправными, нашел там блок питания от ноутбука — в раёоне ШИМ была дыра, но сетевой электролит с выпрямительным мостом у него в порядке. Я отрезал дорожки от конденсатора идущие дальше и подпаял провода прямо к выводам конденсатора. Также сделал ещё одну нормально разомкнутую кнопку без фиксации в разрыв питания блока. Всё, у меня получился «выжигатель элементов». Думаю что объяснил понятно. Должно получиться так: нажимаем на кнопку 1 кратковременно — заряжаем электролит, нажимаем коротко на кнопку два — разряжаем его в наш модуль. Кнопки одновременно не жать :) В модуле щёлкнет — резисторы порвало :)
Осторожнее — развязки от сети нет.
P.S. я у себя эти модули переделывал дальше — провод питания с трансформатора выводил прямо на ножку модуля — на вывод WOL, отрезав от него дорожку предварительно. Ну а землю на землю :)
+
avatar
  • yurok
  • 05 мая 2015, 12:36
0
спасибо — попробую
+
avatar
0
Рад буду, если пригодится :)
А вообще советую обратить внимание на 2 форума:
ab-log.ru/forum/
и
smartliving.ru/forum/
Оба на тему умного дома.
На первом хозяин сайта Андрей разрабатывает интересное устройство — Мега Девайс (AmegaD328), тут вам и enc28J60 и TCP IP стек, и работа с сервером, и много много другого… Очень интересно и затягивает. Я тоже веду свою разработку — на форуме тема «Рулонные шторы — простая автоматизация, загляните если интересно. Сейчас уже новую версию доделываю — с управлением по WiFi (ESP8266).
+
avatar
0
задумал 1 проект и вот интересно время срабатывания (ping) не замеряли? за какое время например загорится светодиод после отправки команды?
+
avatar
  • yurok
  • 01 мая 2015, 21:39
+1
спасибо за вопрос замерю, на обеих модульках, самому интересно. После праздников только, сейчас на даче занят
+
avatar
0
спасибо жду
+
avatar
  • yurok
  • 06 мая 2015, 21:16
+1
Вы не ждали?! а мы измерили!

замерил:
330 мс — занимает отдача страницы с опросом 5 аналоговых портов (пустых) это на Mega
360 мс — тоже на uno
это все для модуля w5100
Думаю вам следует рассчитывать примерно на это время
обычный ping дает <1мс

Самое забавное enc28j60 на arduino uno!!!
дал 70 мс
объяснение скорее всего — это из-за сильно урезанной поддержки tcp/ip

ping enc28j60 колеблется 4-9 мс (програмная реализация + 10 мегабит супротив 100 у w5100)

получается что если важно время отклика то лучше использовать модулек подешевле, при этом будет проигрыш в памяти и производительности контроллера, к тому же поддержка сети весьма примитивна
+
avatar
0
спасибо
+
avatar
  • yurok
  • 06 мая 2015, 21:51
0
устроила скорость? может расскажете чего делать планируете?
+
avatar
  • chsn
  • 09 декабря 2015, 23:13
0
«выложу его здесь» ссылка пустая, обновите.
+
avatar
  • viktorlg
  • 25 февраля 2019, 18:02
0
Вопрос к многоуважаемому автору… Каким чудным образом вы прикрутили к модулю W5100 библиотеку, которая его в принципе поддерживать не умеет, т.к. заточена под модуль ENC28J60? Цитата с сайта библиотеки EtherCard: " Hardware: This library only supports the ENC28J60 chip....". Кудесник да и только…