на главную
Карта сайта
English version
Вы читаете:

Ардуино и Интернет

Аудио & Видео
6 лет назад

Подключение Ардуино к Интернету

1

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

Очень часто пользователи сталкиваются с проблемой подключения своего "девайса" к сети Интернет. Интернет может использоваться для:

1.Получения каких-либо данных с устройства (статистика работы, информация о состоянии или статусе, координаты местоположения, температура и т.п.).

2.Управления устройством (переключение состояния, запуск определенных процессов, управление сторонними устройствами, подключенными к Ардуино и т.п.).

3.Для двустороннего обмена данными (сочетает в себе свойства первого и второго подходов).

 

Методы подключения

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

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

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

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

  • Wi-Fi;
  • Ethernet;
  • GPRS (и аналоги 3G, 4G и т.д.);
  • ADSL;
  • И другие.

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

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

 

Общая схема подключения

В общем случае схема обмена данными с Arduino через Интернет выглядит следующим образом.

Схема обмена данными с Arduino через Интернет

Рис. 1. Схема обмена данными с Arduino через Интернет

 

К Arduino подключается внешний шилд (Wi-Fi, GPRS или Ethernet), который посредством протокола http (или TCP/IP) обменивается данными с web-сервером (необходим выделенный ПК или аренда у хостера). На сервере запускается скрипт (функционал и код зависит от задач). С конечного устройства (планшета, ПК, ноутбука, смартфона) пользователь подключается уже непосредственно к серверу и видит необходимые данные, может отправлять свои.

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

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

 

Возникающие проблемы

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

1.Нагрузка на сервер (особенно актуально для бесплатных тарифов хостинга, которые используются для экономии бюджета);

2.Объем исходящего трафика (например, при использовании мобильного интернета может взиматься плата согласно тарифа);

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

Решить проблемы можно только за счет уменьшения числа запросов на обмен данными (например, 1 раз в 10 минут или реже).

 

Пример с GPS-трекером

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

1.Плата Arduino (использовался вариант UNO);

2.Шилд GSM/GPRS (был взят SIM900);

3.Модуль GPS (VK16E).

Описания и возможности плат можно найти на официальных сайтах производителей.

Для работы с модулем V.KEL 16 понадобится библиотека TinyGPS. Сама плата подключается к UNO на 2 и 3 пины (программный UART).

GPRS shield цепляется на 7 и 8 контакты.

За обработку принимаемых данных на сервере отвечает скрипт gps_tracer1.php (см. во вложении). Сами данные передаются в GET-запросе и записываются в базу данных (БД).

WEB-интерфейс отображает метки на Я.Картах с указанием времени.

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

После установки серверного скрипта, необходимо прописать свои данные с логином и паролем пользователя БД (файл my.php). В скетче необходимо изменить свое доменное имя.

Сервер должен иметь поддержку mySQL и php.

 

Самодостаточный сервер на шилде с Ethernet

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

При использовании Ethernet shield можно подключиться к Интернету через проводной интерфейс RG-45 (который расположен на шилде).

Простой пример самодостаточного сервера на Arduino UNO R3 с шилдом W5100.

К основной плате (Ардуино) подключаем два светодиода (через ограничительные резисторы номиналом 220 Ом) на контакты 7 и 8. Подключаем W5100.

Подключение к Интернету

Рис. 2. Подключение к Интернету

 

Прошиваем скетч из вложений (primer_ethernet.zip).

Теперь при открытии указанного в листинге IP-адреса (присваивается вашему устройству при прошивке) вы попадаете на web-страницу Arduino-сервера, где можно простым переключением указателей зажечь или погасить подключенные светодиоды.

Web-страница Arduino-сервера

Рис. 3. Web-страница Arduino-сервера

 

Ардуино и примеры подключения его к Интернет здесь и здесь

Автор: RadioRadar

Мнения читателей
  • Рашит/08.07.2021 - 19:41

    Про хранение web-интерфейса на ардуинке с шилдом понятно. Т.е. кнопки для вкл/выкл хранятся на самой плате. А как сделать запрос извне, например, на хостинге есть страница page.php, где прописан примерно такой же интерфейс что и на ардуинке. Только при нажатии на кнопку какая команда должна быть отправлена на плату, чтобы сработало реле?