Nextion HMI (обновлено: 09 Sep 2020, 15:25:50)

Nextion


Вывод данных со всех датчиков, которые поддерживает  ESP2866 и ESP32 на Nextion, а также с MajorDoMo и MQTT.

Управление gpio и vgpio, а также отображение их состояния.

Включение и выключение Экрана через GPIO219, автовключение по тапу.

Заливка прошивки в сам nextion по ОТА, без проводов (пока только с ESP32).

Идет активная работа по добавлению новых функций.

В разработке поддержка термостата...

По умолчанию скорость UART nextion составляет 9600!!!



Подключение Nextion:

ESP8266 - тут все стандартно. Подключаемся к UART через (GPIО 1, 3 - TX, RX).
ESP32 GPIО 19, 18 - TX, RX. При компиляции прошивки нужно выставить свободные GPIO для UART. Не забываем про номер UART, в ESP32 их 3 шт. (0(занят отладкой), 1, 2).



Перевод UART Nextion на 115200:

По умолчанию скорость UART nextion составляет 9600!!! Для начала нужно убедиться, что на скорости 9600 дисплей работает.
Для перевода на 115200 необходимо:

1. Послать GET команду  IP/nextion?raw=bauds=115200 - этим вы переведете свой Nextion на скорость UART 115200 по умолчанию.

2. Скомпилировать прошивку в личном кабинете, как указано на рисунке и обновить ее.


3. После прошивки ваш Nextion будет работать на скорости 115200.


Управление с дисплея Nextion выходами GPIO (VGPIO) находящихся на модулях ESP2866/ESP32:

Для управления выводами ESP gpio (vgpio) с Nextion необходимо:

1. В окне Toolbox  редактора Nextion Editor добавить один из элементов Button или Dual-state-button



2. В окне EVENT в поле User Code добавить : 

print "G52"
printh FF FF FF
Где G52 - это номер GPIO на ESP8266/ESP32.

Если вписать dim=80 - то по нажатию на кнопку - яркость экрана будет установлена на 80 %. Таким образом можно управлять всеми свойствами.

 Установка отметки в поле - Send Comonent ID - отправка  события нажатии кнопок на экране Nextion в MajorDoMo и MQTT.


3. Скомпилировать ****.tft файл и записать в Nextion.

в ESP32 - можно отправить прошивку на nextion - прямо из вебинтерфейса.



Отправка данных на Nextion:

Для отправки данных из датчиков ESP, Virtual SENSконструктора строк, а также о состоянии gpio (vgpio) на Nextion необходимо: 
1. В Toolbox  редактора Nextion Editor добавить один из элементов Text или Dual-state-button
2. На панели Attribute переименовать свойства в objname для Text  в d0...d9, для элементов Dual-state-button  в v0...v9.



3. На вкладке TXT - из выпадающего списка выбираются датчики, а на вкладке VAL-GPIO - выбираются gpio, если пункт не используется, то строго обязательно требуется установить значение 255 !!! Рекомендуемое максимальное количество строк для конструктора ESP8266 - 3 (Выставляется в шестеренке). Большое количество строк может привести к сбоям в работе модуля


4. Скомпилировать прошивку и записать в Nextion с помощью sd карты, из редактора через uart или прямо из веб интерфейса.

Если при обновлении прошивки из веб интерфейса возникают проблемы, то можно отключить nextion на страничке.


Отправка данных с модуля ESP на Nextion происходит каждые 10 сек.


Вывод информации на Nextion:

1. через MQTT: login/hostname/nextion/msg_ID ТЕКСТ, где ТЕКСТ - данные


2. через GET: IP/nextion?id=name&send=ТЕКСТ , где name -  objname поля в приложении Nextion Editor (*.txt - указывать не обязательно, *.val и другие), ТЕКСТ - сообщение.

Примеры:

IP/nextion?id=d0&send=12:00 

отправка текста 12:00 на id=d0 (тип переменной - txt)

IP/nextion?id=v0.val&send=23

отправка числа 23 на id=v0.val (тип переменной - val). Поддерживаются все типы переменных !!!.

IP/gpio?st=1&pin=219 

включить подсветку Nextion

IP/gpio?st=0&pin=219 

выключить подсветку Nextion


3. через Interpreter



Примеры:

printn(d0,_TIMES_)

где d0 - поле в nextion, _TIMES_ - время

printn(d1,_VS11_)

где d1 - поле в nextion, _VS11_ - виртуальный датчик

Управление Nextion с помощью команд:

1. через MQTT:  login/hostname/nextion/raw КОМАНДА, где КОМАНДА - raw команда. 

Пример: login/hostname/nextion/raw dim=80 - яркость экрана на 80%.


2. через GET:  IP/nextion?raw=КОМАНДА, где КОМАНДА - raw команда.

Примеры:

IP/nextion?raw=dims=80 

установить и запомнить яркость экрана на 80 %

IP/nextion?raw=sleep=0 

включить экран

IP/nextion?raw=sleep=1

выключить экран, (включение экрана по тапу, это реализовано в самой прошивке)

IP/nextion?raw=page 1

переход на 1 страницу

IP/nextion?raw=bauds=9600

установить и запомнить скорость UART

IP/nextion?raw=vis n1,1

показать элемент n1

IP/nextion?raw=vis n1,0

скрыть элемент n1

IP/nextion?raw=tsw m1,1

разрешить событие нажатия на кнопке m1

IP/nextion?raw=tsw m1,0

запретить событие нажатия на кнопке m1

IP/nextion?raw=add 1,1,50

добавить на waveform id 1, график 1, точку с значением 50

IP/nextion?raw=cle 1,0

очистить график

IP/nextion?raw=rest

полный сброс экрана

Другие команды...


3. через interpreter: 

Примеры:

printnraw(sleep=1)выключить экран, (включение экрана по тапу, это реализовано в самой прошивке)

printnraw(dim=30) 

установить и запомнить яркость экрана на 30 %


Пример управления экраном по времени:

if(hour>=6&&hour<22)
gpioset(219,1)
else
gpioset(219,0)
endif


Пример управления яркостью экрана по времени:

if(hour>=6&&hour<22)
printnraw(dim=80)
else
printnraw(dim=1)
endif


Модели корпусов для 3D принтеров в формате stl.


File:3D_Model_Nextion-2.4.zip

File:3D_Model_Nextion-2.8.zip

File:3D_Model_Nextion-3.2.zip

File:3D_Model_Nextion-3.5.zip

File:3D_Model_Nextion-4.3.zip

File:3D_Model_Nextion-5.0.zip

File:3D_Model_Nextion-7.0.zip 


Примеры работы с редактором:

  • FLProg + Nextion HMI. Урок 1
  • FLProg + Nextion HMI. Урок 2
  • FLProg + Nextion HMI. Урок 3

  • Обзоры на сторонних ресурсах:


    Все вопросы в Телеграмм