Arduino Leonardo Ethernet — хороший выбор для проектов интернета вещей, в которых необходимо, чтобы устройство было полноправным участником проводной сети. Устройство на Arduino Leonardo ETH может выступить сетевым клиентом и собирать данные с других устройств, компьютеров, интернет-сервисов. Точно также устройство может быть и сервером, способным принимать и обрабатывать запросы от других устройств и компьютеров локальной сети или через интернет.
Версия PoE (Power over Ethernet) позволяет вам ограничиться всего одним Ethernet-кабелем и для передачи данных, и для питания устройства. Ваш маршрутизатор должен также поддерживать технологию PoE для предоставления питания через витую пару.
Используйте Arduino Leonardo ETH для того, чтобы с другого конца планеты управлять своим устройством и запрашивать у него текущий статус или показания подключённых датчиков. Либо отдайте всю работу на автономное исполнение: пусть устройство реагирует на события в сети так, как вы задумали.
Arduino Leonardo Ethernet — это скрещенные на одной плате Arduino Leonardo и Ethernet Shield без увеличения габаритов платы. Основной микроконтроллер платформы — ATmega32U4, чип для работы с Ethernet — Wiznet W5500. Плата производится компанией Aduino SRL в Италии.
Как и на Arduino Leonardo, на колодки выведены 20 портов ввода-вывода общего назначения из которых:
Доступны аппаратные шины SPI, TWI/I²C, UART/Serial.
Arduino Leonardo ETH смотрит в сторону USB через виртуальный serial-порт, не через аппаратный. Это означает, что 0-й и 1-й контакты аппаратного порта остаются свободными и вы можете использовать их одновременно с коммуникацией с компьютером. Виртуальный serial-порт доступен через класс Serial, а аппаратный — через класс Serial1.
При открытии serial-соединения с компьютера загруженный скетч не перезагружается.
На плате вы найдёте разъём для карты microSD объёмом до 2 ГБ. Используйте флешку для протоколирования данных или для хранения файлов, которые нужно раздавать по сети.
Для коммуникации с сетевым чипом W5500 зарезервирован 10-й пин. Если вы используете microSD-карту, занятым также окажется 4-й пин.
На низком уровне общение с сетевым чипом и флеш-картой осуществляется через шину SPI, которая выведена отдельным ICSP-разъёмом 3×2.
С точки зрения компьютера Arduino Leonardo ETH может быть и HID-устройством, вроде клавиатуры или мыши. Поэтому на основе платы можно легко сделать что-то вроде переходника с Ethernet на клавиатуру, чтобы поручить обработку и визуализацию данных компьютеру.
Платформа программируется через привычную Arduino IDE или с помощью визуальной среды программирования XOD IDE. В меню плат достаточно выбрать Arduino Leonardo и использовать библиотеку Ethernet2. Для включения в локальную сеть просто соедините плату и свой маршрутизатор патч-кордом витой пары.
Для прошивки используется порт microUSB.
Вам доступны стеки TCP/IP и UDP. Работать с сетью необходимо на уровне сокетов. Это означает, что плата отлично справится с обработкой несложных бинарных пакетов или простых HTTP-запросов. Но реализация сложных протоколов потребует от вас глубоких знаний. Если устройству необходимо работать с большим объёмом данных, с XML, JSON, возможно лучшим выбором станет одноплатный компьютер с Linux на борту.
Родное напряжение для платы — 5 вольт. Питание можно подавать через microUSB-порт или через отдельное гнездо. Питание через гнездо проходит через встроенный регулятор напряжения, который сделает необходимые 5 В из подведённых 7–12 В.
Arduino Leonardo ETH снабжена предохранителем, защищающим USB-порты вашего компьютера от перенапряжения и коротких замыканий. Хотя большинство компьютеров обладают собственными средствами защиты, предохранитель даёт дополнительную уверенность. Он разрывает соединение, если на USB-порт подаётся более 500 мА, и восстанавливает его после нормализации ситуации.
Размер платы составляет 6,9 × 5,3 см. Гнёзда для внешнего питания и USB выступают на пару миллиметров за обозначенные границы. На плате предусмотрены места для крепления на шурупы или винты. Расстояние между контактами составляет 0,1″ (2,54 мм), но в случае 7-го и 8-го контакта — расстояние: 0,16″.