В прошлой статье мы начали знакомиться с дисплеями Nextion. Ту статью можно прочитать нажав на эту ссылку.
Сейчас продолжим разбирать возможности дисплеев Nextion.
Приобрести его можно тут:
Nextion: http://ali.pub/1xz0e2
Я покупал такой: http://ali.ski/zF01b
В этой статье попробуем разобрать как строить графики.
Для начала добавим все элементы в Nextion Editor, а именно создадим две страницы, page0 которая создается сразу же после создания проекта, и page1 ее придется создать вручную.
Для перехода между страницами добавим две кнопки Button, на каждую страницу по одной кнопке, и чтоб дисплей понимал какое действие сделать после нажатия кнопки, кнопкам нужно прописать следующий код page page0, одной из кнопок, ну и page page1 соответственно другой. Данный код выполняет переключение между дисплеями по нажатию кнопки.
Еще на page0 мы добавим блок текста, для вывода температуры с датчика DS18B20
В конечном итоге page0 выглядит вот так:
Ну а на page1 добавим график Waveform и выглядеть все это будет вот таким образом:
После добавления всех элементов в программе Nextion_editor переходим в программу FLProg
В настройки каждого элемента я вдаваться не буду, но принцип программы постараюсь описать.
Для вывода температуры на главный экран page0 служит следующее количество блоков:
После добавления этих блоков у нас будет выводится температура на дисплей Nextion.
Для построения графика на дисплее Nextion служит два блока: Добавить точку на график , Отправка массива на график.
Для начала нам нужно отправить массив на график. Для этого создадим массив равный ширине блока Графика в программе Nextion_editor. В моем случае это 200.
В блоке Отправка массива на график, выберем созданный массив. Данный блок пишет массив на график только в том случае, когда на вход блока Send приходит 1.
Подавать 1 будем с помощью блока Получить id страницы, и все это будет выглядеть вот так:
Работать это будет так: как только мы переходим на page1 у нас будет подаваться 1 на вход send блока Отправка массива на график.
Теперь нам нужно определиться с периодичностью, с которой мы будем отправлять данные на график. Допустим это будет 5 секунд. Тогда создадим переменную “точка” типа boolean которая будет иметь либо 1 либо 0, но по умолчанию будет иметь 0. и с помощью симметричного мультивибратора будем записывать 1 в переменную “точка” каждые 5 секунд
Выглядит на блоках это так:
Теперь сделаем так чтоб наша температура записывалась в массив, это можно сделать с помощью блока Стек, который будет записывать данные в массив, по получению 1 от переменной “точка”.
После того как в массив записаны данные, нам нужно добавлять точки на график, с помощью блока Добавить точку на график.
Обратите внимание, что к значениям температуры прибавляется 100, это сделано для того чтоб были видны отрицательные температуры, так как самая нижняя точка графика по умолчанию это 0.
Готовые эти проекты можно скачать у меня на сайте тут.
Ну и конечно-же демонстрация всего этого в видео :