RSS блога
Подписка
Сетевой модуль W5100 сравнения, поделки (ардуинство)
- Цена: $39.90
- Перейти в магазин
Данный модуль призван обеспечить сетью ваши поделки на микроконтроллерах, придав им существенно большие возможности. Под катом будем смотреть насколько модуль соответствует описанию и использовать его по прямому назначению. А так же сравним его с другими собратьями по функционалу. Цена за 5 штук (не пугайтесь :) )
Если вы планируете (или уже занимаетесь) автоматизацией рутинных процессов (сейчас принято это называть «умным домом»), то безусловно приходите к необходимости взаимодействия различных устройств межу собой. И, почти как всегда, существует множество альтернативных решений. Одно из них (не самое плохое) будет рассмотрено далее.
Модульки пришли в антистатических пакетиках, все вместе сложены в коробочку.
Доехали хорошо, за 35 дней. Трек номер отслеживался (ехали из Китая через Финляндию). Тут показатели весьма средние.
Размеры модулей 3 на 5 см. Что не может не радовать, модулек меньше своих собратьев.
Раз уж мы планируем стыковать данный модуль с arduino, то напомню, что arduino представляет собой некий стандарт для быстрого построения устройств автоматики и робототехники не профессионалами, фактически же это заключается в среде разработки, язык (на самом деле это c++ с несколькими специфическими функциями), загрузчик для контроллеров, формат плат и дополнительных подсоединяемых устройств. Существует несколько плат, для которых можно разрабатывать в одной среде, конкретная плата выбирается исходя из потребностей по производительности, памяти, габаритам и цене. Более подробно прочитать можно здесь.
Вкратце для arduino есть шилды (плата которая подсоединяется непосредственно к одной или нескольким видам плат с arduino) и модули (платы которые нуждаются в проводах для подключения к arduino), в данном случае это именно модуль, то есть если вы используете arduino, например UNO, то для подсоединения потребуются провода. Шилды удобны для быстрой сборки, а модули более компактны и удобно встраиваются в самодельные устройства — тут каждый решает сам. Стоимость обычно определяется тиражом, соответственно, если модули популярнее шилдов они дешевле и наоборот. В данном случае шилд немного дешевле чем модуль, но если вы планируете использовать контроллер или arduino pro mini — то использование шилда малоцелесообразно.
Сделан модуль довольно аккуратно, флюса нет. Шелкография четкая.
При рассмотрении обрадовали обозначения POE+ и POE-, которые, судя по всему, должны были подавать питание приходящее по сетевому кабелю на соответствующие выводы… Но оказалось что это совсем не так, сетевой разъем имеет встроеный трансформатор с гальванической развязкой выводов, что делает данную процедуру невозможной, хотя это очень бы пригодилось для такого модуля. Соответственно POE+ и POE- ни к чему не подсоединены и их следует рассматривать как не используемые выводы.
Я решил в своих поделках пойти по пути Passive POE — так как:
— легко реализовать инжектор из обычного коммутатора, припаяв проводки питания к неиспользуемым ножкам
— на приемной стороне достаточно стабилизировать напряжение до нужного
— стоимость итогового варианта очень низкая
— к устройству идет один кабель сразу с питанием и сигналом
В общем, немного расстроил модулек отсутствием проброса 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: чуть не забыл главного помощника и критика в своих поделках
Если вы планируете (или уже занимаетесь) автоматизацией рутинных процессов (сейчас принято это называть «умным домом»), то безусловно приходите к необходимости взаимодействия различных устройств межу собой. И, почти как всегда, существует множество альтернативных решений. Одно из них (не самое плохое) будет рассмотрено далее.
Модульки пришли в антистатических пакетиках, все вместе сложены в коробочку.
Доехали хорошо, за 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 резисторы подтягивающие неиспользуемые выводы на землю.
Предварительно нужно отпаять 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: чуть не забыл главного помощника и критика в своих поделках
Самые обсуждаемые обзоры
+66 |
2871
116
|
+49 |
3161
64
|
+27 |
2010
33
|
+50 |
1862
34
|
Поправьте если я не прав. Читать все не осилил. У самого крутится проект web-server c
парой датчиков температуры на ардуине.
Это не одно и то же?
UPD: Прочитал обзор автор разложил все по полочкам. Спасибо за обзор.
Esp8266 стоит $3 за штуку.
Есть смысл приобретать Ethernet Sheild он в районе 300-350руб. стоит, а так да $8 за данную плату дорого.
ebay.com/itm/191480014193
По фото это китайский аналог, в родном как раз есть место под PoE модуль, но его так же необходимо приобретать отдельно.
Как вариант решения — использовать для передачи только модуль на 433 МГц. С нокиевским экраном, вгоняя ардуину в сон, среднее потребление будет около 0.1мка. Соответственно, автономность от батареек полгода минимум. Экран советую вообще изъять. Мне надоело прищуриваться и присматриваться к экранам, и я собрал на Raspberry Pi центральный пункт управления домом, который собирает по 433 МГц каналу информацию с датчиков и через музыкальный центр проговаривает мне то что я запрашиваю.
критика это всегда хорошо.
у Ethernet есть свои плюсы и их немало, взвесив все за и против пришел к выводу за основу взять его. Один бесперебойник прокормит гору этих устройств, если они по POE запитаны, а батарейки надо лазить и менять.
По экрану вначале когда пришел — я тож подумал что мелко, но если выводить одно значение во весь — то с 5-6 метров все мои домашние точно сказали что написано, он очень яркий (в отличии от нокии) — а большего расстояния на веранде мне не нужно. Вгонять в сон ик приемник помоему не лучшее решение, вот для датчиков это вполне приемлемо. Голос это хорошо и он тож будет, там где это нужно, если что опишу как голосовую сетку планирую строить )
Можно было тогда уж два жсм модуля использовать)
Есть же rs485 если очень хотелось контроллер и сеть. (не говорю уже об аналоговой передаче, где всё бы обошлось одним транзистором, светодиодом и фототранзистором скорее всего)
+
Я тоже делаю умный дом, и тоже на Ethernet. Также как и автор пустил питание по свободным линиям Ethernet, подпаялся к контактам в коммутаторе. Пошёл дальше, и у меня уже и точки доступа, и электрозамок на калитки также записаны по витой паре. Только я использую 24 вольта, проще большую мощность притащить. А питает всё самодельный низковольтный ИБП на 24 вольта. Так намного экономичнее, нежели простой ИБП + блок питания. В коммутатор хочу установить мегу и сделать всё же что то больше похожее на настоящий PoE, хочу анализировать потребление.
У себя использую ENC28J60, они и компактнее, и дешевле — за ту же цену получается «наавтоматизировать» больше. PoE в модули завожу «грубо» — подпаялся к контактам внутри разъёма, там не сложно, и выжег импульсом с конденсатора сопротивления внутри него. Работает так уже 4 устройства 24/7, остальные участвуют в экэкспериментах. По потреблению — да, модули прожорливые, но жрут не меньше ESP, а медь есть медь, надёжность проводных коммуникаций для умного дома оптимально. Да и коммутаторов море, разъёмы и провода дешевы и доступны.
Описали бы обзором как и что у вас используеетя, как сделали ИБП, как получаете требуемый вольтаж из 24. Какие проблемы возникли и как они решены. И про импульс и подпайку тоже. Думаю многим будет интересно.
Беда enc28j60 в программной реализации всего, фактически половину ресурсов контроллер отдаст этому модулю… Считаю что их тоже вполне можно использовать, но не всегда. А по размерам, так модулек из обзора поменьше даже. Коммутаторы я купил сразу 4 штуки по 16 портов на авито — 300 руб штуку, организация перешла на гигабит и админ решил видимо на пиво заработать )
или вскрывать надо «глубже»?
Осторожнее — развязки от сети нет.
P.S. я у себя эти модули переделывал дальше — провод питания с трансформатора выводил прямо на ножку модуля — на вывод WOL, отрезав от него дорожку предварительно. Ну а землю на землю :)
А вообще советую обратить внимание на 2 форума:
ab-log.ru/forum/
и
smartliving.ru/forum/
Оба на тему умного дома.
На первом хозяин сайта Андрей разрабатывает интересное устройство — Мега Девайс (AmegaD328), тут вам и enc28J60 и TCP IP стек, и работа с сервером, и много много другого… Очень интересно и затягивает. Я тоже веду свою разработку — на форуме тема «Рулонные шторы — простая автоматизация, загляните если интересно. Сейчас уже новую версию доделываю — с управлением по WiFi (ESP8266).
замерил:
330 мс — занимает отдача страницы с опросом 5 аналоговых портов (пустых) это на Mega
360 мс — тоже на uno
это все для модуля w5100
Думаю вам следует рассчитывать примерно на это время
обычный ping дает <1мс
Самое забавное enc28j60 на arduino uno!!!
дал 70 мс
объяснение скорее всего — это из-за сильно урезанной поддержки tcp/ip
ping enc28j60 колеблется 4-9 мс (програмная реализация + 10 мегабит супротив 100 у w5100)
получается что если важно время отклика то лучше использовать модулек подешевле, при этом будет проигрыш в памяти и производительности контроллера, к тому же поддержка сети весьма примитивна