
- •Московский государственный технический университет имени н.Э. Баумана
- •Введение.
- •2. Требования к системе:
- •Уровень освещенности
- •Энергосбережение.
- •Сравнение.
- •Расчет выгоды.
- •Варианты использования системы.
- •Информационно-управляющая система
- •Программная часть
- •Написание приложения для Android
- •14. Список используемой литературы
-
Программная часть
На веб-сервере при помощи MySql Server создаем БД с таблицей led. Таблица led содержит 2 поля – id и status. Она содержит одну запись с актуальным состоянием светодиода.
Далее пишется скрипт led.php, он вызывается с телефона и передает информацию о состоянии светодиода для базы данных.
Листинг скрипта находится в приложении.
Идея состоит в том, что программа-обработчик получает данные с устройств, подключенных к Arduino, и отправляет их в таблицы базы данных проекта. Эту информацию в дальнейшем можно просмотреть из любого места с помощью Android-устройства. Программа, которая может быть написана на том же Processing или при помощи SDK for Eclipse, контактирует с сервером и интерпретирует в удобный для пользователя графический вид.
Итак, нам нужен домашний сервер. На нем будет постоянно работать программа (можно даже назвать ее – демон), посылающая запросы к БД и при изменении находящейся там информации, посылающая на COM-порт с ардуино соответствующую команду. Программа написана на языке processing.
Листинг программы находится в приложении.
Затем необходимо написать программу для Arduino [5].
Задача ардуино состоит в прослушивании того, что программа-демон на домашнем сервере посылает на COM-порт, к которому и подключена ардуино (хотя фактически подключение идет по USB-кабелю, но компьютер распознает его как последовательный порт). После получения каких-либо данных с компьютера, контроллер по первому символу переданной информации распознает код команды. Далее в зависимости от кода и следующей за ним информации выполняется включение/выключение светодиода.
Листинг программы находится в приложении.
-
Написание приложения для Android
Как уже говорилось ранее, приложение можно написать как на языке processing, так и в среде разработки Eclipse. Визуализацию проще делать при помощи SDK for Eclipse, а привязку к кнопкам – в processing. Но для отладки приложения в любом случае необходим SDK. Ниже представлен фрагмент кода, вызывающий скрипт led.php, управляющий светодиодом:
public void changeLED()
{
Try
{
URL url1 = new URL("http://domenID.ru/led.php");
HttpURLConnection urlConnection = (HttpURLConnection) url1.openConnection();
try
{
InputStream in = new
BufferedInputStream(urlConnection.getInputStream());
}
finally {
urlConnection.disconnect();
}
}
catch (Exception e)
{
}
}
Запуск приложений через эмулятор крайне долог и зачастую требует дополнительной отладки, но проверить большинство приложений, как правило, не составляет труда. Проще же открыть только что написанное приложение непосредственно с самого телефона/планшета. Processing сам подгоняет изображение под размер экрана, что существенно упрощает дальнейшую отладку.
Внешний вид приложения может быть разработан специально как для частных домов, так и для офисов и предприятий, в зависимости от потребностей. Ниже приведен пример красочной реализации визуальной составляющей приложения, ориентированного на конкретного пользователя:
-
Выводы
В данной работе мною был разработан план передачи информации внутри системы автоматизированного дома, представлен пример управления системой конечным пользователем и описана экономическая выгода от внедрения системы в целом.
В ходе работы были выявлены некоторые трудности в технической составляющей, такие, как оптимизация взаимодействия протоколов, отладка приложения под Android и необходимость создания базы данных непосредственно на веб-сервере.
В результате можно сказать, что выбранная комбинация программных и аппаратных решений является наиболее простой и доступной. Конечному пользователю нет необходимости пользоваться услугами сторонних специалистов по автоматизации, что, безусловно, сказывается на затратах. В дальнейшем, программная часть будет реализована в виде дистрибутива для персонального компьютера и .apk-приложения для мобильного устройства, без необходимости дополнительной настройки, что позволит ориентироваться не только на людей, знакомых с программированием, но и на простых пользователей.