Данный CRMui WebFramework построен на JeeUI2, проект изначально почти полностью переписан, исправлены ошибки, добавлены новые возможности.
P.S. я не программист, это моё хобби, поэтому изящность кода и правильность написания того или иного участка не гарантирую. Конструктивная критика, а также предложения по улучшению приветствуется.
Совместим с микроконтроллерами на ESP8266. В идеале лучше использовать с модулем ESP-12F (Wemos D1 mini).
- libraries - библиотеки, используемые в данном проекте (распаковать);
- CRMui - сам CRMui WebFramework.
- Первые шаги с Arduino - ультра подробная статья по началу работы с Arduino, ознакомиться первым делом!
- Скачать архив с проектом
На главной странице проекта (где ты читаешь этот текст) вверху справа зелёная кнопка Clone or download, вот её жми, там будет Download ZIP
- Установить (скопировать) библиотеки из скаченного архива папки libraries в
C:\Program Files (x86)\Arduino\libraries\
(Windows x64)
C:\Program Files\Arduino\libraries\
(Windows x86) - Подключить внешнее питание 5 Вольт
- Подключить плату к компьютеру
- Файл/Настройки, вставить ссылку https://arduino.esp8266.com/stable/package_esp8266com_index.json в текст-бокс для дополнительных ссылок для менеджера плат
- Открыть Инструменты/Плата/Менеджер плат…, найти esp8266 by ESP8266 Community, установить последнюю версию (корректность работы проверялась на 2.7.4)
- Открыть Инструменты, настроить Плату, Порт и другие параметры как на скриншоте
- Загрузить прошивку
Использование CRMui можно посмотреть в примере, идущем с библиотекой.
- Настройка индикации подключенного или встроенного светодиода\n
led_conf(byte pin, bool vol, bool inversion); pin - порт подключения, vol - начальное состояние (LOW / HIHG), inversion - инверсия порта (true / false);
если не используется, LED индикатор не активен
- Записывает в параметр нужное значение
var(String key, String value); key - имя параметра, value - значение
при изменении через WEB, авто сохранение в энергонезависимую память через 30 сек, во время работы конфиг находится в ОЗУ
- Название функции, формирующей WEB интерфейсе
ui(interface); interface - название функции
может быть любым
- Название функции, которая вызывается при обновлении параметров через Web
update(update_vol); update_vol - название функции
может быть любым
- Название функции, которая вызывается при входящем GET запросе
getRequest(dataReq); dataReq - название функции
может быть любым (вид запроса: https://IP/data?text=какойто текст)
- Название функции, которая вызывается при запросе обновления динамических данных в WEB
aliveArray(adata); adata - название функции
может быть любым
- Инициализация остальных параметров и функций CRMui WebFramework
begin();
handle();
необходимо для нормального функционирования WebFramework
btnCallback(String name , String response); name - ID кнопки, response - имя вызываемой функции
имя вызываемой функции любое
- Название устройства
app_name(String name); name - название
также отображается в меню
- Пункты меню и разделы
menu(String name); name - название пункта меню
page();
отделение разделов друг от друга
- Поле для динамических данных
alive_tabl(String id, String label); id - ID элемента, label - название
alive_tabl(String id, String label, String value); id - ID элемента, label - название, value - значение по умолчанию
поля элементов в виде таблицы
- Поле для ввода текста
text(String id, String label); id - ID элемента, label - название
- Поле ввода пароля
password(String id, String label); id - ID элемента, label - название
значение скрыто точками
- Поле ввода цифр
number(String id, String label); id - ID элемента, label - название
- Поля ввода времени и даты
time(String id, String label); id - ID элемента, label - название
date(String id, String label); id - ID элемента, label - название
datetime(String id, String label); id - ID элемента, label - название
- Поле ввода email адреса
email(String id, String label); id - ID элемента, label - название
- Элемент ползунок
range(String id, int min, int max, float step, String label); id - ID элемента, min - значение от, max - значение до, step - шаг (десятичные) ,label - название
range(String id, int min, int max, float step, String label, String units); id - ID элемента, min - значение от, max - значение до, step - шаг ,label - название, units - размерность
шаг может быть десятичным, размерность - указывается размерность значения, не обязательный параметр
- Элемент список
option(String label, String value); label - название, value - значение
массив списка, закрывается select
select(String id, String label); id - ID элемента, label - название
элементы закрывающий список, находится после всех option
- Элемент переключатель
checkbox(String id, String label); id - ID элемента, label - название
возвращает строку true или false
- Элемент выбора цвета
color(String id, String label); id - ID элемента, label - название
возвращает строку формата #XXXXXX
- Кнопка
button(String id, String label); id - ID элемента, label - название
button(String id, String label, bool newline); id - ID элемента, label - название, newline - перевод на новую строку
перевод на новую строку, если не задано, то true
- Поле ввода многострочного текста
textarea(String id, String label); id - ID элемента, label - название
много лучше не вводить, его значение, как и значение остальных элементов хранится в ОЗУ
- Элементы разделения
hr();
горизонтальная полоса
br();
строчный интервал
br(String size); size - размер в px
интервал с размером в пикселях, но не менее строки
- Страница настроек WiFi
wifi_page();
- Обновление динамических данных в WEB
aliveData_tabl (String id, String value); id - ID элемента alive_tabl, value - название элемента
aliveData_tabl (String id, String value, String rgb); id - ID элемента alive_tabl, value - название элемента, rgb - цвет
если цвет не указан, то белый, (формат RGB HEX: XXXXXX или XXX)
Следующие методы используются в любой функции
- Режим работы LED индикатора
led(wmode); wmode - режим работы
режимы работы: 0 - ВЫКЛ, 1 - ВКЛ, 10 - быстро мигать (300 мс), любое другое значение отображает режим работы (2е мигание - STA, 3е мигание - AP)
- Использовать LED индикатор (совместно с led_conf)
led_use(bool use);
use - что то вроде ВКЛ / ВЫКЛ, тип bool (true / false)
- Метод возвращает строку со временем работы устройства
time_work();
тип возвращаемого значения String
- Получить значение параметра по его ключу
param(key);
тип возвращаемого значения String
- Получить значение параметра GET запроса по его ключу
param_get(String key);
тип возвращаемого значения String
- Сообщение ответа в WEB на GET запрос
getResponse(resp); resp - строка ответа
тип возвращаемого значения String
- Системные методы
reboot();
перезагрузка модуля
reset_cfg();
сброс настроек и удаление файла с конфигурацией из энергонезависимой памяти
В: Как скачать с этого грёбаного сайта?
О: На главной странице проекта (где ты читаешь этот текст) вверху справа зелёная кнопка Clone or download, вот её жми, там будет Download ZIP
В: Скачался какой-то файл .zip, куда его теперь?
О: Это архив. Можно открыть стандартными средствами Windows, но думаю у всех на компьютере установлен WinRAR, архив нужно правой кнопкой и извлечь.
В: Я совсем новичок! Что мне делать с Ардуиной, где взять все программы?
О: Читай и смотри видос https://alexgyver.ru/arduino-first/
В: Сколько стоит?
О: Бесплатно, но если ходите отблагодарить, ссылка на Донат в самом начале.