Как сделать управление ардуино через интернет

Обновлено: 08.07.2024

В этой статье описан процесс "общения" с Arduino через интернет. Команды посылаются при помощи ajax запросов, данные запросы принемает python скрипт которые передает их через последовательное соединение serial port в плату arduino. Конечно можно приобрести готовую плату Ethernet для arduino подключить кабель и залить готовую программу. Но можно сделать все по другому.

И для этого нам понадобится:

Код управления на Java Script

В этом коде единственное нужно поменять имя порта, поставить то на которм у вас сидит arduino. Узнать где у вас Arduino можно посмотев в диспетчере устройств windows. Это имя скриптом передается интрепритатору phyton который подключается к arduino.

К примеру елси мы вызвали нашу функций Aruduino() с параметрами "123" то создастся запрос вида "index.html?с=123&p=COM5" который примент python скрипт. Что он из себя представляет.

Через последовательное соединение мы будет передовать данные следующего 1234567 где:

- данные пина(если нужны);

  • комманда 112-выставит на 12 -м пине значение HIGH;
  • комманда 012-выставит на 12 -м пине значение LOW;
  • комманда 208100-установит 8 пин как сервопривои и передаст значение 100 (ШИМ модуляция);
  • комманда 310 - установит 10-й пин на ввод и считает с него данные 1 или 0.

Код прогаммы можно дописывать самому.

Таки образом,используя интерпритатор и ajax можно обмениваться данными с arduino главное чтобы был интернет, причем все равно какой интренет wifi, проводной или мобильный. Для доступа в Интернет через сети мобильных провайдеров можно к примеру использовать 3G маршрутизатор.


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

Одним из главных элементов системы умный дом в рассматриваемом варианте является Arduino. Что это такое? Как он работает? Какие функции выполняет? Все подробно мы рассмотрим в этой статье.

Что такое Arduino?

Ардуино (Arduino) — специальный инструмент, позволяющий проектировать электронные устройства, имеющие более тесное взаимодействие с физической средой в сравнении с теми же ПК, фактически не выходящими за пределы виртуальной реальности.

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


В состав Arduino входит микроконтроллер, представляющий собой собранный на одной схеме микропроцессор. Его особенность — способность выполнять простые задачи. В зависимости от модели устройство Ардуино может комплектоваться микроконтроллерами различных типов.

Существует несколько моделей плат, самые распространённые из них – UNO, Mega 2560 R3.

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

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

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


Устройства на Ардуино могут работать в комплексе с ПО на компьютере или самостоятельно.

Что касается плат, их можно собрать своими руками или же приобрести готовое изделие. Программирование Arduino производится на языке Wiring.

ЧИТАЙТЕ ПО ТЕМЕ : Умный дом Xiaomi Smart Home, обзор, комплектация, подключение и настройка своими руками, сценарии.

Чем управляет Arduino?

Благодаря большому количеству выводов на печатной плате, к Ардуино удается подключить множество различных устройств, а именно:


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


Принцип работы системы

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

Главную функцию выполняет центральный датчик, который можно приобрести или собрать самостоятельно. Разъемы на платах являются стандартными, что значительно упрощает выбор комплектующих.


Питание

Питание Arduino производится через USB разъем или от внешнего питающего устройства. Источник напряжения определяется в автоматическом режиме.

Провода от АКБ подключаются к различным выводам питающего разъема — Vin и Gnd.

Для нормальной работы платформа нуждается в напряжении от 6 до 20 Вольт. Если параметр падает ниже 7 вольт, на выводе 5V может оказаться меньшее напряжение и появляется риск сбоя.

Если подавать 12 В, возможен перегрев регулятора напряжения и повреждения платы. По этой причине оптимальным уровнем является питание с помощью 7 — 12 В.


В отличие от прошлых типов плат, Arduino Mega 2560 работает без применения USB-микроконтроллера типа FTDI. Для обеспечения обмена информацией по USB применяется запрограммированный под конвертер USB-to-serial конвертер.

На Ардуино предусмотрены следующие питающие выводы:

  • 5V — используется для подачи напряжения на микроконтроллер, а также другие элементы печатной платы. Источник питания является регулируемым. Напряжение подается через USB-разъем или от вывода VIN, а также от иного источника питания 5 Вольт с возможностью регулирования.
  • VIN — применяется для подачи напряжения с внешнего источника. Вывод необходим, когда нет возможности подать напряжение через USB-разъем или другой внешний источник. При подаче напряжения на 2,1-миллиметровй разъем применяется этот вход.
  • 3V3 — вывод, напряжение на котором является следствием работы самой микросхемы FTDI. Предельный уровень потребляемого тока для этого элемента составляет 50 мА.
  • GND — заземляющие выводы.


Принципиальную схему платы в pdf формате можно посмотреть ЗДЕСЬ.

Связь

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

Модель ATmega 2560 отличается наличием 4 портов, через которые можно передавать данные для TTL и UART. Специальная микросхема ATmega 8U2 на плате передает интерфейс (один из них) через USB-разъем. В свою очередь, программы на ПК получают виртуальный COM.


Здесь имеются нюансы, которые зависят от типа операционной системы:

  • Если на ПК установлен Linux, распознавание происходит в автоматическом режиме.
  • Если стоит Windows, потребуется дополнительный файл .inf.

С помощью утилиты мониторинга обеспечивается отправление и получение информации в текстовом формате после подключения к системе.

Мигание светодиодов TX и RX свидетельствует о передаче данных. Для последовательной отправки информации применяется специальная библиотека Software Serial.

К особенностям ATmega 2560 стоит отнести наличие интерфейсов SPI и I2C. Кроме того, в состав Ардуино входит библиотека Wire.

Разработка проекта

Какие проекты можно создавать на Arduino?

Ардуино позволяет создавать множество уникальных проектов. Вот лишь некоторые из них:


Как подключить проходной выключатель: одноклавишный, двухклавишный, как обычный, схемы, критерии выбора

Составление проекта для умного дома

Рассмотрим ситуацию, когда необходимо сделать автоматику для дома с одной комнатой.

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

При составлении проекта стоит учесть следующее:

  • КРЫЛЬЦО . Включение света производится в двух случая — приближение хозяина к дому в темное время суток и открытие дверей (когда человек выходит из здания).
  • САНУЗЕЛ . В бойлере предусмотрен выключатель питания, который при достижении определенной температуры выключается. Управление бойлером производится в зависимости от наличия соответствующей автоматики. При входе в помещение должна срабатывать вытяжка, и загорается свет.
  • ПРИХОЖАЯ . Здесь требуется включение света при наступлении темноты (автоматическое), а также система обнаружения движения. Ночью включается лампочка небольшой мощности, что исключает дискомфорт для других жильцов дома.
  • КОМНАТА . Включение света производится вручную, но при необходимости и наличии датчика движения эта манипуляция может происходить автоматически.
  • КУХНЯ . Включение и отключение света на кухне осуществляется в ручном режиме. Допускается автоматическое отключение в случае продолжительного отсутствия перемещений по комнате. Если человек начинает готовить пищу, активируется вытяжка.

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

После появления людей в здании этот параметр поднимается до прежнего значения. Рекуперация воздуха осуществляется в случае, когда система обнаружила присутствие владельца. Продолжительность процесса — не более 10 минут в час.


Подбираем комплектацию под проект на примере Arduino Mega 2560 R3

Что входит в комплект поставки?

Arduino Mega 2560

Необходимы и дополнительные инструменты — отвертки, паяльники и прочее.

Учтите, что покупать наборы для монтажа системы стоит в сертифицированных пунктах. Это объясняется тем, что при реализации проекта применяется электричество, а использование подделки может привести к снижению уровня безопасности.

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


Прошивается плата с помощью специального софта, предназначенного для различных операционных систем, в том числе и кабеля USB. При этом в программаторах нет необходимости.

Что касается ПО, которое применяется в Ардуино, оно написано на языке Си. На число байт имеются определенные ограничения, но текущей памяти достаточно для реализации поставленной задачи.


Что такое GSM розетка для умного дома, устройство, принцип работы, инструкция по подключению, как сделать своими руками

Начало работы

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

Этапы

  • Инсталляция программного кода;
  • Конфигурация приложения под применяемое устройство;
  • Переадресация портов (для роутера);
  • Проведение тестов;
  • Внесение правок и так далее.

В Сети имеется весь необходимый софт на применяемое оборудование — его достаточно скачать с официального сайта и установить (ссылку смотрите выше).

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

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

Чтобы начать работать с Ардуино в Windows, сделайте следующие шаги:

Работа с роутером

После требуется присвоить адресу доменное имя и перейти к процессу тестирования проекта. Учтите, что для такой системы запрещено применение открытого IP-адреса, ведь в этом случае высок риск взлома через Сеть.


Расширение возможности на Ардуино

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


Для реализации задуманного подойдет ноутбук, обычный ПК или Raspberry Pi. Применение такой системы позволяет увеличить ее возможности. Так, если на плате Ардуино имеется небольшой объем памяти, на сервере такие ограничения отсутствуют. Программа пишется таким образом, чтобы обеспечить полное управление платформой.

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

Программа может запомнить время, когда владелец ложится отдыхать и отключать нагрев воды. Таких нюансов, которые при необходимости вносятся в программу, множество. Именно наличие внешнего ПК дает большие возможности контроллеру на Ардуино.

Общение с Arduino

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


Как можно управлять?

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



Реле контроля фаз и напряжения: устройство, принцип работы, схемы подключения, характеристики, обзор моделей

В итоге, что мы получим?

Сегодня Arduino востребовано среди людей, которые ничего не знают о программировании.

Причиной этому является простой интерфейс, а также ряд преимуществ — простой язык программирования, возможность создания своего алгоритма, благодаря открытому исходному коду, а также легкость переноса программ с помощью USB-кабеля. Необходимый для Ардуино софт имеется в Интернете, поэтому тут проблем нет.

Это и есть основные преимущества системы.

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

ethernet shield w5100 управление нагрузками

Как заметили, наша страница в браузере теперь имеет другое название. Ведь это уже не совсем Arduino WEB-метеостанция. Но вы можете сами это изменить. Показания датчиков MQ-2 и DHT-11 осталось не тронутым. А уже ниже расположились наши кнопки управления четырех реле (у меня не было реле, вместо этого установил пару светодиодов).

Но просто сделать обычные кнопки не интересно. По этому сделали активные кнопки "Хамелеоны" которые меняют свой цвет в зависимости от состояния пина. Если кнопка зеленая то пин активен, если красный - не активен. Обновляется страница как мы помним из предыдущих частей данного проекта, один раз в секунду. Так что не стоит паниковать если кнопка у вас изменит цвет не сразу.

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

За их дизайн будут отвечать пару строк в файле my.css. Стиль кнопки в отключенном состоянии будет такой:

.button_disabled background: rgb(212, 75, 56);/* фон кнопки */
border: none; /* не показывать границу */
border-radius:5px; /* закругление углов */
cursor: pointer /* ставим другой курсор */
>

.button_disabled:hover /* при наведении курсора мышки */
.button_disabled:active /* при нажатии */

Стиль кнопки во включенном состоянии будет немного другой:

.button_enabled background: rgb(17,237,105); /* фон кнопки */
border: none; /* не показывать границу */
border-radius:5px; /* закругление углов */
cursor: pointer /* ставим другой курсор */
>

.button_enabled:hover < background: rgb(94,242,153); >/* при наведении курсора мышки */
.button_enabled:active < background: rgb(84,184,124); >/* при нажатии */

Тогда файл стилей my.css нашей страницы будет иметь следующее содержание:

h2 font-family: Arial;
font-weight: normal;
margin: 20px;
text-align: center
>

.button_disabled background: rgb(212, 75, 56);/* фон кнопки */
border: none; /* не показывать границу */
border-radius:5px; /* закругление углов */
cursor: pointer /* ставим другой курсор */
>

.button_disabled:hover /* при наведении курсора мышки */
.button_disabled:active /* при нажатии */

.button_enabled background: rgb(17,237,105); /* фон кнопки */
border: none; /* не показывать границу */
border-radius:5px; /* закругление углов */
cursor: pointer /* ставим другой курсор */
>

.button_enabled:hover < background: rgb(94,242,153); >/* при наведении курсора мышки */
.button_enabled:active < background: rgb(84,184,124); >/* при нажатии */

html-код кнопок выглядит так:

Реле №1
Реле №2
Реле №3
Реле №4

Файл index.htm со всеми изменениями теперь такой:

Не забывайте, что файл необходимо сохранить в кодировке "utf-8",
Настало время нарисовать окончательную схему нашего проекта. (Извините за пэинт, нарисуете лучше, буду рад выложить=))

arduino управление нагрзуками

Пояснение по схеме. Подключаем это все в плату Ethernet Shield W5100. Он у нас здесь вроде "ломтика сыра", а кусочком хлеба Arduino UNO. Датчик температуры и влажности DHT-11 подключен к цифровому входу 7. Датчик газов и дыма к аналоговому входу А0. Реле управления нагрузками (в моем случае светодиоды) подключаются к цифровым выходам 2, 3, 5, 6.
Датчики как вы понимаете можно цеплять любые. Просто я подключил то, что было под рукой.

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

EthernetServer server(80);
bool pin1;
bool pin2;
bool pin3;
bool pin4;
void setup() pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);

Подружить Arduino с компьютером очень просто. Данные передаются через виртуальный порт RS-232(COM).

Итак переходим к действиям. Три светодиода будут управляться с клавиатуры, нажатием клавиш влево и вправо. Зажигаем первый светодиод и нажимаем клавишу влево, горящий светодиод тухнет, а слева от него загорается. Когда позиция горящего светодиода крайняя, нажатие в ту же сторону приведет к переходу на светодиод с противоположной стороны.


На компьютере управляющая программа будет отображать позицию горящего светодиода.

Схема со светодиодами, крайне проста.
LED1-3 светодиоды подключенные к ШИМ-выводам. ШИМ потребуются для фэйд-эффекта.
R1 двухсотомный резистор. Для ограничения тока проходящего через светодиод, иначе диод можно спалить.

Небольшая программа для Arduino. (Скачиваем)

Блог о компьютерах и компьютерной технике, Москва, Владимир Лукьянов, Arduino

Теперь нужна программа на компьютере, которая будет посылать необходимые данные в COM-порт и отображать данные на экран. Processing хорошо подойдет.
IDE Arduino основана на processing, поэтому они очень похожи как внешне, так и по синтаксису.

Тоже довольно простая программа на Processing. (Скачиваем)

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

Читайте также: