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

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

Метки:
  1. timon

    timon Гик

    Это почему так? Самый мелкий 320х240 у меня прекрасно работает от бортового питания, которое из USB или повербанка телефонного.
     
  2. Belkin

    Belkin Гик

    Предупреждение в столь категоричной форме потому, что далеко не все задумываются о возможностях ИП на Ардуино, пока не спалят... ;)
     
    timon нравится это.
  3. casius

    casius Нуб

    Подскажите, как можно передать значение одной глобальной переменной с одной страницы в текстовое поле на другой странице внутри NEXTION?
     
  4. Belkin

    Belkin Гик

    <ваша страница>.<текстовое поле>.txt = <переменная>.val
    Можно
    <ваша страница>.<текстовое поле>.txt = <страница с переменной>.<переменная>.val

    Только не забывайте о соответствии типов.
    Если переменная числовая, то в текстовое поле ее не запихнете, надо преобразовывать в txt
     
  5. Andrew_L

    Andrew_L Нуб

    Господа, подскажите пожалуйста, можно ли в принципе из терминала типа RealTerm итд послать команду Nextion? Дело в том, что через Nextion Editor команды проходят, так же можно получить значение переменной командой get или print. А вот с терминалом засада: Nexton команды не воспринимает, хотя из Nextion в терминал данные идут.К примеру, если кнопка в Nextion что-либо отправляет в UART. Башку себе снес, кучу терминальных программ перепробовал. Буду признателен за совет.
     
  6. ИгорьК

    ИгорьК Гуру

    Можно. Надо только чтобы терминал слал в дисплей именно то, что нужно. Надо ковырять настройки и быть уверенным что ни одного лишнего символа не летят в сторону дисплея.
    У меня получалось, но конкретнее уже нее помню как.
     
  7. Andrew_L

    Andrew_L Нуб

    Игорь, подскажите,пожалуйста,в какую сторону ковырять.Если я правильно понял, ковырять настройки темнила?Каким терминалом вы пользовались? Я попробовал эхо, вернулось все вроде корректно,я понимаю, что это корректно для самого терминала, но не для Nextion.
     
  8. ИгорьК

    ИгорьК Гуру

    Завтра скажу
     
  9. Andrew_L

    Andrew_L Нуб

    OK, спасибо:)
     
  10. ИгорьК

    ИгорьК Гуру

    У меня стоит две программы, следовательно как минимум одной из них мне удавалось "питать" Nextion:

    upload_2019-3-1_10-10-45.png

    upload_2019-3-1_10-11-34.png

    Сейчас дисплея нет - точнее не проверю.
     
  11. Andrew_L

    Andrew_L Нуб

    Спасибо, попробую CoolTerm:)
     
  12. ИгорьК

    ИгорьК Гуру

    parovoZZ нравится это.
  13. Andrew_L

    Andrew_L Нуб

    Это идея ) У меня есть анализатор на 16 каналов с декодером всех возможных шин. Посмотрю что гонит Edit Nextion в UART. А CoolTerm тоже не завелся((
     
  14. PaulIV

    PaulIV Нерд

    Всем привет.
    Собственно, что хотел, я уже сделал в железе. Однако, хорошая мысля приходит...
    Дисплей, например, через 5 минут уходит в сон, а Ардуинка могла бы и отдохнуть.
    Зачем ей слать данные, когда дисплей спит?!
    Я имею ввиду - как отследить, скажем, 299 секунду? И тогда послать команду Ардуинке...
    Код (C++):
    thsp=300 // спящий режим наступит через 300 секунд (max 65535)
    thup=1 // касание пробудит дисплей
    ........... что-то, что укажет Ардуинке - "отдохни" пока дисплей спит .......
    wup=0 // проснувшись, дисплей всегда будет показывать page 0
    Может быть, кто подкинет идейку...
    Заранее спасибо
    P.S.
    Игорь, спасибо Вам за эту тему!!!! Все Ваши рекомендации, примеры я применил.
     
  15. parovoZZ

    parovoZZ Гуру

    По вачдогу. Но вачдог в АВР умеет максимум отмерять 8 секунд. Поэтому заводим отдельную переменную в роли счетчика под это дело и отмеряем наш период. Период можно сделать и 1 сек, тогда при переполнении переменной мы отмерим 256 сек (это очень примерно, т.к. RC осциллятор вачдога гуляет очень сильно.
     
  16. PaulIV

    PaulIV Нерд

    parovoZZ - спасибо.
    Виноват, вероятно, я изложил скверно. Речь о настройках дисплея.
    https://www.itead.cc/wiki/Nextion_Instruction_Set
    У него, если я правильно понимаю, такой команды -wachdog- нет :(
    Как можно отследить этот таймер thsp ?
    И допустим, написав:
    Код (C++):
    if(thsp==299)
    {
    print "#b51" // перестать слать данные на дисплей
    print ";"
    }
    получаем желаемое...
    Ну, это я не проверял, но чую, что не сработает.
     
  17. Belkin

    Belkin Гик

    Включите таймер на 299 секунд и "усыпите" дисплей.
    По событию таймера "разбудите" его и посылайте ардуину подальше шлите данные в ардуину... ;)
     
  18. PaulIV

    PaulIV Нерд

    Belkin - спасибо
    Это вариант - создать таймер на ... Упс! Но тут сталкиваемся с тем, что таймеры tm0-tm5 в Nextion имеют параметр tim в миллисекундах, т.е. максимум на 65534 мсек. = 1 минута и 5 сек с хвостиком... (если я ошибаюсь, поправьте меня). Возможно, есть хитрость, как сделать длительность таймеров больше 65534... :)
    Однако, созданный таймер tm... будет срабатывать каждые 65 секунд вне зависимости касаюсь я дисплея или нет.

    У команды thsp есть плюс - она запускает таймер с момента, когда прекратили касаться дисплея.
    Не касались, например, 300 секунд и дисплей гаснет.
    Потом, коснулся экрана, он "оживает" и шлет инфо Ардуинке - "я не сплю". Это у меня работает.
    Беда в том, что пока дисплей "спит", Ардуинка шлет в UART данные, которые спящему дисплею ни к чему.
    Жалко, что в редакторе не реализован "сон" (не возникает темный прямоугольник). Проверять "сон" можно с загрузкой кода в дисплей...

    Но все равно спасибо, что откликнулись!
     
  19. Belkin

    Belkin Гик

    Подсчитывайте количество событий таймера.
    В событиях таймера инкрементируйте значение переменной (добавьте ее на этой же странице).
    Поставьте в настройках таймера 60000.
    При достижении переменной ==5 (300 сек) выполняйте нужное действие.
     
  20. PaulIV

    PaulIV Нерд

    Всем привет.
    Нет в жизни счастья :( - создали таймер, подсчитываем количество событий....
    И понимаем, что этот таймер живет только на этой странице. Перешел на другую страницу и ... напрасный труд.
    Возможности повторить такой же таймер для всех страниц уже нет (6 таймеров на страницу максимум).

    А thsp распространяется на все страницы.
    Полагаю, что простого решения нет.
    Всем удачи