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

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

Метки:
  1. DIYMan

    DIYMan Гуру

    Вам надо подучить основы. В частности, почему в макрос F нельзя заворачивать неконстантные строки и переменные. Если выразился непонятно - разбирайтесь, каждый раз давать вам решение - отбирать у вас возможность научиться самому. Подскажу - дело в круглой скобке.
     
  2. Sadesign

    Sadesign Нерд

    100%.
    И я этим занимаюсь. За помощь спасибо. И да, делать за меня я, естественно, не прошу. Хотя иногда так и получается. )
    Про F я интуитивно понимал, что чушь пишу. Но с чего-то надо начать.
     
  3. Sadesign

    Sadesign Нерд

  4. MAXKIT

    MAXKIT Нуб

    Возможно ли экраном посылать команды в сериал \r и \n (перевод строки)?
     
  5. ИгорьК

    ИгорьК Давно здесь

    Можно
     
  6. MAXKIT

    MAXKIT Нуб

    Логичен следующий вопрос, как их передать?
     
  7. ИгорьК

    ИгорьК Давно здесь

    Самый простой и тупой способ Serial.write(какое-то число).
     
  8. MAXKIT

    MAXKIT Нуб

    А теперь ещё раз мой вопрос прочитайте.
    Не экрану, а экраном. У экрана есть команды "print", "prints", "printh"
     
  9. DIYMan

    DIYMan Гуру

    Код (C++):
    print "123\n"
    Не канает?
     
  10. ИгорьК

    ИгорьК Давно здесь

    Извини, барин.
    printh какоеточисло
     
    issaom нравится это.
  11. MAXKIT

    MAXKIT Нуб

    Нет, ругается на эту строчку
     
  12. MAXKIT

    MAXKIT Нуб

    Спасибо кто откликнулся, способ нашёл
    Код (C++):
    printh 0A
    printh 0D
     
  13. PaulIV

    PaulIV Нерд

    Всем привет.
    Мне нужна подсказка. Смог передать с ардуинки на Nextion инфо от DS3231. На дисплейчике то, что хотел отображается. Проблема с днем недели. Могу настроить, чтобы отображались 3 латинские буквы дня недели. Могу отобразить номер дня недели (0...6). Но хочется сделать чтобы были 2 буквы на кириллице. (ВС,ПН...ПТ). Вроде, как и сделал. Но для того, чтобы обновилась запись из двух букв надо с одной страницы на другую перейти и обратно. Т.е. в режиме оn-line, без перехода со страницы на страницу, буквы не меняются. Может, есть какой рецепт?
    На экране следущее:
    16 : 40 2
    06-02-2018

    2 - это ВТ.
    Код (C++):
    // WeekRTC = "\"" + String(time.gettime("w")) + "\"";  
    // Это в ардуине w - номер дня недели
    ..........
    Это в Nextion
    cov w.txt,n0.val,0 // конвертация String в ЧИСЛО
    va0.val=n0.val
    if(va0.val==0)  // если день недели =0
    {
      t3.txt="ВС"  // на экране будет Воскресенье
    }else if(va0.val==1)  // если день недели =1
    {
      t3.txt="ПН"  // на экране будет Понедельник
    }else if(va0.val==2)  //
    {
      t3.txt="ВТ"  //
    }else if(va0.val==3)  //
    {
      t3.txt="СР"  //
    }else if(va0.val==4)  //
    {
      t3.txt="ЧТ"  //
    }else if(va0.val==5)  //
    {
      t3.txt="ПТ"  //
    }else if(va0.val==6)  //
    {
      t3.txt="СБ"  //
    }
     
     
  14. DIYMan

    DIYMan Гуру

    Подсказка:
    Код (C++):
    ref t0 //refresh component t0
     
  15. PaulIV

    PaulIV Нерд

    Дима, спасибо. Пробовал. Пока не помогло. (возможно, что я еще что-то нахимичил :) а пока не увидел что)
    Буду еще пробовать, проверять что написал...
    Наверное, проще в коде ардуинки создать две буквы ВС и отправить в дисплей. Но не хотел лишнего писать в коде ардуинки.
     
  16. PaulIV

    PaulIV Нерд

    Всем привет.
    Пока не смог исправить то, что ранее написал. Остановился пока на Латинице для дней недели при приёме в Nextion.
    Есть другой вопрос, если у кого будет желание, помогите.
    Сделал страницу по настройке часов в Nextion (см рисунок). При нажатии на кнопку "дискета", в сторону ардуинки уходят актуальные данные (типа) - #C0,35,10,25,11,18,5; Т.е. формат для команды в ардуинке я сделал - time.settime(0,51,21,27,10,15,2); // 0 сек, 51 мин, 21 час, 27, октября, 2015 года, вторник
    А вот c функцией в ардуинке, где надо парсить сообщение ...
    Код (C++):
    void checkCommand(String ins) {
        // У нас информация от Nextion состоит из двух частей,
        // первая буква - идентификатор действия
        // ловим его:
        String first = ins.substring(0,1);
        // А все остальное - данные:
        String last = ins.substring(1);

        //Например "c" - идентификатор установки температуры
        if(first == "c") { // 'c'  ASCII Value: 99
    с этим у меня, виноват, напряг. Может, #ИгорьК , Вы подскажете.
    Заранее всем спасибо.
     

    Вложения:

  17. Lazycat

    Lazycat Нуб

    Дык, время же отображаете? Наверное и двоеточие мигает (по сути меняет цвет). А значит есть таймер. на таймер вешаете и обработку мигания двоеточия и проверку дня недели.
     
  18. ИгорьК

    ИгорьК Давно здесь

    Давно не писал для Си. Там делал пример как парсить типовую посылку. Отправьте все не единым блоком а отдельными командами. Все равно на стороне ардуино будете разбирать. Какая разница как их слать.
     
  19. ИгорьК

    ИгорьК Давно здесь

    Или найдите здесь мой проект инкубатора - там чего только не парсится.
     
  20. PaulIV

    PaulIV Нерд

    Всем привет.
    Этого у меня не было - решил сделаю. Добавил один таймер, указал t0.pco=65504 (желтый) длительность 600, добавил второй таймер, указал t0.pco=0 (черный) длительность 1000. Ну, думаю - шик. Почти анимация :)
    Запустил. Может я чего-то в этом не догоняю? Но эффект меня огорчил... Ну, думаю, надо на пустом проекте опробовать. Сделал тоже самое. :( Фигня полная. У Вас #Lazycat моргает так, как на обычных часах или живёт своей жизнью этот символ : ? Может, я этот китайский продукт не понял? Менял длительности и "дивился на нибо"... Равномерно "мигать" так и не получилось. И с буквами всё так же. Пока со страницы на страницу не передешь/вернешься - не изменяется... :(
     
    Последнее редактирование: 9 фев 2018