Для данной реализации нам понадобится:
Arduino uno : http://ali.pub/1th4sk
Датчик температуры ds18b20: http://ali.pub/1xz072
Ну и дисплей Nextion: http://ali.pub/1xz0e2
Я покупал такой: http://ali.ski/zF01b
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
Для начала добавим все элементы в 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.
Конечно оставляю ссылки на проект FLProg и Nextion: https://yadi.sk/d/z6u-Mujh3PGv6w и https://yadi.sk/d/HxjjZrxb3PGvDi
Ну и конечно же подробнее от настройке каждого элемента в видео: