DoT

Опубликовано bondrogeen

Я уже писал о своем веб сервере для NodeMCU на LUA. Так как я постоянно развиваю web-server добавляя новые возможности и улучшаю код, столкнулся с некоторыми проблемами. На первых версиях web-server я уже создал несколько работающих устройств, но по мере того как их количество увеличивается, а в основной код web-server постоянно добавляются новые возможности, становиться сложно переносить эти изменения из проекта в проект. При создании нового устройства каждый раз приходится подстраивать веб интерфейс c настройками под него, что вызывает неудобства и отнимает время. Также для пользователей которые захотят повторить мои проекты, хотелось упростить установку, а для разработчиков существенно сократить временные затраты на создания новых устройств на ESP8266 с веб интерфейсом. Принимая во внимания все перечисленные недостатки и в попытках унифицировать некоторые процессы, появился новый проект DoT.

DoT — это комплекс решений для создания проектов на ESP8266 с веб интерфейсом. За основу был взят web-server,  он теперь выступает в качестве ядра системы. Главная его задача устанавливать, запускать и обновлять отдельные части кода (Plugin). Для визуальной части, чтобы упростить создания адаптивных страниц, был разработан небольшой css framework. В его составе присутствуют классы для элементов форм, кнопок, списков и т.д, которые будут отлично смотреться как на десктопах так и на мобильных устройствах.

Установка.

Установка DoT не чем не отличается от установки web-server, все необходимые файлы, кроме ESPlorer можно найти на GitHub. Там же лежит стоковая прошивка (adc, bit, crypto, file, gpio, http, i2c, mqtt, net, node, ow, pwm, rotary, sjson, spi, tmr, uart, wifi, ws2812), если вам нужны другие модули, то вы можете собрать свою прошивку, прошить и залить скрипты. После того как это было сделано можно запускать модуль (ESP).

При первом старте, модуль запустится в режиме точки доступа с названием «DoT-XXXXXX«, к которой необходимо подключиться. Как подключились, заходим в браузер и переходим по адресу 192.168.4.1 . Далее мы попадем на страницу аутентификации, где нужно вести логин и пароль для доступа, по умолчанию который (логин admin, пароль 0000)

 

Перейдя в верху страницы по ссылки «Settings» вы попадете на страницу настроек, на которой можно поменять настройки Wi-Fi вручную или просканировать сеть нажав на кнопку «Search«, ниже появится список доступных сетей. Также можно сменить логин и пароль аутентификации или отключить её.

 

 

Plugin.

Plugins — это отдельные файлы которые состоят из скриптов, файлов настроек, запускаемых файлов, информации о нём. Можно сказать это отдельные, независимые части (блоки) кода, c которыми взаимодействует DoT. Так как файловая система не может работать с каталогами, а как-то нужно было различать их, пришлось использовать имя в качестве ключа, то есть каждый файл одного плагина должен начинаться с одинакового  имени, для всех его файлов. Это сделано для того. чтобы не было конфликтов и путаницы.

  1. [name].info  — Информация о плагине. (json)
  2. [name].init — Настройки плагина. (json)
  3. [name].run — Запускается при старте ESP. (lua)
  4. [name].net — Запускается при подключении к сети. (lua)
  5. [name].lua — Основной скрипт. (lua)
  6. [name]_two.lua — Доп. скрипт.(lua) (не обязателен)
  7. [name].html — HTML страница.(не обязателен)
  8. и т.д. главным критерием это уникальное имя и каждый файл начинался с него.

Рассмотрим по подробней файлы плагина:

[name].info — Это файл где храниться основная информация о плагине в json формате. В нем хранятся как базовые данные (имя, версия, тип, ссылки и т.д.), так и параметры настроек по умолчании (native). На основании этих данных DoT формирует описания плагина и внешний вид настроек.

 

[name].init — это файл настроек по умолчанию для плагина, в json формате. В нем хранятся настройки необходимые для запуска плагина. Эти настройки будут переданы в виде таблице при запуске.

 

[name].run или [name].net — В зависимости от задачи плагина, один из этих файлов будут автоматически запущены или в момент старта модуля ([name].run) или в момент каждого подключения к сети ([name].net). Перед тем как запустить один из этих файлов, DoT преобразует файл с настройками ([name].init) в таблицу { t } и передает их сюда. На основании настроек будут запущены или не запущен остальные скрипт(ы) плагина.

 

[name].lua — Это основной код плагина, здесь запускается ваш код с предварительными настройками, которые будут получены с таблицей { t }.

 

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

 

Рубрики: NodeMCU

Отправить ответ

avatar

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

  Subscribe  
Notify of