Arduino управление через web интерфейс. Управление устройствами через веб-интерфейс с помощью Arduino и Ethernet Shield

Как создать веб-интерфейс для управления Arduino. Какие компоненты нужны для подключения Arduino к сети. Как настроить веб-сервер на Arduino с Ethernet Shield. Как реализовать управление серводвигателем и светодиодом через браузер. Какие преимущества дает удаленное управление устройствами на Arduino.

Содержание

Компоненты для создания веб-контроллера на базе Arduino

Для реализации удаленного управления устройствами через веб-интерфейс на базе Arduino потребуются следующие компоненты:

  • Плата Arduino UNO или совместимая
  • Ethernet Shield на базе чипа W5100
  • Серводвигатель
  • Светодиод и резистор 220 Ом
  • Соединительные провода

Ключевым элементом является Ethernet Shield, который позволяет подключить Arduino к локальной сети или интернету. Он устанавливается поверх платы Arduino и обеспечивает сетевое подключение через стандартный разъем RJ-45.

Подключение компонентов и настройка аппаратной части

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


  1. Установите Ethernet Shield на Arduino UNO
  2. Подключите сигнальный провод серводвигателя к пину 9 Arduino
  3. Подключите светодиод через резистор 220 Ом к пину 8 Arduino
  4. Подключите питание и ground серводвигателя к соответствующим пинам Arduino

После сборки схемы подключите Ethernet кабель к разъему на шилде. Теперь Arduino готов к настройке программной части.

Программирование веб-сервера на Arduino

Для создания веб-сервера на Arduino потребуется использовать библиотеку Ethernet. Вот основные шаги по программированию:

  1. Подключите библиотеки Ethernet и Servo
  2. Настройте MAC-адрес и IP-адрес для Arduino
  3. Инициализируйте объект EthernetServer для прослушивания входящих подключений
  4. В функции loop() проверяйте наличие клиентов и обрабатывайте запросы
  5. При получении запроса формируйте HTML-страницу с элементами управления
  6. Обрабатывайте команды от веб-интерфейса для управления устройствами

Ключевой момент — правильная обработка HTTP-запросов и формирование ответов с HTML-кодом страницы управления.


Создание веб-интерфейса для управления устройствами

Веб-интерфейс для управления устройствами может выглядеть следующим образом:

  • Кнопка для включения/выключения светодиода
  • Слайдер для управления углом поворота серводвигателя
  • Индикация текущего состояния устройств

HTML-код страницы формируется непосредственно на Arduino при обработке запросов. Для интерактивности можно использовать JavaScript. Важно сделать интерфейс простым и понятным для пользователя.

Преимущества удаленного управления через веб-интерфейс

Реализация веб-управления устройствами на базе Arduino дает ряд преимуществ:

  • Возможность управления из любой точки сети/интернета
  • Не требуется установка дополнительного ПО, достаточно браузера
  • Простота масштабирования — легко добавлять новые устройства
  • Удобство мониторинга состояния устройств
  • Возможность интеграции с другими веб-сервисами

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

Настройка безопасности веб-управления Arduino

При реализации веб-интерфейса для управления устройствами важно уделить внимание вопросам безопасности. Вот несколько рекомендаций:


  • Используйте HTTPS для шифрования трафика
  • Реализуйте аутентификацию пользователей
  • Ограничьте доступ только с определенных IP-адресов
  • Используйте сложные пароли
  • Регулярно обновляйте прошивку Arduino и Ethernet Shield

Правильная настройка безопасности позволит защитить систему от несанкционированного доступа и взлома.

Расширение функционала веб-контроллера Arduino

Базовую систему веб-управления Arduino можно расширять различными способами:

  • Добавление новых датчиков и устройств управления
  • Реализация сценариев автоматизации
  • Интеграция с облачными сервисами
  • Создание мобильного приложения для управления
  • Добавление графиков и визуализации данных

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

Применение веб-контроллера Arduino на практике

Система веб-управления на базе Arduino может найти применение во многих сферах:

  • Умный дом — управление освещением, климатом, безопасностью
  • Промышленная автоматизация — мониторинг и управление оборудованием
  • Сельское хозяйство — автоматизация теплиц, систем полива
  • Образование — обучение основам электроники и программирования
  • Робототехника — удаленное управление роботами

Простота и доступность компонентов делают такие системы отличным выбором для прототипирования и небольших проектов автоматизации.



Статья: ESP32 + FLProg – Создание web интерфейса настройки

В программе FLProg реализована поддержка платы  ESP-WROOM-32  на основе контроллера  ESP32.

Для создания прошивки доступны практически все функциональные блоки и периферийные устройства, применимые для программирования плат ардуино.

Кроме того, при выборе контроллера ESP8266 появляются новые блоки специфичные именно для этого контроллера.

В виду наличия на борту контроллера WiFi так же изменяется и дерево проекта.

Структура дерева проекта

Давайте немного систематизируем дерево проекта (не подробно)

Первая позиция- Управление мультипроектом.

Вторая- в выбранном контроллере также папка мультипроектом.

Третья- Автонастройка Arduino IDE.

Четвертая- в Настройках контроллера: Защита от зависания

Пятая- EEPROM

Шестая- Настройки WiFi модуля

Седьмая- Пользовательские параметры

Восьмая- Тэги

Девятая- Коммуникации

В зависимости от контроллера и настроек, дерево проекта может меняться.

Настройка  WiFi модуля

Настройка клиента WiFi и точки доступа в разделе Настройки WiFi модуля (6 позиция), возможна их одновременная работа.

При открытии подменю Точка доступа и Клиент, открываются настройки (по умолчанию они отключены).

При двойном щелчке мыши на значок «отключён» открываются все настройки Точки доступа. Точка доступа находится в работе.

Имя сети (SSID)- Введём название сети. Например ESP32

Пароль для подключения- можем ввести и тогда при входе придётся ввести сохранённый пароль, если не заполнять пароль, то подключение будет доступно всем.

IP адрес: 0.0.0.0- вводим IP адрес. Например такой:

Все остальные настройки не трогаем (Маска подсети, Сетевой шлюз).

Стандартные параметры- смотрим сохранение параметров сети.

Точка доступа при настройки имеет такой вид:

Настроем Клиента.

При настройке WiFi модуля появляются ещё несколько подразделов.

MiniDNS-  (« Модульный информатор имен в Интернете для DNS » ) — это библиотека DNS для Android и Java SE. Он может анализировать записи ресурсов (A, AAAA, NS, SRV, …), прост в использовании и расширении. MiniDNS стремится быть безопасным, модульным, эффективным и максимально простым. Он также обеспечивает поддержку DNSSEC и DANE и, таким образом, является идеальным преобразователем, если вы хотите приблизить DNSSEC к своему приложению.

Обновление прошивки по WIFI- Технология программирования “по воздуху” (Over the Air, OTA) доступна для микроконтроллеров ESP32 и ESP8266, имеющих поддержку WiFi. Данная технология позволяет обновлять их прошивку или загружать в них новую программу беспроводным способом, без всякого физического контакта с ними. Эта технология особенно полезна в случаях, когда модуль жестко закреплен в каком-нибудь устройстве и подключение кабеля к нему затруднено или физически невозможно. Технология беспроводного программирования OTA широко востребована в различных проектах интернета вещей (IoT) и применяется для удаленного обновления программного обеспечения подключенных к сети интернет устройств.

Как работает программирование “по воздуху” (OTA)

Для того чтобы иметь возможность программирования модуля ESP32 “по воздуху” (Over-the-air) сначала в него необходимо через последовательный порт загрузить специальный скетч, который содержит HTML код программы OTA Web Updater. Когда этот скетч будет загружен в модуль ESP32, он создаст веб-сервер, с помощью которого можно будет выбрать и загрузить новый скетч через веб-браузер.

Web интерфейс

Вот по этому разделу поговорим более подробно.

По умолчанию Web интерфейс отключён. Включаем его.

В создании Web интерфейса главную роль играет Отладчик веб интерфейса. Он находится на панели главного меню- меню Инструменты- Отладчик веб интерфейса.

Настроим параметры по картинке

Давайте просто запустим проект. Не забудем указать наш тип контроллера в Ардуино IDE и указать ком-порт.

После загрузки подключим сеть WIFI в телефоне (она будет под названием ESP32, пароль не затребует). Откроем браузер и укажем в командной строке IPадрес точки доступа 192. 164.4.2

Загрузим страницу. Получим такой результат.

Это показывает, что код уже содержит некие настройки.

Давайте опять откроем Отладчик веб интерфейса.

Видим, что создана Главная страница. Остановим сервер и нажмём- Открыть страницу в браузере

Откроется страница в браузере компьютера. Теперь мы можем видеть, что будет отправляться в сеть.

Щёлкнем на страницу отладчика веб-интерфейса. Откроются настройки.

Общие настройки– Можно настроить название страницы. Адрес после host. Период обновления. Отображение пунктов меню.

Кнопки– вот здесь и видим две кнопки, которые по умолчанию есть на странице.

Создадим новые страницы в отладчике веб-интерфейса

Дадим название и адрес страницы после /host. Закроем отладчик.

Получится такой вид в веб браузере

Добавим виджеты на страницу

Выберем в Главном меню программы Отладчик Веб интерфейса (значок появляется при работе веб интерфейса).

Выберем 2 страницу. На странице Виджеты нажмём команду Добавить параметр.

Выберем Системный параметр WiFi клиент- Состояние.

Заполним Название параметра, тип параметра, Тексты для состояний

Когда заполним все параметры и сохраним, появится созданный нами системный параметр в вкладке Виджеты.

При просмотре картинки в браузере телефона, это будет выглядеть так.

Есть не соответствие текста и другие дефекты.

Давайте исправим эти моменты.

Во первых изменим текст вначале и конце страницы (ESP8266, ESP8266 – Разработано в программе FLProg (https://flprog.ru)).

Начнём компиляцию, при открытии Arduino IDE, увидим наш текст

Изменим текст.

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

Вот что получится в браузере.

Текст с названиями страниц не вмещается.

Изменим название страницы на короткое имя.

На второй странице есть кнопки (сохранения и перезагрузки).

Уберём их. Отожмём галочку- Использовать кнопку.

Кнопки исчезнут на этой странице. Они не используются.

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

Создадим ещё один элемент. В системном параметре в разделе Контроллер выберем Частота процессора.

Заполним параметры

В разделе Виджеты отобразится новый системный параметр.

Получим такой результат.

Давайте добавим ещё один параметр Размер свободной памяти в качестве виджета на 2 страницу.

Настроим название параметра и сохраним.

Новый виджет отразился на главном окне веб отладчика

Добавим HTML код на страницу. Нажмём значок Добавить HTML код. Введём код как на рисунке.

Здесь мы создали контейнер div внутри контейнера создали flex-container. Для чего это создано можем посмотреть на https://metanit.com/web/html5/12.1.php

 Вкратце об этом: благодаря Flexbox проще создавать сложные, комплексные интерфейсы, где мы с легкостью можем переопределять направление и выравнивание элементов, создавать адаптивные табличные представления. Кроме того, Flexbox довольно прост в использовании.

Переместим наш код в начало при помощи кнопки, сделав первым перед другими виджетами.

Создадим ещё HTML код. Сохраним настройки согласно рисунку.

Здесь мы закрываем контейнер div.

Мы создали начало и конец контейнера с классом Flexbox и все остальные виджеты находятся внутри контейнера

У нас должно получится вот такое расположение виджетов.

Давайте создадим такую структуру виджетов

Изучим виджеты.

Изменим HTML код под названием: div 1 начало и style.

Чуть по позже изучим этот код.

Следующий код под названием: div 1 конец. Закроем первый контейнер.

Откроем второй контейнер с названием: div 2 начало

Создадим два виджета

  1. Имя сети
  2. Точка доступа

Ну и наконец закроем второй контейнер

Теперь вернёмся к коду под именем: div 1 начало и style. Тег <style> применяется для определения стилей элементов веб-страницы.

<style>.

            .flex-container {

                column: flex;

            }

            .flex-container {

                text-align:left;

                font-size: 1.1em;

                padding: 1.5em;

                color: white;

            }

            .color1 {background-color: #675BA7;}

            .color2 {background-color: #9BC850;}

        </style>

         <div class=”flex-container color1″>

Первая часть кода

    <style>.

            .flex-container {

                column: flex;

            }

Содержит флекс-контейнер

Flexbox состоит из гибкого контейнера (flex container) и гибких элементов (flex items).

Элемент column: flex; Значение flex определяет то, как flex-контейнер будет представлен на странице. В данном случае column располагает flex-элементы располагаются не рядами (rows), а колонками (columns).

Следующий участок кода

            .flex-container {

                text-align:left;

                font-size: 1.1em;

                padding: 1.5em;

                color: white;

  • Свойство text-align определяет горизонтальное выравнивание текста в пределах элемента (в данном случае выравнивание влево- left.
  • Свойства font-size: 1.1em;

Определяет размер шрифта.

«Ems» (em): «em» — это масштабируемая единица, которая используется в веб-документах. «em» равна текущему font-size, например, если font-size в документе 12pt, 1em равен 12pt. «em» масштабируема по своей природе, так 2em будет равен 24pt, 0.5em будет равна 6pt и т.д. Использование «em» становятся все более популярным в веб-документах из-за масштабируемости и возможности с пользой применять в мобильных устройствах. В данном случае размер больше на 1.1 раз.

  • Свойства padding: 1.5em;

Свойство padding устанавливает внутренние отступы/поля со всех сторон элемента. Область отступов — это пространство между содержанием элемента и его границей. Отрицательные значения не допускаются.

  • Свойства color: white;

Определяет цвет шрифта. В данном виде белый цвет

Следующая часть кода.

            .color1 {background-color: #675BA7;}

            .color2 {background-color: #9BC850;}

        </style>

  • Здесь мы создаём два свойства color1, color2 и назначаем им разные цвета фонов контейнеров.

Ну и </style> закрывает настройки стилей.

  • Здесь мы открываем первый контейнер флекс-контейнер и ссылаемся на  color1″. Все остальные нагрузки в стиле остаются общими для всех контейнеров.

<div class=”flex-container color1″>

Вначале второго контейнера мы ссылаемся уже на color2 с другими настройками фона контейнера

Давайте наконец то изменим заголовок и футер, который отображается на веб странице.

Зайдём в дерево проекта. Выберем Настройки веб интерфейса, двойным щелчком мыши откроем меню настроек.

Здесь можно выполнить много настроек, вернёмся к ним позже.

Ну а пока зайдём на вкладку Порядок блоков. Щёлкнем на Блок заголовка. Вот здесь и изменим текст ESP8266 на ESP32

Изменим текст

Также поступим и с блоком Нижний колонтитул. И также изменим текст ESP8266 – Разработано в программе FLProg (https://flprog.ru) на необходимый нам. Например. Разработано нами.

Зальём проект в контроллер. Откроем в браузере. Посмотрим результат.

Настройки веб интерфейса

Вернёмся к настройкам веб интерфейса.

Пройдёмся по вкладкам настройки веб интерфейса

Общие настройки

Имеются следующие пункты

– Показывать пункт меню для активной страницы

– Показывать сообщение об удачном сохранении изменений. При этом можно ввести текст сообщения.

– Отображение пунктов меню. Вариант либо в виде ссылки либо кнопки.

Доступ

– Есть вариант свободного доступа или через админа.

Кнопки

– Подраздел кнопки. Содержит название стиля, который применяется для конкретной кнопки а таже текст для кнопок.

Порядок блоков

Здесь мы можем настроить использование блока. Порядок расположения блока (ну и собственно отображение в браузере).

А также ссылка на подключенный стиль и текст блока.

Описание стилей

Вот как раз здесь находится описание и все настройки стилей, для элементов, которые созданы по умолчанию (кнопки, блоки и т. д.)

Ниже мы разберём все настройки описания стилей.

Скрипты

Здесь мы можем создать скрипты (на языке javascript).

Скрипт будет выполняться при каком то событии, например при загрузке (OnLoad), сохранении (Save), перезагрузки (Reset) или функцию выхода (Logout).

Специальные адреса

Здесь можно использовать динамический адрес либо статический.

Динамический адрес вы получаете этот адрес каждый раз при подключении к сети и каждый раз он может быть новым.

При выборе статического адреса команды при запросах имеют конкретную команду.

Настройки описания стилей

Вернёмся к вкладке описания стилей. Здесь у нас созданы стили для существующих элементов веб интерфейса.

На закладке «Описание стилей» находится поле ввода непосредственно описания стилей, применяемых для всех страниц настройки.

По умолчанию это поле уже заполнено стилями для создания стандартного интерфейса. Но если есть желание изменить дизайн страниц, то можно их изменить.

Названия функций максимально приближены к функционалу.

Например функция .menu содержит настройки для блока меню.

Если откроем вкладку Порядок блоков и в нём Блок меню то увидим присоединённые стили к этому блоку

Ну или использование стиля в блоке Блок заголовка. Мы уже выше меняли здесь текст.

Найдём и посмотрим стиль header.

Изучим его.

padding: 10 px;

Свойство padding устанавливает внутренние отступы/поля со всех сторон элемента.

left 0px; отступы слева

right 0px; отступы справа

top 0px; отступы от центра

background: #00FFFF; цвет фона

text-align: center;

расположение текста по центру

font-weight: 600;

Устанавливает насыщенность шрифта. Значение устанавливается от 100 до 900 с шагом 100. Сверхсветлое начертание, которое может отобразить браузер, имеет значение 100, а сверхжирное — 900. Нормальное начертание шрифта (которое установлено по умолчанию) эквивалентно 400, стандартный полужирный текст — значению 700.

font-family: ‘Times New Roman’, Times, serif;

CSS-свойство font-family определяет приоритетный список из одного или нескольких названий семейства шрифтов и/или общее имя шрифта для выбранного элемента.

Свойство font-family получает список из одного или более семейства шрифтов, разделённые запятыми. Названия семейства шрифтов, которые содержат пробелы, должны быть взяты в кавычки. Здесь показаны два шрифта ‘Times New Roman’, и Times

Serif

Глифы имеют завершающие штрихи, расширяющиеся или сужающиеся концы, или имеют фактически зазубренные окончания.

font-size: 250%;

Свойство font-size определяет размер шрифта.

Изменим размер font-size на 50%

Получим такой вид. Мы видим, что шрифт уменьшился

Добавление Главной страницы в меню

Откроем Настройка страницы веб интерфейса и добавим к Главной странице её название (например Старт).  Чтобы мы могли вернуться на главную страницу с других страниц. Пункт Главная страница появится в меню.

Создание Пользовательских параметров

Для взаимодействия веб интерфейса с контроллером необходимо создать параметр.

В дереве проекта выберем Настройки контроллера, далее Пользовательские параметры- Добавить параметр.

Добавим параметр. Назовём его Светодиод, Тип- Boolean. Значение по умолчанию- False.

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

Откроем Отладчик веб интерфейса. Перейдём на третью страницу.

Выберем создание виджета (Добавить параметр). Заполним настройки согласно рисунку.

Откроем вкладку Системный параметр. Выберем из выпадающего меню созданный ранее Пользовательский параметр Светодиод.

У нас должны получится настройки как на картинке.

На этой же странице уберём кнопки, которые стояли по умолчанию.

В зоне Тэгов программы FLProg, создадим новый выход. Введём имя и остальные настройки согласно картинке. Мы создали выход на пине которого находится светодиод на плате.

Вытащим на рабочее поле выход.

В разделе Встроенные пользовательские блоки в папке Триггеры выберем ТТ Триггер, также перетащим на рабочее поле.

В разделе Встроенные пользовательские блоки в папке Система выберем Чтение системного параметра, и также перетащим на рабочее поле.

В блоке Чтение системного параметра в выпадающем списке Параметр, найдём созданный пользовательский параметр Светодиод, сохраним выбор.

Соединим все блоки.

Создадим еще один Пользовательский параметр Назовём Светодиод сработка

Выбрать настройки согласно картинки

Создадим новый виджет Цветовой индикатор на третьей странице.

В разделе Встроенные пользовательские блоки в папке Система выберем Запись системного параметра, выберем новый пользовательский параметр Светодиод сработка и также перетащим на рабочее поле.

Соединим блоки

Создадим новый виджет Цветовой индикатор на третьей странице.

И в качестве системного параметра выберем Светодиод сработка

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

А Цветовой индикатор на stLig

Теперь при нажатии на чекбокс изменится значение и цветового индикатора.

Полезная ссылка

Блог Цифрового Кота. Command/com — конфигурация для управления сервером 1С из браузера

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

Настройка пользователей

Для администрирования пользователей, которым предоставляется доступ к командам, существует одноименный справочник с единственным реквизитом “Имя пользователя информационной базы”. Имя пользователя в этом реквизите должно совпадать с именем пользователя в конфигураторе:

Непосредственно в форме элемента справочника также можно флажками выделить команды или группы команд, к которым данному пользователю разрешен доступ:

Создание и настройка команд

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

Каждая команда — это элемент справочника, в котором указываются:

Наименование — произвольная строка$

Идентификатор — уникальная строка, состоящая из латинских букв и цифр;

Тип действия — перечисление со значениями “Код 1С”, “Команда системы” и “Скрипт”;

Выполняемое действие и Путь к скрипту — строки, в которых указывается либо выполняемый по команде код 1С, команда системы или путь к скрипту *. bat.;

Порядок — число, определяющее положение команды на веб-странице: чем меньше число, тем выше располагается кнопка команды;

Активна — булево, если равно “Истина”, то команда будет отображаться на веб-странице.

Назначение практически всех реквизитов понятно. Подробнее можно остановиться на реквизите “Тип действия”. Именно он определяет, какое действие будет выполнено при нажатии пользователем соответствующей кнопки в браузере.

При значении “Код 1С” становится активным поле “Выполняемое действие”, в котором необходимо указать код на языке 1С:Предприятие. Например, можно выполнить процедуру общего модуля. Или сразу несколько команд, как это сделано в тестовой команде “Создать файл на сервере”:

При значении “Команда системы” в поле “Выполняемое действие” указывается соответствующая строка. Например, для остановки службы сервера 1С:Предприятия выполняется следующая команда:

При значении “Скрипт” в поле “Путь к скрипту” указывается расположение запускаемого скрипта:

Группы пользователей

Этот справочник облегчает администрирование доступа пользователей к командам при их большом количестве. Например, в прилагаемой к статье тестовой конфигурации помимо управления сервером 1С настроены также тестовые команды и команды для управления шаговым двигателем робота на базе микроконтроллера Arduino через com-порт. Логично разбить эти команды на соответствующие группы:

Теперь можно создать две группы доступа к командам — “Ардуино” и “Сервер” и на их формах выделить флажками группы команд, к которым разрешен доступ данной группы доступа:

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

Выполнение команд

Для доступа к веб-интерфейсу пользователю необходимо в адресной строке браузера указать путь к http-сервису конфигурации в формате http://server/base/hs/v-can.command/com где server — имя или IP-адрес сервера с базой Command/com, base — имя, под которым Command/com опубликована на веб-сервере. После запуска появится окно авторизации, где пользователь должен ввести свои логин и пароль, указанные в конфигураторе:

При успешной авторизации пользователь увидит дерево команд, к которым ему разрешен доступ:

Веб-контроллер устройства с платой Arduino

— Реклама —

Плата Arduino

также может использоваться для управления электрическими устройствами и приборами через Интернет. Просто нажав несколько кнопок на веб-странице, можно управлять устройствами удаленно. Для этого плата должна быть подключена к Ethernet с помощью экрана Ethernet. Этот проект иллюстрирует эту точку зрения, используя Wiznet W5100 Ethernet Shield для управления серводвигателем и светодиодом.

Схема и рабочая

На рис. 1 показана схема веб-контроллера устройства. Схема построена на плате Arduino UNO (board1), шилде Arduino Ethernet (shield1) и серводвигателе (M1).

Рис. 1: Принципиальная схема веб-контроллера устройства

Серводвигатель

Серводвигатель в основном состоит из двигателя постоянного тока, редуктора, датчика положения (как правило, потенциометра) и управляющей электроники, как показано на рис. 2. Двигатель постоянного тока подключен к редукторному механизму, который обеспечивает обратную связь с датчиком положения. Потенциометр позволяет схеме управления контролировать текущий угол серводвигателя. Если вал находится под правильным углом, двигатель отключается. Если схема обнаружит, что угол неправильный, она будет держать двигатель включенным до тех пор, пока угол не будет правильным. Обычный сервопривод используется для управления угловым движением до 180 градусов.

Угол поворота

— Реклама —

Угол поворота серводвигателя определяется длительностью импульса, подаваемого на провод управления. Сервопривод ожидает импульс каждые 20 миллисекунд (0,02 секунды). Длина импульса будет определять, насколько далеко вращается двигатель. Например, 1,5-миллисекундный импульс заставляет двигатель поворачиваться на 90 градусов (часто называемое нейтральным положением). Если импульс короче 1,5 мс, двигатель поворачивает вал менее чем на 90 градусов. Если импульс длиннее 1,5 мс, вал поворачивается ближе к 180 градусам, как показано на рис. 3.

Рис. 2: Компоненты серводвигателяРис. 3: Положения сервоприводаРис. 4: Плата Ethernet поверх Arduino

Плата Arduino UNO

Arduino — это платформа для прототипирования электроники с открытым исходным кодом, основанная на гибком, простом в использовании аппаратном и программном обеспечении. Он предназначен для художников, дизайнеров, любителей и всех, кто интересуется созданием интерактивных объектов или сред.

Arduino UNO — плата на базе микроконтроллера ATmega328. Он состоит из 14 цифровых входов/выходов, шести аналоговых входов, USB-соединения для программирования встроенного микроконтроллера, разъема питания, разъема ICSP и кнопки сброса. Он работает с кварцевым генератором 16 МГц и содержит все необходимое для поддержки микроконтроллера. Он очень прост в использовании, так как пользователю просто нужно подключить его к компьютеру с помощью USB-кабеля или запитать от адаптера переменного тока в постоянный или от батареи, чтобы начать работу. Микроконтроллер на плате запрограммирован с использованием языка программирования Arduino и среды разработки Arduino.

Плата Arduino Ethernet Shield

Плата Arduino Ethernet Shield позволяет плате Arduino подключаться к Интернету. Он основан на чипе Wiznet W5100 Ethernet, который обеспечивает сетевой (IP) стек, поддерживающий как TCP, так и UDP. Он поддерживает до четырех одновременных подключений к сокету. Используйте библиотеку Ethernet для написания эскизов, которые подключаются к Интернету с помощью экрана.

Экран Ethernet соединяется с платой Arduino с помощью разъемов с длинными выводами (см. рис. 4). Это сохраняет расположение штифтов нетронутым и позволяет при необходимости установить сверху еще один экран.

Экран Ethernet имеет стандартное соединение RJ-45 со встроенным линейным трансформатором и включенной функцией Power over Ethernet (PoE).

На борту имеется слот для карт памяти microSD, который можно использовать для хранения файлов для передачи по сети. Он совместим с Arduino UNO и Arduino Mega (с использованием библиотеки Ethernet). Встроенный кард-ридер microSD доступен через библиотеку SD. При работе с этой библиотекой нельзя использовать цифровой пин 4 платы Arduino.

Экран также включает в себя контроллер сброса, чтобы обеспечить правильный сброс модуля Ethernet W5100 при включении питания. Предыдущие версии щита несовместимы с платой Mega и требуют ручного сброса после включения питания.

Arduino обменивается данными как с W5100, так и с SD-картой, используя шину SPI (через заголовок ICSP). Они подключены к цифровым контактам 10, 11, 12 и 13 на UNO и контактам 50, 51 и 52 на Mega. На обеих платах контакт 10 (выбор ведомого устройства или контакт SS) используется для выбора W5100, а контакт 4 — для SD-карты.

Рис. 5: Печатная плата для веб-контроллера устройстваРис. 6: Схема компонентов для печатной платы

На Mega аппаратный контакт SS (контакт 53) не используется для выбора W5100 или SD-карты, но его необходимо оставить в качестве выхода, иначе интерфейс SPI не будет работать.

Обратите внимание, что, поскольку W5100 и SD-карта совместно используют шину SPI, одновременно может быть активна только одна из них. Если вы используете оба периферийных устройства в своей программе, об этом должны позаботиться соответствующие библиотеки. Однако, если вы не используете одно из периферийных устройств в своей программе, вам нужно будет явно отменить его выбор. Чтобы сделать это с SD-картой, установите контакт 4 как выход и напишите на него «высокий». Для W5100 установите цифровой контакт 10 как высокий выход.

Кнопка сброса на шилде сбрасывает как W5100, так и плату Arduino.

Цифровые контакты 4 и 7 экрана (Shield1) подключены к LED1 и контакту управления серводвигателя (M1) соответственно.

Программное обеспечение

Программное обеспечение для этого проекта написано на языке программирования Arduino. Arduino UNO программируется с помощью программного обеспечения Arduino IDE. ATmega328 на Arduino UNO поставляется с загрузчиком, который позволяет загружать в него новый код без использования внешнего аппаратного программатора. Обмен данными осуществляется по протоколу STK500. Вы также можете обойти загрузчик и запрограммировать микроконтроллер через заголовок ICSP (внутрисхемное последовательное программирование), но использование программирования загрузчика выполняется быстро и легко.

Выберите нужную плату в меню «Инструменты -> Плата» в Arduino IDE и запишите программу (скетч) через стандартный USB-порт компьютера.

Сборка и тестирование

Односторонняя печатная плата для веб-контроллера устройства с использованием Arduino показана на рис. 5, а расположение компонентов — на рис. 6. Соберите компоненты на рекомендованной печатной плате, чтобы свести к минимуму ошибки сборки. Тщательно соберите компоненты и перепроверьте на наличие любой пропущенной ошибки.

Чтобы проверить работу проекта, выполните следующие действия:

  1. Подсоедините сервопривод, как показано на принципиальной схеме (рис. 1)
  2. Включите плату Arduino через адаптер питания
  3. Подсоедините экран Ethernet к верхней части платы Arduino
  4. Подключите экран Ethernet с помощью кабеля LAN через маршрутизатор
  5. Пропингуйте IP-адрес 192.168.0.160 или измените IP-адрес в соответствии с настройками вашего маршрутизатора.

Вам необходимо изменить IP-адрес в исходном коде, перекомпилировать и записать в микроконтроллер

Теперь вы можете получить доступ к сервоприводу (M1) и LED1, используя этот IP-адрес в своем браузере. Если соединение установлено успешно, в браузере вы увидите следующие элементы управления пользовательского интерфейса:

  1. Включить светодиод, выключить светодиод
  2. Повернуть влево, повернуть вправо

Вы можете включать/выключать LED1, а также управлять серводвигателем M1, нажав соответствующую кнопку.

Чтобы проверить правильность функционирования цепи, проверьте правильность питания 5 В для цепи на TP1 по отношению к TP0.

Загрузите PDF-файлы с компоновкой печатной платы и компонентов для веб-контроллера устройства:
нажмите здесь
Загрузите исходный код:
нажмите здесь

Вы также можете ознакомиться с проектами DIY Arduino.


Автор — студент последнего курса бакалавриата технических наук (ECE) Технологического института Ансал, Гургаон

Этот проект был впервые опубликован 7 августа 2015 г. и обновлен 5 февраля 2020 г.

Включить экспериментальную сеть возможности платформы | Урок по управлению на основе браузера Arduino JavaScript

Включить экспериментальные функции веб-платформы | Урок по управлению Arduino через браузер на основе JavaScript | Разряд дракона

Загрузка. ..

Управление на основе браузера Arduino JavaScript

0.00 Звезда (0)

1 Час

12 Урок

Описание

>>> Этот курс познакомит вас с пошаговым руководством по созданию собственного детектора социальной дистанции Arduino и управления браузером. <<<

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

Я научу вас, как написать код JavaScript и использовать свой собственный браузер, который у вас уже есть, для отправки команд на плату Arduino и для получения команд с платы Arduino.

Так что это будет двусторонняя связь и мы не будем использовать ни модуль Wi-Fi, ни другие модули. Мы просто будем использовать плату Arduino, USB-кабель и наш браузер с несколькими строками кода.

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

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

В прошлом подключение Arduino к браузеру было сложной задачей. Вам нужно было создать веб-сокеты и сервер на устройстве. Но теперь с этим последовательным API, который мы представим в этом курсе, вы можете подключиться к любому устройству на базе Arduino из браузера одним нажатием кнопки. При настройке не требуется дополнительная установка, и это быстрый и простой метод.

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

Система должна работать с любым Arduino, имеющим последовательное соединение с компьютером.

 

Чему вы научитесь в этом курсе:

  • Как использование JavaScript с Arduino даст вам сверхспособности

  • Как связать Arduino с вашим компьютером/ноутбуком с помощью кода JavaScript

  • Почему вы должны использовать JavaScript и браузерные технологии для управления Arduino

  • Процесс кодирования

    Arduino.

  • Загрузите код Arduino на плату, чтобы подготовить ее к приему и отправке команды в веб-браузер нашего компьютера.

  • Код JavaScript для управления Arduino.

  • Интерфейс Arduino с вашим устройством, которое является ноутбуком или компьютером, и соединяет простую схему

  • Примеры практического применения.

Вам не нужен опыт работы с JavaScript.

Мы объясним линию звонков, которую вам нужно использовать, и вы сможете повторить то, что мы делаем, и сделать то же самое самостоятельно.

Много информации ждет вас в этом курсе, присоединяйтесь сейчас и начните создавать свои собственные.

Требования

Базовые знания программирования

Базовые знания Arduino

Для кого предназначен этот курс

Студенты-инженеры — электроника, электротехника и информатика

Учащиеся средней школы естественных наук

Электронные гики, Хобб

Специалисты по встраиваемым системам

Знатоки Arduino

Интернет вещей и встроенные системы

Всем, кто заинтересован в подключении Arduino к веб-странице без модуля WiFi или каких-либо дополнительных схем.

Любой, кто заинтересован в управлении Arduino через интерфейс веб-страницы и отображении входящих данных + возможность отправки команды в реальном времени на Arduino через ту же веб-страницу

Чему вы будете учиться

Узнайте, как превратить Arduino в контроллер для ваших веб-страниц, написанных на HTML, JavaScript.

Перейдите на следующий уровень в подключении Arduino к вашему ноутбуку/ПК и раскройте мощь JavaScript и HTML для управления им.

Создайте свою собственную веб-страницу, управляемую Arduino

Создайте свой собственный интерактивный дисплей Arduino, который слушает Arduino и отправляет команды на плату, используя современный графический интерфейс веб-страницы.

Введение и начало начала

2 Уроки

0H 10M

Требования к аппаратному и программному обеспечению

3 Уроки

0H 11M

Редактор JavaScript

1 Уровень

CROME Browser.

1 урок

Кодирование Arduino

1 урок

Кодирование проекта JavaScript

3 урока

0H 47M

Инструктор по драконьему разряду

Я всегда старался жить настоящим и в полной мере. Некоторые из вещей, которые я люблю делать в свободное время, включают футбол, езду на велосипеде, путешествия в новые места, просмотр спортивных состязаний (большой футбольный фанат здесь!), и совместное питание с друзьями и семьей. В 2012 году я получил степень бакалавра инженерной мехатроники в Университете Ажар — одном из лучших учебных заведений страны. Находясь там, мне посчастливилось сделать проект Embedded Systems с использованием Arduino, микроконтроллера PIC и других модулей.

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

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