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

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

Метки:
  1. Mifodiay

    Mifodiay Нуб

    Добрый день всем!
    Я уже спашивал в частной беседе совета. Но ничего не вышло. Решил тут спросить у сообщества. Ответ тут есть. Подскажите почему в моем примере я не могу установить время. Думаю вся проблема в том как я пытаюсь парсить эти значения на стороне ардуино. Нужно правильно собрать эту строку и парсировать. В моем случае я отправляю несколько строк, но думаю нужно одной максимум двумя Time and Data.Поэтому прошу помощи в данном вопросе.Библиотета RTClib . Надеюсь что кто подскажет как быть в данной ситуации. В архиве скетч и файл hmi.
     

    Вложения:

    • time_set_2.zip
      Размер файла:
      11,8 КБ
      Просмотров:
      259
    Последнее редактирование: 23 фев 2020
  2. Moidodyr

    Moidodyr Нерд

    Здравствуйте.
    Два раза перечитал всю тему. Пытаюсь в симуляторе передать код по UART на дисплей, чтобы менялось текстовое поле, как на примере на первой странице. Все делаю как там написано, но текстовое поле не меняется. Цифровые поля меняются, цвет поля тоже могу поменять а текст нет. Дисплей еще в пути, решил потренироваться. Почти все получается, а с текстом засада. Посоветуйте, что я делаю не так? Поле глобальное, посылаю вот это t0.txt="12.34"0xff0xff0xff
     
  3. Mifodiay

    Mifodiay Нуб

    Разберись как это работает
    void printNextion(const char* data, String top, String page = "0"){
    String spage = "page"+page+"."+top+".txt=\"";
    Serial.print(spage);
    Serial.print(data);
    Serial.print("\"");
    Serial.write(0xFF);
    Serial.write(0xFF);
    Serial.write(0xFF);
    }
    вот это и отпрпвляет в монитор. Эта функция расписана в примере птичника на 1 странице. Скачай и разберись. А так же посмотри что такое парсинг. У меня в моем примере с ним проблемка
     
  4. Moidodyr

    Moidodyr Нерд

    В общем дела обстоят так. Я дал мало информации, за что извиняюсь.
    Программировать начал совсем недавно и, в силу обстоятельств, на С и сразу STM32. Так вот, контроллер принимает команды с симулятора панели и адекватно реагирует, и отправить в панель с контроллера я могу любую текстовую строку. Мне нужно, чтобы при получении , например, этой
    t0.txt="12.34"0xff0xff0xff строки, как на первой странице, поле t0 изменило txt. Панель настроена так же, как на первой странице. Пишу в симуляторе Nextion Editor t0.txt="12.34"0xff0xff0xff или отправляю с контроллера, в итоге ничего не меняется в поле t0. Где копать? хз! И еще. Ввожу в левом окне симулятора page0.n0.bco=128+0xff0xff0xff поле меняет цвет, а если такая же строка приходит от контроллера, в правое поле симулятора, поле n0 цвет не меняет. В каком формате должно прийти сообщение от контроллера, чтобы панель поняла. Извините за глупые вопросы.
     
    Последнее редактирование: 27 фев 2020
  5. Moidodyr

    Moidodyr Нерд

    Перечитал ветку еще раз. Проблема разрешилась, спасибо.
     
    alp69 нравится это.
  6. Mifodiay

    Mifodiay Нуб

    Нашел ответ на свой вопрос, в своей голове спустя 2 недели. Если кому будет интерестно парсинг в приложении. Также есть табличка с пояснением по substring.Может он и кривой но работает. Прочьтя множество статей про парсинт пришел к выводу что сколько людей столько и методов будет.
     

    Вложения:

  7. eskorpio

    eskorpio Нуб

    Народ подскажите,
    Видел на картинках, круговые прогресс бары на некшенах, как их сделать?
    Или ссылкой поделитесь, потому что сам ничего не нашел
     
  8. Добрый день, Игорь.
    Попробовал Ваш пример, описанный выше. Со строковыми переменными (передача строки из Ардуино в текстовое поле Nextion) это у меня работает. А вот число никак не идёт. Что может быть не так?
    Код (C++):
    String d = "1234";
    printNextion(d.c_str(),"x0","0");
    printNextion(d.c_str(),"n0","0");
     
  9. был невнимателен
    "данные, причем если это String, то в кавычках, а если это цифровая информация, то четыре байта данных"
     
  10. ... всё-равно не пошло
    Код (C++):
    byte d[] = {0,0,0,0};
    d[2] = 3;
    printNextion(d,"x0","0");
     
     
  11. ИгорьК

    ИгорьК Гуру

    Там же и написано:
    upload_2020-8-31_9-27-26.png
    Мой пример только для передачи текста. Float и отрицательные числа не передать никак, а отдельно с целыми работать смысла не видел. Дисплей отлично парсит текст в числа.
     
  12. так и текст не пошёл, как писал выше
     
  13. у них есть тип вывода информация десятичного, где один разряд выделен после дес точки.
    но передавать туда нужно целое. мне подходит
    и еще есть вопрос: как передавать значения в переменные?
     
  14. ИгорьК

    ИгорьК Гуру

    Тут два варианта. Либо сделано все таки не как у меня написано, либо с тех по что-то изменилось.
    Все что изменилось - искать здесь: https://nextion.tech/instruction-set/
     
  15. эту штуку видел, буду разбираться.

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

    ИгорьК Гуру

    Измените парадигму. Передача данных через текстовое поле - типовой, унифицированный процесс, ибо позволяет взаимодействовать разным устройствам.
    Привыкните к этому, если не хотите стать "тру ардуинщеГом". Можно долго упираться, не признавая, например, json, но когда-нибудь количество передаваемых данных превысит ваши временные возможности закатывать их "напрямую, в переменную" в каждое конкретное устройство.
     
  17. ИгорьК

    ИгорьК Гуру

    Последнее редактирование: 31 авг 2020
    Михаил123 нравится это.
  18. переделал на :
    Код (C++):
    String spage = "page"+page+"."+top+".val=";//\"
        Serial3.print(spage);
        Serial3.print(data);
        //Serial3.print("\"");
        Serial3.write(0xFF);
        Serial3.write(0xFF);
        Serial3.write(0xFF);
    и всё пошло )))
    конечно, "utoa" тоже пригодилось
    теперь 2 процедуры, одна на отправку текста, другая - на отправку цифры
     
    Последнее редактирование: 31 авг 2020
    ИгорьК нравится это.
  19. сделал чтение порта от дисплея, оттуда постоянно валится комплектом:
    Пришло от некстион 255
    Пришло от некстион 26
    Пришло от некстион 255
    Пришло от некстион 255
    что это может быть? или есть?
     
  20. ИгорьК

    ИгорьК Гуру

    То что вы и приказали ему делать. Или вы дисплей украли? :)
    Дисплей сам по себе ничего не гонит в порт.