Современная электроника №4/2019

ЭЛЕМЕНТЫ И КОМПОНЕНТЫ 35 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 4 2019 Анализ состояния охраны осущест- вляется с помощью кода, внесённого в поле событий таймера tm0 начальной страницы: Выполнение операций управления дверью и освещением обеспечивает код в поле событий для соответству- ющих элементов окна главной стра- ницы: При нажатии кнопок пульта главной страницы модуль Nextion будет форми- ровать сообщения через порт UART бла- годаря командам в поле событий для соответствующих элементов кнопок окна главной страницы. Например, для кнопки «2» применена строка коман- ды printh 32. Полная версия проекта представле- на в дополнительных материалах к ста- тье на сайте журнала www.soel.ru. При желании этот проект можно допол- нить новыми элементами управления и индикации. Перед загрузкой в модуль необхо- димо скомпилировать проект, нажав кнопку Compile в интерфейсе редак- тора. В окне вывода результатов должно отобразиться сообщение об успешной компиляции или о нали- чии ошибок, которые необходимо исправить. Для загрузки проекта с компью- тера в модуль Nextion через порт UART понадобится преобразователь USB-UART. После подключения пре- образователя к модулю необходи- мо нажать кнопку Upload . Процесс загрузки проекта будет отображать- ся в окне программного редактора и на дисплее модуля. После окончания загрузки проект автоматически нач- нёт выполняться и отображаться на дисплее модуля. Поскольку загрузка проекта через порт UART занимает достаточно дол- гое время и требует дополнительно- го оборудования в виде преобразова- стив на ней бегущую строку Scrolling text с информацией и кнопку Button для возврата на главную страницу. Эти эле- менты находятся в окне Toolbox . Свой- ство длины строки txt_maxl для Scrolling text необходимо задать максимально возможным и равным 254. Справоч- ную информацию следует ввести в свойство txt элемента бегущей строки Scrolling в виде текста. Положение и раз- меры строки легко изменяются с помо- щью мышки. Для элемента Button нужно изменить свойство txt на название «Назад» и вве- сти в поле событий Event команду пере- хода на главную страницу в виде стро- ки page1 . Наконец, нужно наполнить элемен- тами главную страницу page1 . Внача- ле следует разместить на ней элемент кнопки Button и изменить его свойство txt на слово «Справка». В окне событий Event для этой кнопки следует ввести команду перехода на созданную ранее справочную страницу в виде строки page2 . Для отображения на главной страни- це текущего времени следует поместить на ней три элемента Number и элемент таймера Timer . В поле свойств таймера следует ввести три строки для передачи данных из внутренних часов реально- го времени в свойства Valume элемен- тов Number в виде строк n0.val=rtc3, n1.val=rtc4 и n2.val=rtc5 . Стоит учиты- вать, что редактор довольно требовате- лен к синтаксису и не допускает лиш- них пробелов в строках команд. Цвет и фон отображаемых цифр времени можно изменить с помощью свойств bco и pco элементов Number . Далее следует разместить на главной странице проекта ещё несколько эле- ментов в соответствии с рисунком 2 – с их помощьюможно будет контроли- ровать охранную систему, управлять открытием и закрытием двери, вклю- чать и отключать освещение, а также эмулировать простой пульт с индика- тором и кнопками управления. Для связи модуля с контролируемым объектом будут использованы порты ввода-вывода GPIO и последователь- ный порт UART. Инициализация пор- тов GPIO производится в поле событий начальной страницы: // Настроить порт GPIO cfgpio 1,2,0 // Вывод pio1 - вы- ход cfgpio 2,2,0 // Вывод pio2 – вы- ход // Охрана if(pio0==0) // Если норма { p0.pic=1 // Зеленый }else // Иначе { p0.pic=2 // Красный } // Дверь pio1=bt1.val // 0-закрыть 1-от- крыть // Свет pio2=bt2.val // 0-отключить 1-включить теля, существует альтернативный спо- соб загрузки проекта с помощью карты памятиmicroSD. Для этого нужно ском- пилировать проект и открыть каталог с файлом загрузки при помощи главно- го меню File → Open builder folder . Далее следует скопировать файл загрузки с именем созданного проекта на пред- варительно отформатированную в FAT32 карту памяти microSD. На ней должен находиться только один файл проекта. Затем нужно установить кар- ту памяти в слот отключённого модуля Nextion и включить его – при этом нач- нётся быстрый процесс загрузки про- екта в модуль. Внешний контроллер управления, подключённый к модулю Nextion через порт UART, может формировать командные строки. Например, для ото- бражения текста на индикаторе моду- ля используется строка следующе- го вида: page1,t4.txt="Произвольный текст...\0xff\0xff\0xff" . Все внешние команды по интерфейсу UART для модуля Nextion должны завер- шаться тремя байтами cо значением 255, т.е. 0xff в HEX-коде. Это позволя- ет модулюNextion идентифицировать посылку как команду и определить её окончание. Кроме того, внешний контрол- лер может формировать любые дру- гие команды, применяемые в модуле Nextion, а также принимать и анализи- ровать информацию от модуля, напри- мер коды кнопок встроенного в проект эмулятора пульта. Модуль Nextion имеет достаточно большой набор команд, подробное описание которых приведено в источ- нике [5]. З АКЛЮЧЕНИЕ Благодаря существованию недорогих модулей Nextion и свободного редак- тора программ создание современных и привлекательных человеко-машин- ных интерфейсов становится простым и увлекательным делом, доступным как профессионалам, так и начинающим программистам. Л ИТЕРАТУРА 1. https://www.itead.cc/display/nextion.html 2. www.st.com 3. https://www.itead.cc/wiki/Nextion_HMI_ Solution 4. https://nextion.itead.cc/resources/ download/nextion-editor/ 5. https://www.itead.cc/wiki/Nextion_ Instruction_Set

RkJQdWJsaXNoZXIy MTQ4NjUy