Всем привет!

Что мешает радиолюбителям заменить маленький и малоинформативный oled дисплей своего хотспота на крупный и информативный Nextion? Ну конечно же отсутствие собранной в одном месте информации на этот счёт! В этой статье я собрал полное руководство по Nextion и его использованию совместно с хотспотом! Кстати, если вам лениво её читать, можете посмотреть эту же информацию в видеоформате! ;)

СМОТРЕТЬ ВИДЕО

Несколько слов о том, что же такое Nextion, где найти информацию, какие бывают, и вобще - почему именно Nextion а не что-либо другое? Есть же масса более доступных по цене вариантов. Например масса TFT дисплеев с соизмеримыми размерами но в два а то и в три раза дешевле!

Давайте пробежимся по этим вопросам, но не сильно глубоко, чтобы не устроить из небольшого руководства мега-обзор на полтора часа.

Если нас интересует Nextion то и дорога нам на сайт производителя.

На сайте nextion.tech есть вся необходимая информация для сравнения и выбора а так же вся подробная техническая информация. Естественно есть и страничка с очень подробным инструкций позволяющих написать буквально любой интерфейс на базе дисплея Nextion.

Глубокое обсуждение темы программирования этих дисплеев, уходит далеко за рамки темы этой статьи, но если собрались что-то поправить или переделать, стартовать вам придётся однозначно отсюда. Мы же рассмотрим какие бывают дисплеи, взяв информацию буквально из первых рук.

Всего существует три серии дисплеев:

basic серия enhanced серия intelligent серия

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

Enhanced серия более продвинута и имеет на борту автономные часы со слотом под батарейку для их питания, и восемь ножек gpio которыми можно управлять, а так же более мощный процессор и больший объём памяти. Цвет платы у этих дисплеев - чёрный.

Intelligent серия плюс к этому имеет еще более продвинутый процессор настолько, что это позволяет воспроизводить видео и аудио и собрана эта серия на платах красного цвета.

В рамках нашей задачи, нам интересны два параметра - номер модели дисплея и его разрешение. Остальные конечно же значимы, но не столь важны, поскольку прошивка расчитана как правило именно на basic серию.

Понятно, что есть такие параметры как частота процессора и объём памяти, но повторюсь, это лишь, если вы задумали нечто большее, чем просто дисплей для хотспота.

Немного о самом Nextion и почему именно он.

Всё дело в том, что он не просто дисплей. Это микроконтроллер stm32 с дисплеем. Этот микроконтроллер и обслуживает дисплей, а нам требуется лишь отправлять данные по последовательному порту, которые обрабатываются программой прошитой в микроконтроллер и выводятся согласно прошивки на экран.

Это очень удобный подход, как с точки зрения программирования - программный код распараллелен, так с точки зрения необходимой коммутаци, ведь проводов абсолютный минимум.

Вот еще раз, для примера, количество проводов в сравнении.

Да, кстати, дисплей сенсорный и может получать данные о нажатиях и отправлять их управляющему устройству.

Надеюсь я рассказал достаточно, для понимания основ, а теперь перейдём к делу.

Первое, что нам потребуется это установить программу Nextion Editor. Заходим на nextion.tech, идём в раздел download и скачиваем последнюю версию.

В списке поддерживаемых операционных систем только Windows, и если у вас другая операционка, вспоминайте ваш любимый способ разобраться с этим неудобством.

На хабре вроде была статья как запустить nextion editor под вайном на линукс. Но не будем отвлекаться. Установка довольно тривиальна, никаких особых настроек не требуется так, что буквально через пару минут, получим заветный значок на рабочем столе.

Одна задача решена. Мы почти у цели!

Теперь нам нужна прошивка.

Большая часть ссылок при поиске прошивок для nextion для mmdvm ведут на facefook.

И это правильно, поскольку одно из самых больших сообществ действительно тут.

Файловый архив группы содержит большое количество прошивок. Но лично меня напрягает ковыряться там в поисках того, что нужно мне. Ведь большинство прошивок с невнятным описанием, которое еще нужно поискать в ленте. Так, что зачастую приходится прошивать дисплей и смотреть на результат. Часть прошивок попадается с откровенно кривым интерфейсом. Не забываем и о том, что прошивки пишутся с учётом того, на каком хотспоте будут работать. Для дуплексного хотспота, требуется отображать оба тайм-слота, а для симплексного - нет. Это безусловно должно быть учтено в интерфейсе, а прошивка должна иметь соответствующие метки. К сожалению с этим здесь полный бардак! Из того, что предлагается в группе, мне наиболее понравилась раскладка от SV5BYP. Но как ни странно, я так нигде и не нашел какого-то конкретного репозитория, где можно было бы взять его проекты, что называется из первых рук.

Пришлось хорошенько прошерстить интернет в поисках нужных мне файлов.

На моём сайте, в статье к этому видео, выложено несколько версий его раскладки.

Позже заведу на гитхабе свой репозиторий на эту тему. В общем - следите за новостями. Из репозиториев которые можно было бы посоветовать, это репозиторий от PD0DIB.

Коллега довольно активно развивает свою версию.

Я не просматривал его код глубоко, но несколько раз устанавливал и в целом мне очень понравилось как она работает. Впрочем, всё же рекомендую вам поискать прошивку самостоятельно. Возможно я что-то упустил, а возможно вы сможете найти более интересный и удобный вариант именно для вас. А может быть к моменту, когда вы будете читать эту статью или смотреть видео, появится что то новенькое.

В общем, если считаете, что я предлагаю не совсем то, что надо или вы знаете более удобный вариант, напишите об этом в комментариях под видео. Это будет интересно и мне и всем зрителям канала.

Но давайте уже зальём прошивку.

Для лучшего понимания того, как между собой совместимы дисплеи разные по номерам. Я покажу вам один интересный трюк. Он пригодится вам, если будете пользоваться прошивками с фэйсбука или какого либо другого источника, но номер модели и соответственно физический размер, не будет совпадать с дисплеем имеющимся у вас. Главное при этом условие, чтобы совпадало разрешение дисплеев. У меня в тесте будет дисплей NX3224T028. Это дисплей 2.8" с разрешением 320 на 240 пикселей. Давайте предположим, что файла именно под наш дисплей нет, но есть для дисплея NX3224T024. Он так же с разрешением 320 на 240 пикселей а значит его графический интерфейс идентичен дисплею NX3224T028.

Тестируем!

Берём файл проекта для NX3224T024 и открываем его в Nextion Editor.

Всё, что нам требуется изменить, для того чтобы эта прошивка залилась в имеющийся дисплей, это сменить тип дисплея в программе.

Жмём кнопку Device, переходим на вкладку Device и выбираем серию и модель нашего дисплея.

На вкладке Display выбираем ориентацию нашего дисплея.

Если вруг потребуется перевернуть дисплей, выбираем например не 90 а 270 градусов.

Вот собственно и все действия по преобразованию проекта между совместимыми по разрешению дисплеями.

Компилируем и убеждаемся, что собирается всё без ошибок.

Теперь можно через usb-uart переходник подключить дисплей к компьютеру, выбрать com-порт и прошить. Но прошивка с помощью usb, довольно долгий процесс, да и крайне неудобный, в случае если устройство с применением дисплея уже собрано. Поэтому пойдём другим путём и прошьём с помощью microSD флэшки. Для этого потребуется записать файл прошивки на флэшку

Сделаю небольшое отступление. Исходники проекта хранятся в файле с расширением HMI. А вот непосредственно файлы прошивки, в файле с расширением TFT. Чтобы залить прошивку с помощью флэшки, нам потребуется именно файл TFT.

Чтобы получить его идём в меню File

потом TFT File output

нажимаем кнопку Output и копируем из открывшейся папки, появившийся файл, в корневой каталог флэшки.

MicroSD карта, должна быть предварительно отформатирована в Fat32 и должна быть объёмом не более 32Gb. Извлекаем карту из компьютера, устанавливаем в экран и подаём питание.

Процесс прошивки начнётся автоматически и по его окончании будет выведено соответствующее сообщение.

Теперь можно отключить питание и извлечь флэш-карту. При последующей подаче питания, уже без microSD-карты На нём будет отображаться интерфейс свеже-загруженной прошивки.

Сделаю небольшое, но очень важное отступление.

Не факт, что вы приобретёте дисплей, в котором будет прошито наисвежайшее программное обеспечение соответствующее последней версии Nextion editor. Иногда попадаются дисплеи из очень старых партий. Которые при попытке прошивки могут выдать ошибку "Firmware will be upgraded". Чтобы решить эту проблему, нужно зарегистрироваться на сайте производителя, зайти на форум, найти ветку со всеми версиями Nextion Editor.

Скачать и установить Nextion Editor v0.42.

Естественно, предварительно нужно удалить свеже-установленный. Далее нужно создать пустой проект, подключить дисплей через usb-uart переходник к компьютеру и прошить его. В процессе прошивки, программа Nextion Editor автоматически обновит встроенное в дисплей ПО, о чём будет выведено соответствующее сообщение. Последовательно, релиз за релизом обновляйте программу и прошивайте пустой скетч. С каждой такой прошивкой, встроенное ПО так же будет обновляться. А когда дойдёте до актуального релиза, шейте уже не пустой скетч, а прошивку дисплея для вашего хотспота.

Надеюсь, что ваши нервы не сильно пострадали от стресса когда вы увидели сообщение об ошибке. Я вот в первый раз чуть не поседел, думал, что мне продали дорогостоящее фуфло.

Итак, прошивка завершена, осталось подключить дисплей к нашему хотспоту. Тут есть несколько вариантов.

Очевидный вариант - подключить его прямо к модему.

Второй вариант - подключить его к любому свободному usb, используя usb-uart переходник.

Если необходимо смонтировать дисплей в один корпус с модемом, то разумеется, самое разумное решение подключить его прямо к модему и в настройках Pi-star выбрать "modem".

А вот в случае, если дисплей нужно вынести за пределы корпуса, да еще и довольно далеко, то можно использовать usb-uart переходник, подключив его к любому свободному порту малины и выбрать в настройка уже этот порт.

Кстати, если нужно унести дисплей еще дальше, да еще и без проводов, можно осуществить подключение например через bluetooth.

Я играл с таким подключением и мне очень понравилось как это работает.

Хочу немного поправить файлы проекта корпуса для этого решения и в недалёком будущем покажу как повторить такой конструктив. Файлы для самостоятельной печати будут доступны на thingiverse.com, впрочем, как и многие другие мои проекты.

Так, что подписывайтесь на мой youtube-канал и ставьте лайки!

Будет интересно!