Arduino Mega Server v.0.1 alpha
Альфа версия. Концепт и демонстрация идеи. Только для хардкорных разработчиков, которые готовы разбираться в километрах кода. Требуется знание HTML, CSS, JavaScript, Processing, Arduino, 3D, терпение и большое желание понять как всё это работает. Никаких гарантий!
Использование
На использование данного ПО не накладывается никаких ограничений. Вы вольны делать с ним всё, что вам заблагорассудится, в том числе создавать проекты на гитхаб и развивать любым доступным вам способом. Права на используемые библиотеки принадлежат их владельцам. За основу серверной части была взята информация с сайта startingelectronics.com.
Запуск
Для разработки использовался Firefox 35 с включённой функцией HTML Imports. ! Гарантированно всё работает в этой версии браузера ! В других версиях могут быть проблемы. HTML Imports поддерживается ff 33+, chrome 36+, opera 26+, android 37+. Технология не очень демократичная и желательно заменить её на что-нибудь более простое, чтобы всё работало и в старых системах.
Инструкция по активации функции HTML Imports:
1 Firefox has no plans to support HTML imports though for now it can be enabled through the "dom.webcomponents.enabled" preference in about:config
2 Enabled through the "Enable HTML Imports" flag in chrome://flags
3 Enabled through the "Experimental Web Platform features" flag in chrome://flags
4 Enabled through the "Enable HTML Imports" flag in opera://flags
5 Enabled through the "Experimental Web Platform features" flag in opera://flags
MajorDoMo
В данной версии используется тандемный режим работы. Часть функций работает в связке с MajorDoMo. Например, время AMS получает с сервера MajorDoMo (далее М), также М используется в качестве (быстрого) хранилища части файлов AMS (скрипты, картинки и т.д.). AMS можно полностью отвязать от М, но для этого понадобится оптимизация, иначе всё будет работать слишком медленно. Папка AMS на сервере М:
\htdocs\lan\mega
и подпапки : css, img, js, process
Адрес М 192.168.2.8 жёстко прописан в скриптах и чтобы всё заработало ваш М должен иметь этот IP (или изменить все вхождения этого IP в файлах проекта).
Arduino Serial Commander
http://majordomo.smartliving.ru/forum/v ... f=4&t=2366
ASC это важная часть проекта. Через него осуществляется заливка файлов на работающий AMS, без остановки оного (пока поддерживаются только текстовые файлы). Все файлы проекта, которые вы хотите залить на AMS должны находиться в папке Arduino Serial Commander. Формат имён файлов 8.3 (ограничение библиотеки работы с SD).
Быстродействие
Бутылочным горлышком в данной системе является быстродействие SD карты, поэтому нужно использовать как можно более быструю SD. Также на быстродействие влияет количество скриптов и размер картинок. Поэтому для увеличения быстродействия нужно уменьшать количество скриптов и размер картинок (или отказываться от них, если возможно). В данный момент используется хранение больших файлов на сервере М, что нивелирует проблему быстродействия.
Оптимизация не проводилась! Если что-то работает медленно — это повод разобраться в коде и улучшить его.
Сторонние библиотеки
Для распознавания компьютеров в сети используется модифицированная библиотека ICMPPing, которую нужно поместить в стандартную папку
\arduino\libraries\
Также используются библиотеки DallasTemperature и OneWire.
Версия сред разработки
Проект создан на Arduino 1.0.1 и Processing 1.5.1 и, соответственно, гарантированно компилируется в этих версиях сред. В новых — как повезёт.
Железо
В проекте используется Arduino Mega и Ethernet Shield W5100. На аналоговые входы подключён модуль контроля напряжения и потребляемой мощности на 13 линий, на цифровые — PIR датчики, контакты и управляющие ключи. Это только тестовая конфигурация, чтобы было с чего брать данные для вывода на веб-страницы. В вашем случае конфигурация будет другой и файлы проекта это только шаблон для дальнейшей работы. Если что-то не работает — изучайте код и модифицируйте его под своё железо.
Ещё раз — никаких гарантий! Только для тех, кто готов разбираться в коде и всё переделывать под себя. Удачи!
-------------------
Файл дистрибутива 0.1 alpha версии вместе со счётчиком загрузок (222) перенесён на официальный сайт проекта Arduino Mega Server
http://hi-lab.ru/arduino-mega-server