Акции
Блог
О 3DiY
  • О компании
  • Реквизиты
  • Партнеры
  • Клиенты
  • Вакансии
Оплата
Доставка
Гос. закупки
Товары под заказ
ВК Видео
Отзывы
Услуги
  • 3D печать
    • 3D печать пластиком FDM/FFF
    • 3D печать фотополимером
Контакты
  • Как до нас добраться
    8 (800) 500-45-93
    8 (800) 500-45-93отдел продаж Россия
    8 (495) 565-35-93отдел продаж Москва
    E-mail
    info@3d-diy.ru — отдел продаж

    print@3d-diy.ru — 3D печать на заказ

    support@3d-diy.ru — тех. поддержка

    buh@3d-diy.ru — Бухгалтерия
    Адрес
    Москва, Павелецкая набережная, 2с1
    Как до нас добраться, см. тут
    Режим работы
    пн - пт 09:00—18:00
    3DIY
    Войти
    0Сравнение
    0Избранное
    0Корзина
    3D принтеры3D сканерыПластик для 3D принтераФотополимерыКомплектующие 3DКомплектующие ЧПУЗапчасти 3D принтеров по брендам3D печать на заказ
    3DIY
    Войти
    0Сравнение
    0Избранное
    0Корзина
    3DIY
    Телефоны
    8 (800) 500-45-93отдел продаж Россия
    8 (495) 565-35-93отдел продаж Москва
    E-mail
    info@3d-diy.ru — отдел продаж

    print@3d-diy.ru — 3D печать на заказ

    support@3d-diy.ru — тех. поддержка

    buh@3d-diy.ru — Бухгалтерия
    Адрес
    Москва, Павелецкая набережная, 2с1
    Как до нас добраться, см. тут
    Режим работы
    пн - пт 09:00—18:00
    0
    0
    0
    • Кабинет
    • 0Сравнение
    • 0Избранное
    • 0Корзина
    • Бренды
    • Акции
    • Услуги
      • Услуги
      • 3D печать
        • 3D печать
        • 3D печать пластиком FDM/FFF
        • 3D печать фотополимером
    • Компания
      • Компания
      • О компании
      • Реквизиты
      • Партнеры
      • Клиенты
      • Вакансии
    • Блог
    • Информация
      • Информация
      • Гарантия на товар
      • Возврат товара
      • Положение о персональных данных
      • Политика конфиденциальности
      • Согласие на получение рекламы
      • Пользовательское соглашение
      • Согласие на обработку персональных данных
      • Использование cookie-файлов
      • Договор-оферта
    • Контакты
      • Контакты
      • Как до нас добраться
    8 (800) 500-45-93отдел продаж Россия
    • Телефоны
    • 8 (800) 500-45-93 отдел продаж Россия
    • 8 (495) 565-35-93 отдел продаж Москва
    • info@3d-diy.ru — отдел продаж

      print@3d-diy.ru — 3D печать на заказ

      support@3d-diy.ru — тех. поддержка

      buh@3d-diy.ru — Бухгалтерия
    • Москва, Павелецкая набережная, 2с1
      Как до нас добраться, см. тут
    • пн - пт 09:00—18:00
    Главная
    Блог
    Дисплеи
    Nextion дисплей

    Nextion дисплей

    Nextion дисплей
    Дисплеи

    Содержание

    • Обзор
    • Программа Nextion
    • Подключение к Arduino
    • Пример использования
    • Часто задаваемые вопросы

    Обзор дисплее Nextion

    Дисплеи являются удобным элементом при создания графического интерфейса для проектов Arduino. В проектах Arduino используют разнообразные дисплеи. Список самых распространенных:

    • монохромные символьные на контроллере HD44780;
    • монохромные графические NOKIA5110;
    • OLED-дисплеи;
    • цветные дисплеи с TFT матрицей.

    Чем сложнее дисплей, тем больше ресурсов Arduino он использует. В отличие от вышеперечисленных, графические дисплеи Nextion NMI (Human Machine Interface) обладают собственным микроконтроллером, который выделяет весь свой вычислительный ресурс на обработку графики, контроллером сенсорного экрана, памятью, и разъемами для подключения SD-карты и интерфейса UART.

    nextion-01.jpg

    Рис. 1

    Дисплеи улучшенной версии оснащены также часами реального времени и контактами GPIO. Подключение к Arduino по последовательному порту, двусторонний обмен происходит с помощью унифицированных команд, позволяющих определять события прикосновения к элементам экрана и устанавливать атрибуты созданных элементов. Для загрузки программ в дисплей можно использовать разъем SD-карт памяти. Модельный ряд представлен дисплеями с диагональю 2.4" - 7.0" с разрешением экрана от 320x240 до 800x480 (рис. 2,3). 

    nextion-02.jpg

    Рис. 2

    nextion-03.jpg

    Рис. 3


    Программа Nextion Editor

    Программа Nextion Editor  предназначена для работы с дисплеями Nextion и позволяет создавать интерфейс пользователя и прописать обработку событий Press/Release для элементов экрана.

    Перед подключением дисплея Nextion к плате Arduino, рассмотрим как создавать в дисплее графические элементы. Необходимо скачать программу Nextion Editor со страницы загрузки официального сайта – https://nextion.itead.cc/resources/download/ (рис. 4). Версия только для операционной системы Windows.

    nextion-04.jpg

    Рис. 4 Страница загрузки программы Nextion Editor.

    После скачивания, распаковки и установки, запустим программу Nextion Editor (рис. 5).

    nextion-05.jpg

    Рис. 5.

    Создаем новый проект (File → New), вводим название проекта и кликаем по кнопке Сохранить. В окне Setting во вкладке Device выберем линейку и модель дисплея (рис. 6). Во вкладке Display выбираем ориентацию дисплея и кодировку (для кириллицы iso-8859-5) (рис. 7). 5. Во вкладке project можно запаролировать доступ к проекту.

    nextion-06.jpg

    Рис. 6.

    nextion-07.jpg

    Рис. 7.

    Откроется графическое окно разработки. Рассмотрим его элементы (рис. 8):

    • Главное меню;
    • Меню управления выравниванием и порядком элементов;
    • Библиотека элементов;
    • Область отображения;
    • Список страниц проекта;
    • Библиотека изображений /Библиотека шрифтов;
    • Окно вывода результатов компиляции;
    • Окно для ввода кода, выполняемого при возникновении события;
    • Зона редактирования атрибутов выбранного элемента.

     nextion-08.jpg

    Рис. 8.

    Теперь можем приступать к добавлению элементов. Изначально в окне списка страниц присутствует одна страница – page0, название которой можно изменить. У каждого элемента, а также страницы есть свойства (атрибуты), которые можно изменять в окне редактирования атрибутов выбранного элемента. Добавим фон для страницы. Сначала добавим изображение в окне 6 – библиотека изображений, нажав на кнопку "+". Теперь можно установив фон страницы, выбрав для страницы page0 атрибут sta, равный image и в поле pic выбрать нужное изображение из списка (рис. 9).

     nextion-09.jpg

    Рис. 9.

    Теперь добавим шрифты, которые наверняка пригодятся для надписей на экране. Шрифты можно сгенерировать генератором шрифтов. Выбираем Tools à Font Generator и в появившемся окне выбираем параметры шрифта (рис. 10), а затем сохраняем.

    nextion-10.jpg

    Рис. 10.

    После генерации шрифт можно добавить в проект. В библиотека шрифтов нажимаем на кнопку "+" и указываем путь к шрифту. Теперь добавленный шрифт можно использовать в проекте (рис. 11).

    nextion-11.jpg

    Рис. 11.

    Элементы интерфейса добавляются на экран из библиотеки элементов, местоположение элемента на экране устанавливаем, перемещая его с помощью мыши, для активного элемента редактируем его атрибуты (рис. 12).

    nextion-12.jpg

    Рис. 12.

    С помощью галочки устанавливаем отправку команд для UART выбранного события (Touch Press или Touch Release), в поле кода можно добавить код для данного события (рис. 13).

    nextion-13.jpg

    Рис. 13.

    Перед прошивкой модуля необходимо проект скомпилировать (пункт меню Compile). При отсутствие ошибок приступаем к прошивке модуля.

    Прошивка осуществляется:

    • Через UART;
    • С помощью карты microSD.

    Для прошивки дисплея через UART понадобиться USB-Serial адаптер. Схема подключения Nextion к USB-Serial адаптеру показана на рис. 14.

    nextion-14.jpg

    Рис. 14.

    Для загрузки прошивки выбираем пункт Upload и в появившемся окне нажимаем на кнопку Go. Процесс прошивки будет отображаться в окошке программы (рис. 15) и на экране дисплея.

    nextion-15.jpg

    Рис. 15.

    Для прошивки дисплеев Nextion с помощью microSD карты, необходимо скопировать файл с именем проекта на microSD-карту. Далее вставляем её в дисплей и подаем питание. По окончании процесса прошивки извлекаем microSD-карту.


    Подключение к плате Arduino

    Рассмотрим подключение Nextion к Arduino и двустороннее взаимодействие. Взаимодействие происходит по последовательному порту. Схема подключения показана на рисунке 16.

    nextion-16.jpg

    Рис. 16. Схема соединений для подключения дисплея Nextion к плате Arduino

    Для взаимодействия с дисплеем Nextion будем использовать Arduino-библиотеки Nextion. Со стороны Arduino будем использовать программный последовательный порт Software на пинах 2(Rx) и 3(Tx). Составим скетч получения данных из дисплея Nextion при событиях Touch Press и Touch Release для созданной выше прошивки для дисплея Nextion.

    Содержимое скетча представлено в листинге 1.

    Листинг 1.

    // подключение библиотек #include <SoftwareSerial.h> #include <Nextion.h> // создание объектов SoftwareSerial port1(2, 3); Nextion disp(port1, 9600); void setup() { Serial.begin(9600); disp.init(); } void loop() { // ожидание сообщения от Nextion String msg = disp.listen(); if(msg != ""){ // при получении сообщения - // вывести его в последовательный порт Serial.println(msg); } } 

    Загружаем скетч на плату Arduino и смотрим в последовательном порту подключение данных из Nextion при назначенных для элементов событиях Touch Press и Touch Release (рис. 17).

    nextion-17.jpg

    Рис 17. Получение данных от дисплея Nextion со последовательному порту

    Разберем формат строки:

    • 65 0 2 1 ffff fffff fffff
    • 65 – первый байт – произошло событие TouchEvent;
    • 0 – номер страницы;
    • 2 – номер элемента на странице;
    • 1 – событие Touch Press (0 – Touch Release).
    • В библиотеке Nextion есть методы для отправки команд на дисплей Nextion, например:
    • sendCommand() – отправить команду;
    • setComponentText() – установить текст компонента;
    • buttonOnOff() – нажать/отжать кнопку;
    • buttonToggle() – переключение переключателя;
    • updateProgressBar() – изменить компонент ProgressBar;
    • getComponentText() – получить текст компонета.

    Составим скетч отправки команд на дисплей Nextion.

    Содержимое скетча представлено в листинге 2.

    Листинг 2

    // подключение библиотек #include <SoftwareSerial.h> #include <Nextion.h> // создание объектов SoftwareSerial port1(2, 3); Nextion disp (port1, 9600); char buf[10]; void setup() { Serial.begin(9600); disp.init() } void loop() { // изменение текста на компоненте t0 disp.setComponentText("t0", "Smart"+String(millis())); delay(2000); // изменение размера кнопки b0 disp.sendCommand( "b0.font=1"); delay(2000); disp.sendCommand( "b0.font=0"); delay(2000); // изменение позиции слайдера String s="h0.val="+String(random(0,100)); Serial.println(s); s.toCharArray(buf, 10); disp.sendCommand(buf); delay(2000); } 

    Загружаем скетч на плату Arduino и смотрим на дисплее изменение атрибутов компонентов.


    Пример использования

    Создадим проект метеостанции с выводом данных на экран дисплея Nextion. Для данного проекта потребуются следующие детали:

    • Плата Arduino Uno – 1;
    • Кабель USB;
    • Плата прототипирования – 1;
    • Дисплей Nextion;
    • Модуль BH1750 – 1;
    • Модуль датчика BMP280 – 1;
    • Модуль датчика влажности DHT22 – 1;
    • Провода.

    Соберем схему соединений согласно рис. 18. Обратите внимание, что питание датчика BMP280 берется с выхода Arduino 3.3 В, подключение к 5В приведет к выходу датчика из строя!!!

    Сначала необходимо создать прошивку для дисплея Nextion – размещение элементов для отображения данных метеостанции. Открываем программу Nextion Editor и создаем новый проект meteo1. Выберем вертикальное расположение страницы.

    Создадим 2 страницы – logo (для отображения логотипа при запуске устройства) и sensors (для отображения данных датчиков). Страница logo с фоновой картинкой и выполнением кода по событию Touch Realese (рис. 19).

    На странице sensors расположим элементы для отображения данных датчиков – 4 элемента Picture и 8 элементов Text (рис. 20). Необходимо загрузить в проект 4 иконки и создать 2 шрифта Arial 32 и 56px. В элементах t1, t2, t3, t4 будем изменять удаленно атрибут txt для внесения в них информации с датчиков метеостанции.

    nextion-18.jpg

    Рисунок 18. Схема соединений для домашней метеостанции с дисплеем Nextion.

    nextion-19.jpg

    Рисунок 19. Создание страницы logo.

    nextion-20.jpg

    Рисунок 20. Размещение элементов для страницы sensors.

    Приступим к написанию скетча.

    Сначала необходимо подключить библиотеки:

    // подключение библиотеки для работы с Software Serial #include <SoftwareSerial.h> // подключение библиотеки для работы с Nextion #include <Nextion.h> // подключение библиотеки для датчика BH1750 #include <BH1750FVI.h> // подключение библиотек для датчика BMP280 #include <Adafruit_Sensor.h> #include <Adafruit_BMP280.h> // подключение библиотеки Wire – для устройств I2C #include "Wire.h" #include <SPI.h> // подключение библиотеки DTH – для датчика DHT22 #include "DHT.h" 

    В константы вынесем пины для подключения датчиков DHT22 и DS18B20:

    // пин подключения контакта DATA датчика DHT22 #define DHTPIN 10 

    Создаем экземпляры объектов:

    // Nextion TX к пин 2, RX к пин 3 Arduino SoftwareSerial nextion(2, 3); // создание объекта Nextion к порту на скорости 9600 бод Nextion myNextion(nextion, 9600); // создание экземпляра объекта объекта для BH1750 BH1750FVI myBH1750; // создание экземпляра объекта для BMP280 Adafruit_BMP280 myBMP280; // создание экземпляра объекта DHT DHT dht(DHTPIN, DHTTYPE); 

    Опрос датчиков будем прозводить один раз в 5 секунд, вызывая процедуры получения данных для каждого датчика. Для датчика DHT22:

    int get_data_humidity() { int h = dht.readHumidity(); return h; } int get_data_temp() { int t = dht.readTemperature(); return t; } 

    Для датчика BH1750:

    int get_data_light() { int l = myBH1750.readLightLevel(); return l; } 

    Для датчика BMP280:

    int get_data_pressure() { int p = myBMP280.readPressure(); return p; } 

    Для вывода показаний датчиков на экран дисплея Nextion необходимо отправлять команды для изменения атрибута txt элементов t1, t2, t3, t4:

    float val=get_data_ds18b20(); // изменение текста на компоненте t1 myNextion.setComponentText("t1", String(val)); 

    Для проверки выводим данные с датчиков в последовательный порт.

    Содержимое скетча показано в листинге 3.

    Листинг 3

    // подключение библиотеки для работы с Software Serial #include <SoftwareSerial.h> // подключение библиотеки для работы с Nextion #include <Nextion.h> // подключение библиотеки для датчика BH1750 #include <BH1750FVI.h> // подключение библиотек для датчика BMP280 #include <Adafruit_Sensor.h> #include <Adafruit_BMP280.h> // подключение библиотеки Wire – для устройств I2C #include "Wire.h" #include <SPI.h> // подключение библиотеки DTH – для датчика DHT22 #include "DHT.h" // пин подключения контакта DATA датчика DHT22 #define DHTPIN 10 // тип датчика - DHT 22 #define DHTTYPE DHT22 // Nextion TX к пин 2, RX к пин 3 Arduino SoftwareSerial nextion(2, 3); // создание объекта Nextion к порту на скорости 9600 бод Nextion myNextion(nextion, 9600); // создание экземпляра объекта объекта для BH1750 BH1750FVI myBH1750; // создание экземпляра объекта для BMP280 Adafruit_BMP280 myBMP280; // создание экземпляра объекта DHT DHT dht(DHTPIN, DHTTYPE); // для периода опроса датчика unsigned long millis1=0; // служебные переменные char buf[10]; void setup() { // запуск последовательного порта на скорости 9600 бод Serial.begin(9600); // запуск BH1750 myBH1750.begin(); // запуск BMP280 myBMP280.begin(); // инициализация Nextion myNextion.init(); Serial.println("start"); } void loop() { // раз в 5 секунд if(millis()-millis1>=5000) { // данные температуры с DHT22 float val1=get_data_temp(); Serial.print("Temperature: "); Serial.print(val1); Serial.println(" *C"); // изменение текста на компоненте t1 myNextion.setComponentText("t1", String(val1)); // данные влажности с DHT22 int val2=get_data_humidity(); Serial.print("Humidity: "); Serial.print(val2); Serial.println(" %"); // изменение текста на компоненте t2 myNextion.setComponentText("t2", String(val2)); // данные с датчика освещенности int val3=get_data_light(); Serial.print("Light level: "); Serial.print(val3); Serial.println(" lx"); // изменение текста на компоненте t3 myNextion.setComponentText("t3", String(val3)); // данные с атмосферного давления int val4=get_data_pressure(); Serial.print("Pressure: "); Serial.print(val4); Serial.println(" Pa"); // изменение текста на компоненте t4 myNextion.setComponentText("t4", String(val4)); // начать отсчет 5 секунд заново millis1=millis(); } } // получение данных с влажности с датчика DHT22: int get_data_humidity() { int h = dht.readHumidity(); return h; } // получение данных с температуры с датчика DHT22: int get_data_temp() { int t = dht.readTemperature(); return t; } // получение данных с датчика BH1750: int get_data_light() { int l = myBH1750.readLightLevel(); return l; } // получение данных с датчика BMP280: int get_data_pressure() { int p = myBMP280.readPressure(); return p; 

    Загружаем скетч можно на плату Arduino. Скетч выводит данные в монитор последовательного порта (рис. 21) и на цифровой дисплей.

    nextion-21.jpg

    Рисунок 21. Вывод данных с датчиков в монитор последовательного порта.

    nextion-22.jpg

    Рисунок 22. Схема в сборе.


    Часто задаваемые вопросы

    1. Нет связи Arduino c дисплеем Nextion

    • Проверьте правильность подключения Nextion к плате Arduino.

    2. Изображение на дисплее Nextion мигает

    • Недостаточный ток при питании дисплея от платы Arduino. Используйте сторонний блок питания 5 В

    Документы

    Listing_01
    618 байт
    Listing_02
    739 байт
    Listing_03
    1,8 Кб
    Nextion
    203,8 Кб

    Это интересно

    Дисплей OLED 128×64
    Дисплеи
    Дисплей OLED 128×64
    Светодиодный LED дисплей на базе драйвера TM1637
    Дисплеи
    Светодиодный LED дисплей на базе драйвера TM1637
    Nextion дисплей
    Дисплеи
    Nextion дисплей
    Символьный дисплей LCD 1602 (1604)
    Дисплеи
    Символьный дисплей LCD 1602 (1604)
    Дисплей E-paper. Электронная бумага
    Дисплеи
    Дисплей E-paper. Электронная бумага
    Сенсорные HMI дисплеи DWIN
    Дисплеи
    Сенсорные HMI дисплеи DWIN
    • Комментарии
    Загрузка комментариев...
    Назад к списку
    • Все публикации277
      • 3D принтеры59
      • 3D печать64
      • ЧПУ10
      • Датчики27
      • Модули38
      • 3D сканеры1
      • Arduino механика6
      • Arduino платы8
      • Дисплеи6
      • Кейсы1
      • Компоненты13
      • Мировые новости35
      • Проекты7
      • Сопутствующие2
    Связаться с нами
    8 (800) 500-45-93
    8 (800) 500-45-93отдел продаж Россия
    8 (495) 565-35-93отдел продаж Москва
    E-mail
    info@3d-diy.ru — отдел продаж

    print@3d-diy.ru — 3D печать на заказ

    support@3d-diy.ru — тех. поддержка

    buh@3d-diy.ru — Бухгалтерия
    Адрес
    Москва, Павелецкая набережная, 2с1
    Как до нас добраться, см. тут
    Режим работы
    пн - пт 09:00—18:00
    info@3d-diy.ru — отдел продаж

    print@3d-diy.ru — 3D печать на заказ

    support@3d-diy.ru — тех. поддержка

    buh@3d-diy.ru — Бухгалтерия
    Москва, Павелецкая набережная, 2с1
    Как до нас добраться, см. тут
    Магазин
    Бренды
    Акции
    Каталог
    Услуги
    Компания
    О компании
    Реквизиты
    Партнеры
    Клиенты
    Вакансии
    Информация
    Гарантия на товар
    Возврат товара
    Положение о персональных данных
    Политика конфиденциальности
    Согласие на получение рекламы
    Пользовательское соглашение
    Согласие на обработку персональных данных
    Использование cookie-файлов
    Договор-оферта
    Помощь
    Условия оплаты
    Условия доставки
    Товары под заказ
    Гос. закупки
    Как сделать заказ
    Вопрос-ответ
    2013 - 2026 © 3DiY (Тридиай) - интернет-магазин комплектующих для 3D принтеров, ЧПУ станков и робототехники
    Конфиденциальность
    Оферта
    ГлавнаяКаталог0Корзина0ИзбранныеКабинет0Сравнение
    d =
    Наш сайт использует куки. Продолжая им пользоваться, вы соглашаетесь на обработку персональных данных в соответствии с политикой конфиденциальности.
    Согласен