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

Чтобы расставить нужные акценты на основных пунктах своей реализации, я выстроил содержание этой статьи в стиле вопросов и ответов. Сам вопрос придумал — сам на него ответил (такой вот псевдодиалог).

Сколько времени займет создание простейшего сайта и рабочего скетча для ардуины?
Зависит от задачи, если нужно просто удалённо поморгать лампочкой, то и за 15 минут можно управиться (при условии, что инструмент уже изучен).
… знаю, знаю, есть инструменты, которые сделают эту работу быстрей, но то, что вы получите, наверняка будет уже готовым приложением (например, для андроида). Да, для кого-то готовое андроид приложение это здорово. Но всё же личный сайт — это личный сайт, ведь вы сами определяете его внешний вид и содержимое. Он будет вашим детищем, вашей авторской работой, а для кого-то, и предметом гордости (тьфу-тьфу, со мной такого не случится).

Из каких элементов будет состоять вся рабочая система?
1) Запущенная служебная программа посредника, через которую будет работать ардуина.
2) Ардуина, которая будет подключаться к этой служебной программе.
3) Самый простейший веб-сервер для размещения файлов.

Как выглядит маршрут обмена данными?
Веб-страница >> посредник >> ардуина.
Ардуина >> посредник >> веб-страница.

Зачем нам понадобился «кузнец» (посредник в виде служебной программы)?
  • Ардуина работает как клиент, поэтому нет проблемы с сетевым IP адресом.
  • DOS атака на ардуину не возможна (сетевой адрес никому не известен).
  • Ардуине не нужно отдавать содержимое веб-страниц. И это хорошо, ведь картинки могут быть очень большими, а сетевой канал очень узким, как в случае с GPRS.
  • Ардуине не нужно дублировать данные для всех потребителей, ведь данные распараллеливаются в самом посреднике.
  • Передача данных ведётся не через HTTP запросы, а через бинарный протокол.

Безопасно ли управлять ардуиной через интернет?
Да, безопасно, все данные шифруются. Хотя узким местом остаётся сам доступ к содержимому веб-сайта, но это уже решается безопасным соединением HTTPS.

Как получить все необходимые программные компоненты?
1) На моём сайте создайте конфигурацию вашей системы. Как это сделать смотрите предыдущую статью на хабре.
2) Скачайте архив с исходниками для ардуины.
3) Скачайте архив с файлами для вашего веб-сайта (эти файлы вы также можете встроить и в уже существующий сайт).
4) Скачайте архив со служебной программой посредника («кузнецом»).

Как запустить служебную программу посредника?
1) Запустите эту программу на Windows машине, к которой ардуина сможет подсоединиться по IP адресу.
2) Введите свой логин, нажмите Enter
3) Введите свой пароль, нажмите Enter

Как запустить сайт?
Для скорости, можете воспользоваться хостингом «bitballoon.com» (авторизация через GitHab). Перетащив мышкой архив с вашим сайтом на картинку «Drag & drop a new site» на странице браузера, вы сразу же получите ссылку на ваш рабочий сайт. Перейдите по этой ссылке на ваш созданный сайт, введите свои логин/пароль, и убедитесь что страница связалась со служебной программой посредника. При этом сама ардуина обнаружена не будет, что не удивительно, ведь ещё не всё сделано.

Как запрограммировать ардуину?
Распакуйте архив с исходниками, подключите библиотеку и откройте проект. В скетче исправьте адрес (hostname) по умолчанию на IP адрес вашего посредника (если этот адрес не изменить, то ардуина будет работать через облачный сервис).
Откомпилируйте и загрузите программу в устройство. После подключения к сети, ардуина свяжется с уже запущенной программой посредника. Зайдите на сайт и убедитесь, что появилась связь с вашей ардуиной (ага, посредник делает свою работу).
Теперь сделайте то, ради чего всё затевалось. Заполните в скетче все обработчики сигналов необходимой вам логикой (надеюсь вы умеете программировать?), и вновь загрузите программу в устройство.

Ну вот, теперь у вас есть собственный сайт, который управляет вашей ардуиной.

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

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

Можно ли через один сайт управлять несколькими устройствами?
Можно.

Может ли сайт хранить несколько панелей управления для ардуино?
Может.

Что делать, если нет возможности/желания использовать служебную программу посредника?
Используйте облачного «кузнеца».

P.S.
И всё же, почему бы не разместить свой веб-сайт непосредственно в саму ардуину?
Отчасти я уже ответил на этот вопрос. Но в целом, конечно же, вы правы. Многие так и делают, сами рисуют интерфейсы, сами придумывают протоколы обмена данными. И этот путь для настоящих самоделкиных… а кто-то, тяп-ляп и в продакшн.
:)

Комментарии (3)


  1. Kit123
    08.05.2015 19:51

    А у меня в хроме не работает редактор. Предлагает установить Silverlight. Хотя он уже установлен. Опера вообще по пол минуты висит на каждой вкладке.


    1. valeraba Автор
      08.05.2015 19:56

      да это так, здесь лекарство habrahabr.ru/post/255939


    1. valeraba Автор
      08.05.2015 20:05

      на счёт оперы… по идее страницы должны кэшироваться, видно я что-то не понимаю… то кэшируются — то не кэшируются