Модули Ethernet для Arduino
Есть несколько способов подключить плату Arduino к Интернету. Беспроводное соединение прекрасно организовано с использованием платформ ESP8266 или ESP32. Модули Lora можно использовать с соответствующими шлюзами WiFi. Но наиболее помехоустойчивым и «традиционным» является старый добрый Ethernet. Используя обычный разъем RJ45 и кабель витой пары, вы можете комбинировать свою карту с другим сетевым оборудованием, будь то роутер, роутер или сам модем WiFi.
Преимущества соединения Ethernet — скорость, стабильность и большая невосприимчивость к помехам. Недостатки очевидны: оборудование завязывается ниткой, и в реальных условиях качество этой нити должно быть высоким.
Самые популярные на сегодняшний день модули Ethernet для Arduino основаны на чипе wiznet w5100, который способен поддерживать обмен данными с постоянной скоростью 100 Мбит / с. Для устройств на базе w5100 написаны готовые библиотеки, эта архитектура проста и идеальна для начинающих энтузиастов электроники, которые могут использовать их как ступеньку для последующих проектов.
Ключевые особенности модулей на базе W5100:
- Рабочее напряжение 5 Вольт, подойдет блок питания от платы Arduino.
- Внутренний буфер 16КБ.
- Скорость соединения достигает 10/100 Мбит / с.
- Связь с платой Arduino происходит через порт SPI.
- W5100 поддерживает TCP и UDP.
Варианты модулей на базе других микросхем:
- Модуль на базе Wiznet W5500. У него меньший размер, он меньше нагревается, у него больше мощности.
- Модуль на базе Enc28j60. Это гораздо более дешевый и дешевый вариант, чем W5100, но потенциальных проблем может быть больше.
Принципиальная схема
Подключите экран Ethernet к материнской плате Arduino. А электромагнитное реле уже стоит на плате расширения. Используем блок питания на 5 вольт и заземление. А для проверки реле возьмите седьмой цифровой пин.
Принципиальная схема подключения экрана и реле Ethernet
Подключение модуля HR911105A к Arduino Uno
Детали, необходимые для подключения модуля HR911105A к Arduino
Для урока нам понадобятся следующие детали
- плата Arduino Uno / Arduino Nano / Arduino Mega;
- HanRun HR911105A 15/10 порт Ethernet;
- макетная доска;
- провода «папа-папа и папа-мама»;
- 3 светодиода;
- 3 резистора 10 кОм;
- маршрутизатор и кабель LAN.
Подключите плату Arduino Uno и HR911105A как на фото ниже
Обратите внимание, что 10-контактный модуль Ethernet ENC28J60 Enternet HR911105A питается от разъема 3,3 В и 12-контактного модуля 5 В. Также обозначения разъемов на HanRun HR911105A могут быть изменены производителем, например ST — вместо SO
Соединение проводов с контактами должно быть качественным.
Схема подключения HR911105A к Arduino Uno
Далее собираем на макетной плате схему из трех светодиодов и резисторов. Светодиоды подключаются к разъемам 3, 4, 5 на плате Arduino. При желании вы можете подключить светодиод RGB к Arduino или увеличить количество светодиодов, внося необходимые изменения в эскиз для управления Arduino через Wi-Fi.
Не забывайте полярность (длинная ножка светодиода — преимущество)
После сборки электрической схемы нужно загрузить библиотеку для работы с HanRun HR911105A. Библиотеки служат для облегчения кода. Это могут быть драйверы для дополнительного оборудования или часто используемые функции. В Arduino IDE уже есть ряд широко используемых стандартных библиотек. Но в нашем случае вам нужно скачать новые библиотеки (скачать архив) с Google Диска.
Распаковать архив с библиотекой в папку C: Program Files Arduino libraries
Откройте программу Arduino IDE и проверьте установку библиотеки. Зайдите в меню «Файл — Образцы», после стандартных библиотек должна появиться библиотека «ethercard». Библиотеки часто содержат несколько готовых эскизов.
Проверьте установку библиотеки после открытия программы Arduino IDE
Из-за большого количества кода мы представим только небольшую выдержку из скетча. Программа использует HTML-теги для создания веб-страницы. Скачайте здесь готовый скетч и загрузите программу в микроконтроллер.
Пояснения к коду:
- С помощью этой строки мы освободили память в микроконтроллере буфера обмена. По мере роста данных на веб-странице вам необходимо увеличивать буфер, чтобы избежать зависания»;
- Светодиоды включаются / выключаются в зависимости от количества символов в строке «Светодиод 1: ВЫКЛ» или ;
- Веб-страница оформлена и оформлена с помощью тегов HTML.
Авторизуйтесь через любой браузер на вашем компьютере по IP-адресу 192.168.1.55
Программа
Смысл проекта такой же, как у блютуза. Плата должна получить от нас сигнал и установить реле в нужное состояние. Тогда оборудование, подключенное к реле, соответственно включится или выключится.
Воспользуемся примером из библиотеки Ethernet.
Откройте скетч из меню Файл -> Примеры -> Ethernet -> WebServer
Вы можете установить MAC-адрес и IP-адрес для своей карты. IP-адрес должен подходить для вашей локальной сети. HTTP-сервер будет работать на 80-м порту как обычно. И подключите реле к контакту 7.
Теперь займемся loop (). Каждый раз, когда новый клиент подключается к серверу, мы должны отправлять ему веб-страницу с необходимой информацией. Мы используем монитор последовательного порта для отладки программы. Мы будем получать информацию от клиента через заголовки http, и для этого мы подсчитываем всю информацию, которую можем получить при подключении к серверу.
Итак, у нас получилась строка, в которой будет находиться вся доступная информация. Сюда входят данные хоста, реферера и браузера. В связи с тем, что данные в реферере и хосте будут дублироваться, и нам понадобится только строка хоста, мы удалим ненужную информацию.
Теперь мы можем использовать информацию о состоянии реле и создать желаемую веб-страницу для пользователя.
Используемые библиотеки и проблемы при сборке
Плата Arduino nano v 3.0: распиновка, схемы, драйверы
Есть три варианта библиотеки для работы с этим модулем. По результатам:
- ether_28j60.zip идеально подходит для обучения;
- для серьезного кодирования — ethercard;
- для серьезного использования в системах с большой памятью — uip-ethernet.
ether_28j60 и EtherShield
Иногда при первом использовании библиотек ether_28j60 и EtherShield может возникнуть ошибка: error: ‘prog_char’ не называет тип
Чтобы решить эту проблему, вам нужно заменить все строки prog_char и char PROGMEM на char во всех файлах в библиотеках ether_28j60 и EtherShield.
Еще заметил, что при работе с этой библиотекой более часа-двух может произойти сбой модуля. Добавлено: зависает вроде мило. Мы не используем.
- более компактная библиотека
- самый простой код для написания
- Подходит только для просмотра простой веб-страницы.
- Достаточно торможения
- Зависание неоднократно замечалось через 1-2 часа работы
EtherCard
Если мы используем библиотеку EtherCard, стоит обратить внимание на строку инициализации. В примерах это выглядит как
По стабильности завалов не наблюдал, вроде подходит библиотека.
Дефект —
- Стабильность работы
- Высокая скорость обработки
- Большое количество возможностей
- Компактный код, но больше, чем ether_28j60.zip
- Нет явной функции печати для вывода на веб-страницу. Страница отображается в буфере и отображается полностью.
UIPEthernet
Кажется, с этой библиотекой проблем нет. Также с ним работают стандартные примеры комплекта Arduino IDE. В них достаточно заменить строчку #включать на #включать
- Самый большой набор функций из всех рассмотренных выше
- Максимально удобное использование, подходят стандартные примеры, нужно просто заменить подключаемую библиотеку
- Быстрое исполнение
- Очень громоздкий код после сборки. В связи с этим для серьезного использования он подходит только для Arduino Mega или подобных плат с большой памятью.
Как подключить Ethernet модуль к Arduino
Чтобы справиться с этой задачей, мы подготовили пошаговую инструкцию по подключению Arduino Uno к модулю HR911105A 15/10. Вы узнаете, к каким разъемам подключен порт, и посмотрите видео с работающей схемой Ethernet модуля HanRun HR911105A и Arduino Uno. Итак, для урока нам понадобится плата Arduino, порт HanRun Ethernet и маршрутизатор Wi-Fi для организации локальной сети.
Видео. Управление Ардуино через Wi-Fi
Следуйте пошаговым инструкциям, и вы сможете управлять свечением светодиодов в локальной сети через свой компьютер. А если в роутере есть возможность создать точку доступа Wi-Fi, управление может быть доступно через любое мобильное устройство (телефон или планшет). Ниже представлена схема подключения модуля HanRun HR911105A и Arduino LAN, а также рабочий скетч управления Arduino через Wi-Fi.
Шилды Ethernet Shield для Arduino Uno или Nano
Модуль gsm arduino
Удобнее всего работать с W5100 — использовать готовый экран Ethernet для Arduino Uno или Nano. На этих модулях уже выполнены все необходимые подключения, экран просто вставляется в соответствующие разъемы платы и остается только загрузить скетч. Конечно, при желании к плате можно подключить и другие устройства.
Шилд Arduino Ethernet
Плата расширения подключается через соединение RJ-45. Карта имеет встроенный слот SD / MicroSD, который используется для хранения файлов, используемых для подключения и передачи по локальной сети. Этот слот совместим со всеми платами Arduino / Genuino, т.е вы можете работать с данными на плате, используя стандартную библиотеку SD. Вы также можете найти кнопку сброса на карте расширения питания. Первые версии платы расширения не были совместимы с мега-ардуино, они требовали ручного сброса после включения.
Если карта оборудована модулем 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.
Arduino Nano Shield Ethernet Shield
Модуль также имеет разъем RJ-45, слот SD и, в некоторых модификациях, также оснащен контроллером PoE.
“Универсальное” электромагнитное реле
Электромагнитное реле — это, по сути, управляемый механический переключатель: на него подается ток — он замыкает контакты, если ток снимается — размыкается. Контакты — это просто контакты: металлический «никель», которые прижаты друг к другу. Вот почему такое реле может управлять нагрузками как постоянного, так и переменного тока.
Катушка реле представляет собой неслабую индуктивную нагрузку, что приводит к дополнительным проблемам (см. Ниже), поэтому нам нужна дополнительная схема питания и защиты для управления неизолированным реле.
Изучив этот урок, вы сможете составить его самостоятельно (транзистор и диод), а теперь поговорим о модулях реле — готовой плате, на которой находится само реле, а также схемах переключения, защиты и даже оптическая изоляция. Такие модули являются «семейными» — с несколькими реле на борту. Спасибо китайцам за это! Можно купить на Алиэкспресс, также смотрите варианты в моем каталоге ссылок на Али.
Это реле специально создано для удобного управления с микроконтроллера: выводы питания VCC (Vin, 5V) и GND подключены к источнику питания, поэтому реле управляется логическим сигналом, подаваемым на вывод IN. Вместо этого есть клеммная колодка для подключения проводов, обычно контакты подписаны как NO, NC и COM. Это общие названия для кнопок, переключателей и контактов реле:
COM — Common, common. Реле заменено, а вывод COM — общий.
НЕТ — нормально открытый, нормально открытый. Когда реле неактивно, этот контакт не подключен к COM. Когда реле активировано, оно замыкается на COM.
NC — нормально замкнутый, нормально замкнутый. Когда реле неактивно, этот контакт подключен к COM. Когда реле активировано, оно размыкается с помощью COM.
Думаю, подключение нагрузки через реле всем очевидно:
Важный момент: катушка реле в активном режиме потребляет около 60 мА, то есть не рекомендуется подключать более одного модуля реле при питании платы от USB — уже появятся перепады напряжения и помехи:
Эти релейные модули бывают двух типов: низкого и высокого уровня. Реле низкого уровня переключается при низком уровне сигнала (GND) на управляющем контакте digitalWrite (контакт LOW). Реле высокого уровня активируется соответственно высоким уровнем digitalWrite (контакт, HIGH). Какое у вас реле можно определить экспериментальным путем, а можно прочитать о нем на странице товара или на самой плате. Также есть модули с возможностью выбора уровня:
На плате справа от метки триггера High / Low есть перемычка, с помощью которой переключается уровень.
Электромагнитное реле имеет ряд недостатков по сравнению с другими методами, описанными ниже, вы должны знать и учитывать их:
Ограниченное количество переключений: механический контакт изнашивается, особенно при высокой и / или индуктивной нагрузке.
Отвратительные щелчки!
При большой нагрузке реле может «залипнуть», поэтому для больших токов необходимо использовать более мощные реле, которые нужно будет включать с помощью . небольших реле. Или транзистор.
Для управления реле требуются дополнительные схемы, поскольку катушка представляет собой индуктивную нагрузку, а сама нагрузка слишком велика для вывода MK (решено с использованием китайского модуля реле).
Очень высокие перекрестные помехи по всей линии питания при переключении индуктивных нагрузок.
Относительно длительное переключение, при проверке индуктивных цепей переменного тока возможно попадание большого индуктивного пика, необходимо установить цепи искрогасителя.
Важный момент связан с переключением ламп и светодиодных ламп, особенно недорогих: прямо на входе у них есть конденсатор, который при резком включении в цепь становится очень мощным потребителем и приводит к скачку тока. Скачок может быть настолько большим, что светодиодная лампа мощностью 15-20 Вт буквально сваривает контакты реле и прилипает! Этот эффект более выражен на бюджетных лампах, будьте осторожны с ними (спасибо ДАК за информацию).
Реле может плавно управлять сильно инерционной нагрузкой, например, большим нагревателем. Для этого нужно использовать ШИМ-сигнал сверхнизкой частоты, у меня есть готовая библиотека. Не забываем, что реле отвратительно щелкает и изнашивается, поэтому для таких целей больше подходит твердотельное реле, о котором мы поговорим ниже.
NETAlarm
Особенности устройства:
- 3 цифровых датчика DS18B20
- 2 аналоговых входа (0… 3,3 В)
- 4 цифровых входа
- два дискретных выхода (управляемые программно (настраиваются через веб-интерфейс) или вручную)
- веб-интерфейс, позволяющий настраивать все параметры устройства, включая параметры сети, и алгоритм реагирования на различные состояния датчиков.
- отправка данных демону Syslog на указанном сервере по истечении указанного временного интервала
- отправка сообщений по протоколу UDP на указанный сервер в случае превышения критических показаний датчика (настраивается через веб-интерфейс).
Предохранители должны устанавливать часы от внешнего источника и отключать JTAG. Все остальные предопределены.
Читайте также: Типы переменных в Ардуино: локальные и глобальные при распределении в памяти