Конструктор "для взрослых" - Ардуино, очень функциональный и может использоваться практически для любых задач. Если у вас есть своя задумка, но такого устройства в продаже нет, не беда – его можно собрать своими руками на базе Arduino.
Очень часто пользователи сталкиваются с проблемой подключения своего "девайса" к сети Интернет. Интернет может использоваться для:
1.Получения каких-либо данных с устройства (статистика работы, информация о состоянии или статусе, координаты местоположения, температура и т.п.).
2.Управления устройством (переключение состояния, запуск определенных процессов, управление сторонними устройствами, подключенными к Ардуино и т.п.).
3.Для двустороннего обмена данными (сочетает в себе свойства первого и второго подходов).
Методы подключения
Интернет – это общее понятие, характеризующее сеть сетей. Под "Интернетом" часто подразумевают непосредственно доступ к децентрализованной глобальной сети. При этом составляющие ее локальные сети могут использовать различные технологии – проводные и беспроводные, скоростные и не очень.
К Интернету можно подключить любое устройство, хоть чайник, главное, чтобы он обменивался данными с другими устройствами в правильном формате.
На самом деле, устройство подключается к локальной сети, которая в свою очередь имеет выход к другим сетям, и так до тех пор, пока не будет достигнута нужная конечная точка (сервер, компьютер или другое устройство).
Таким образом, способ подключения зависит от технологии объединения первой локальной сети. В быту наиболее часто используются:
- Wi-Fi;
- Ethernet;
- GPRS (и аналоги 3G, 4G и т.д.);
- ADSL;
- И другие.
Соответственно для того, чтобы подключить 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-сервера, где можно простым переключением указателей зажечь или погасить подключенные светодиоды.
Рис. 3. Web-страница Arduino-сервера
Ардуино и примеры подключения его к Интернет здесь и здесь
Автор: RadioRadar