Дисплей Nextion: азы. Arduino, ESP8266.

Тема в разделе "Глядите, что я сделал", создана пользователем ИгорьК, 9 авг 2016.

Метки:
  1. DIYMan

    DIYMan Guest

    Есть ещё один вариант - поставить перед монитором мужскую такую лупу :)

    stock-photo-the-guy-looks-through-the-big-magnifier-27412039.jpg
     
  2. Sadesign

    Sadesign Нерд

    А существует возможность как-то по-простому (средствами штатной библиотеки, например) увеличить скорость порта при взаимодействии с Ардуино?
     
    Последнее редактирование: 19 дек 2017
  3. Sadesign

    Sadesign Нерд

    Что-то опять не идет процесс. Подскажите, а разве в Nextion нельзя с одной страницы обращаться к глобальным переменным, расположенным на другой странице? Хочу, чтоб картинка менялась в зависимости от переменной.
    Смысл такой:
    На странице есть картинка p1 и таймер. На другой странице есть переменная va_fan1. Мне нужно, чтоб по таймеру проверялась переменная va_fan1 и в соответствии с её состоянием изменялась бы картинка на моей странице. Но, я так понял, если страница не активна, то и переменная на ней не обновляется. Соответственно не меняется и моя картинка.
    Посоветуйте что-нибудь.
     
  4. DIYMan

    DIYMan Guest

    В точку.
    Решение в лоб - на каждой странице завести по такой переменной и с дуньки слать на все страницы в эту переменную.
     
  5. ИгорьК

    ИгорьК Гуру

    Нет. Тиражировать ее с первой принудительно. Или копировать при открытии соответствующей.
     
  6. DIYMan

    DIYMan Guest

    Надо пробовать, навскидку я уже и не упомню многого, что там к чему. Знаю только, что в эмуляторе всё решается на раз, надо только не лениться, а пробовать.
     
  7. ИгорьК

    ИгорьК Гуру

    Зачем? Можно спросить на форуме и найдётся доброхот- разжует.
     
    DIYMan нравится это.
  8. Sadesign

    Sadesign Нерд

    У Ардуино заметил забавную особенность - когда она шлет переменные на неактивную страницу, весь код притормаживается. Как только на дисплее открываешь страницу с переменными - все нормально. В чем дело, пока не разобрался. )
     
  9. Sadesign

    Sadesign Нерд

    Как будто это что-то плохое. )
    А если серьёзно, то я и пытаюсь вникнуть и разобраться. Даже если кто-то и разжует - никому хуже не будет. Вот Вы, к примеру, уже много чего полезного разжевали. )
     
  10. DIYMan

    DIYMan Guest

    SoftwareSerial для соединения с Nextion юзаете? Если да - не пробовали на аппаратном UART?
     
  11. Sadesign

    Sadesign Нерд

    Как раз аппаратном подключаюсь. Что может мешать Ардуине - ума не приложу. Даже сделал вообще пустую страницу. Перехожу на нее и получаю тормоза. Вернее, я так понимаю, тормоза возникают не от того, что я на какую-то страницу перехожу, а от того, что ухожу с главной, где у меня есть переменные.

    Вот сейчас посмотрел - при открытии любой страницы (даже пустой) в Serial какой-то мусор начинает лететь. Видимо, Ардуина пытается его обрабатывать и подвисает.
     
    Последнее редактирование: 20 дек 2017
  12. DIYMan

    DIYMan Guest

    Да ну какая-то дичь, если честно. Ясно только одно - такие вещи надо исследовать, пытаться воспроизвести на минимальном примере, чтобы понять, почем так, а не иначе. Без этого никак, собственно. Ну а уже потом, на основе анализа - делать вывод, что поменять - возможно, подход к решению задачи был выбран неверно. Короче - дьявол скрыт в деталях :)
     
  13. Sadesign

    Sadesign Нерд

    Полностью согласен. ) Вот, как только открываю любую страницу, кроме главной (даже абсолютно пустую), тут же получаю в порт что-то вроде этого:
    777.png
     
  14. DIYMan

    DIYMan Guest

    У вас явно что-то нездоровое происходит. Попробуйте как я сказал - пустой проект для Nextion с парой страниц и переключением между ними по кнопкам, никаких выводов в порт от Nextion в событиях, просто - переключение между страницами. Закачайте в дуньку тестовую прошивку, а в Nextion - тестовый проект, и посмотрите - будет ли такая дичь в порту.
     
  15. Sadesign

    Sadesign Нерд

    Нет, на простых проектах такого нет. Определил, что вредят мот конструкции типа:

    mySerial.print((String)"va55.val=1"+char(255)+char(255)+char(255));

    Так я присваиваю значения переменным, которые в Nextion. Если такие строчки заменить на библиотечный вариант типа:

    myNextion.setComponentValue ("val55", 1);

    то в порт обратно уже ничего не лезет. Но библиотечная функция зато сама тормозная до предела, что тоже не вариант. А вот почему при отправке моего варианта:

    mySerial.print((String)"va55.val=1"+char(255)+char(255)+char(255));

    я получаю такое в порте, мне непонятно. Причем, на всех страницах, кроме той, на которой находится эта переменная val55.
     
  16. DIYMan

    DIYMan Guest

    Вывод у вас, конечно, дикий :) Замените вот это
    Код (C++):
    mySerial.print((String)"va55.val=1"+char(255)+char(255)+char(255));
    на хотя бы вот это:
    Код (C++):
    mySerial.print(F("va55.val=1"));
    mySerial.write(0xFF);
    mySerial.write(0xFF);
    mySerial.write(0xFF);
    И вроде вы говорили про аппаратный UART - что за mySerial? ;)
     
  17. Sadesign

    Sadesign Нерд

    Эту чудесную запись я скопировал из какого-то урока. Так и учимся - обратным ходом. Сначала пишем чушь, потом, благодаря советам, разбираемся, почему так нельзя делать. )
    Но зато появилась ясность в моей проблеме. Итог такой:

    1. Нельзя обращаться к переменной, если она в Nextion отсутствует в принципе или находится на неактивном экране и при этом не является глобальной.
    2. Нельзя обращаться к переменной на неактивной странице просто по имени, даже если переменная глобальная и имя уникально. Обязательно прописывать полный путь, включая страницу: "Page0.va1.val=1". Причем, запись с пробелами "Page0. va1.val = 1" работать не будет.
    В обоих указанных случаях дисплей начинает отправлять в порт сообщения (вероятно, об ошибке) и тормозит Ардуино.

    Возможно, для многих это очевидно, но мне пришлось разбираться с этим. За помощь спасибо! )
     
  18. ИгорьК

    ИгорьК Гуру

    - Я писал о правилах обращения к переменным.
    - Отключите вывод дисплея сообщений об ошибках.
     
  19. Sadesign

    Sadesign Нерд

    Это ж нужно 0 поставить в системной переменной? А где почитать про то, как изменять эти системные переменные? Или подскажите.
     
  20. ИгорьК

    ИгорьК Гуру

    Help от Nextion IDE вам в помощь.