November 16th, 2014

Веб-интерфейс для Сервера Роботов: Сервер Роботов2

В прошлый раз мы смогли помигать лампочкой из облака Амазон, но это происходило в ручном режиме с клавиатуры через приглашение ssh. Осталось добавить завершающий штрих - веб-интерфейс, будем мигать лампочкой из интернет-обозревателя (браузера), запущенного на любом компьютере, смартфоне или планшете.


Сервер Роботов: управление роботом-с-лампочкой через веб from 1i7 on Vimeo.

Человек нажимает кнопку (включить лампочку) в браузере, кнопка (через Http-запрос с JavaScript) отправляет команду (включить лампочку) веб-приложению, веб-приложение переправляет команду (включить лампочку) Серверу Роботов, Сервер Роботов отправляет команду (включить лампочку) подключенному роботу, робот выполняет команду (включает лампочку) и отправляет ответ (ok) Серверу Роботов, Сервер Роботов переправляет ответ (ok) веб-приложению, веб-приложение возвращает ответ (ok) в браузер, JavaScript в браузере отображает ответ (рисует картинку с включенной лампочкой), человек видит результат нажатия кнопки (картинку с включенной лампочкой).

Общий смысл примерно такой, плюс некоторые нюансы и дополнения.

Сервер Роботов и подключающиеся к нему роботы (плата ChipKIT со светодиодом и приложение для Андроида) у нас уже есть. Осталось добавить веб-приложение, а также немного доработать Сервер Роботов и подключающихся к нему роботов так, чтобы они смогли работать внутри новой цепочки.

Веб-приложение напишем на языке Scala на базе набора инструментов (фреймфорка) для разработки веб-приложений Unfiltered. При желании его можно легко заменить на любой другой любимый движок для веб-приложений на любом другом языке программирования.

Финальный результат онлайн: http://robotc.lasto4ka.su/
Еще финальный результат (+веб-камера с творчески доработанной инсталляцией, в базовую инструкцию не включены): В глубинах океана

Предварительные приготовления
Виртуальный хостинг на Амазоне
Сервер Роботов: запуск управляющего сервера на Java в облаке Amazon
Сервер Роботов: управление платой ChipKIT WF32 из облака
Сервер Роботов: управление смартфоном Android из облака

плюс
Робот Машинка на Сервере Роботов (без веб-интерфейса)

Исходники
1) Управляющее веб-приложение: chipkit-cloud-wifi/ScalaUnfilteredWebFrontend
2) Сервер Роботов2: chipkit-cloud-wifi/JavaTcpServerMaster/src/main/java/edu/nntu/robotserver/RobotServer2.java
3.1) Робот с лампочкой на ChipKIT: chipkit-cloud-wifi/chipkit_tcp_client_slave2/chipkit_tcp_client_slave2.pde
3.2) Робот с лампочкой на Android: chipkit-cloud-wifi/AndroidTcpClientSlave
3.3) Условный робот на Java: chipkit-cloud-wifi/JavaTcpServerMaster/src/main/java/edu/nntu/robotserver/RobotClient2.java

Collapse )

исходники занятия, подсветка синтаксиса.