Не могу создать объект

ragnar
Offline
Зарегистрирован: 29.11.2016

Добрый день!

Подскажите пожалуйста новичку. Пытаюсь подключить панель Nextion .

Вот код:

#include <SPI.h>
#include <Wire.h>
#include <hmi.h>              
#include <SoftwareSerial.h>
#include <Nextion.h>
SoftwareSerial Nextion(2, 3);

Nextion myNextion(nextion,9600);    //РУГАЕТСЯ НА ЭТУ СТРОКУ

Выдает ошибку:

pro_ex5_NX:10: error: 'Nextion' does not name a type

exit status 1
'Nextion' does not name a type

Что я делаю не так? Библиотеки загрузил, подключил. Сделал по примеру из интернета.

Помогите пожалуйста.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Для начала Вы неправильно выложили код. Вот как Вам отвечать? Ошибка в строке № ХЗ?

#include <SPI.h>
#include <Wire.h>
#include <hmi.h>              
#include <SoftwareSerial.h>
#include <Nextion.h>
SoftwareSerial Nextion(2, 3);

Nextion myNextion(nextion,9600);    //РУГАЕТСЯ НА ЭТУ СТРОКУ

А теперь, смотрите. В строке 6 Вы используете Nextion в качестве имени переменной типа SoftwareSerial. А в строке 8 Вы тот эе самый Nextion используете в качестве имени типа.

Вы уж определитесь, что она у Вас тип или переменная.

ragnar
Offline
Зарегистрирован: 29.11.2016

Все понял. Спасибо!

ragnar
Offline
Зарегистрирован: 29.11.2016

Здравствуйте! Снова я.

Изменил я имена. Вот код:

#include <Wire.h>
#include <SoftwareSerial.h>
#include <Nextion.h>    

SoftwareSerial nex(2, 3);//  pin 2 - передача ,pin 3 прием
Nextion myNextion(nex, 9600); //---->>> Не создает он этот обьект


void setup() 
  {
    Serial.begin(9600);
    myNextion.init();
  }

void loop() 
{
  
    myNextion.setComponentText("t0", "Low battery");
    myNextion.setComponentText("t3", "<2.59V"); 
    myNextion.setComponentText("t4", "0");
    myNextion.setComponentValue("j0", 0);
   }
.........

Вот такие ошибки выдает:

sketch_nov30a:6: error: 'Nextion' does not name a type

C:\Documents and Settings\evg\Arduino\sketch_nov30a\sketch_nov30a.ino: In function 'void setup()':

sketch_nov30a:12: error: 'myNextion' was not declared in this scope

C:\Documents and Settings\evg\Arduino\sketch_nov30a\sketch_nov30a.ino: In function 'void loop()':

sketch_nov30a:18: error: 'myNextion' was not declared in this scope

exit status 1
'Nextion' does not name a type

Что я не так сделал, подскажите пожалуйста. Я хочу считывать введенные значения с панели и выводить на панель кое какие данные. Но почему то у меня не получается.

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

а библиотеку подключили?

  #include <Nextion.h>   

 

ragnar
Offline
Зарегистрирован: 29.11.2016

Да, третьей строкой

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

вопрос был про скачивание, и установке библиотеки в нужную директорию ?

ragnar
Offline
Зарегистрирован: 29.11.2016

меню Sketch > Import Library. В самом верху выпадающего списка  пункт Add Library (Добавить библиотеку).

Версия Ардуино 1.6.13. Проверил, он сам распаковал и добавил что нужно.

Брал пример https://ongroup.ru/nextion_arduino_mysli_idei_chast_1.html

И подобных примеров много. Переустанавливал Ардуино IDE, перезаливал библиотеки. Не помогло.

Вот пример кода из сслылки:

#include <SoftwareSerial.h>

#include <Nextion.h>

SoftwareSerial nextion(2, 3);// Nextion TX to pin 2 and RX to pin 3 of Arduino
Nextion myNextion(nextion, 9600); //create a Nextion object named myNextion using the nextion serial port @ 9600bps

void setup() 
{
  Serial.begin(9600);
  myNextion.init();
}



void loop() 
{
myNextion.setComponentText("t0", "Hello");

  delay(1000);

  for(int i=0;i<100;i++)

  {int value = i;

  myNextion.setComponentText("t0", String(value));

  delay(1000);

  }

}

У меня не работает. Открывал файл Nextion.h, я так понял в нем нет описания классов. Он только доп библиотеки подкидывает. А у Вас нет примера считывания с дисплея значения. Мне хотя бы мини пример. Понять методы обращения к данным панели. Я больше на Delphi с базами работал, проекты в S7 создавал. В си поверхностно

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, там же ясно написано - "'Nextion' does not name a type". ну, нету такого типа данных. Нету и взять негде. С чего Вы взяли, что он у Вас есть? Вы его где-то определили? Думаете он есть в библиотеке? так нету. Документация по этой библиотеке хорошая, примеров много читайте.

ragnar
Offline
Зарегистрирован: 29.11.2016

А как тогда этот пример делался? Те же библиотеки. И такой пример не один. А вот описания методов нет. Ладно, буду искать более простой пример, чтоб вникнуть в суть.

Спасибо!

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Понимаете, компилятор Вам говорит, что такого типа нет. Значит. его нет.

Что касается того "как тот пример делался?", так я не знаю какую именно библиотеку они использовали. Сходу я этого там не увидел, а читать столько букв ... Вполне возможно, что не ту, что у Вас.

Вы бы лучше взяли пример из "своей" библиотеки. И мне дайте ссылку на Вашу библиотеку, если хотите

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

ЕвгенийП пишет:

И мне дайте ссылку на Вашу библиотеку, если хотите

я запретил.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

ТС! Вы поставили НЕ ТУ библиотеку. Вы поставили полную и большую, а пример писался под "упрощенную" ссылка на нее есть в конце материала, указанного Вами. И да, там все написано по английски.

ragnar
Offline
Зарегистрирован: 29.11.2016

Спасибо! Разобрался. Раньше с библиотеками не работал. Название одно, а содержание я не посмотрел.

Всем спасибо!

RezhAuto
Offline
Зарегистрирован: 19.03.2017

ragnar пишет:

Спасибо! Разобрался. Раньше с библиотеками не работал. Название одно, а содержание я не посмотрел.

Всем спасибо!

и где была загвоздка?????

ragnar
Offline
Зарегистрирован: 29.11.2016

Не мог создать объект nextion, т.к. в новой библиотеке нет описания к нему. Старая библиотека решила все вопросы. Мне она больше по-душе. В новой как-то все сложнее...

RezhAuto
Offline
Зарегистрирован: 19.03.2017

[quote=ragnar]

Не мог создать объект nextion, т.к. в новой библиотеке нет описания к нему. Старая библиотека решила все вопросы. Мне она больше по-душе. В новой как-то все сложнее...

тоже сменил библиотеку и получилось вывести на экран

ragnar
Offline
Зарегистрирован: 29.11.2016

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

RezhAuto
Offline
Зарегистрирован: 19.03.2017

[quote=ragnar]

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

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

поможешь если что советом?

ragnar
Offline
Зарегистрирован: 29.11.2016

а что вывести нужно?

например: 

myNextion.setComponentValue("page0.n21",count );

вывод на страницу с индексом 0, в компонент "n21" значение счетчика 

RezhAuto
Offline
Зарегистрирован: 19.03.2017

[quote=ragnar]

а что вывести нужно?

например: 

myNextion.setComponentValue("page0.n21",count );

вывод на страницу с индексом 0, в компонент "n21" значение счетчика 

пока нужно температуру вывести с нескольких датчиков в разные окошки

RezhAuto
Offline
Зарегистрирован: 19.03.2017
#include <SoftwareSerial.h>
#include <Nextion.h>
 
float temp;
int tempPin = 1;
const int led=9;
SoftwareSerial nextion(2, 3);// Nextion TX to pin 2 and RX to pin 3 of Arduino
 
Nextion myNextion(nextion, 9600); //create a Nextion object named myNextion using the nextion serial port @ 9600bps
 
void setup()
{
  pinMode(led, OUTPUT);
 
 
  Serial.begin(9600);
  myNextion.init();
}
 
void loop(){
  digitalWrite(led, HIGH);
  delay(1500);
  digitalWrite(led, LOW);
  delay(1500);
  temp = analogRead(tempPin);
  temp = temp * 0.48828125;
  Serial.print(temp);
  Serial.print("*C");
  Serial.println();
  delay(500);
  myNextion.setComponentText("t0", String(temp));
  delay(500);
}
мой первый скетч)))))
ragnar
Offline
Зарегистрирован: 29.11.2016

ну, все просто. добавляешь компоненты типа number в эти окошки, в свойстве vscope ставишь global, далее по примеру выше -- myNextion.setComponentValue("page0.n0",x );

page0 - страница с номером

n0  - имя переменной, смотри, чтоб не повторялись

x - это то, что ты хочешь туда внести

Можно "закидывать" только целые числа, так что смотри.

Это как один из вариантов. Можно выводить в текстовое поле. Тогда нужно будет преобразовать в ардуино и передавать числовое уже как текст. Как нравиться.

RezhAuto
Offline
Зарегистрирован: 19.03.2017

ragnar пишет:

ну, все просто. добавляешь компоненты типа number в эти окошки, в свойстве vscope ставишь global, далее по примеру выше -- myNextion.setComponentValue("page0.n0",x );

page0 - страница с номером

n0  - имя переменной, смотри, чтоб не повторялись

x - это то, что ты хочешь туда внести

Можно "закидывать" только целые числа, так что смотри.

Это как один из вариантов. Можно выводить в текстовое поле. Тогда нужно будет преобразовать в ардуино и передавать числовое уже как текст. Как нравиться.

спасибо на досуге поэкспериментирую

ragnar
Offline
Зарегистрирован: 29.11.2016

Ну, в чем проблема?

myNextion.setComponentText("page0.t0", String(temp));

ragnar
Offline
Зарегистрирован: 29.11.2016

удачи! пиши если что, помогу, чем смогу)))

RezhAuto
Offline
Зарегистрирован: 19.03.2017

ragnar пишет:

удачи! пиши если что, помогу, чем смогу)))

Привет график не пробовал строить?

ragnar
Offline
Зарегистрирован: 29.11.2016

не, график мне не нужен. Но на ютубе были примеры с графиками, много. Поищи.

RezhAuto
Offline
Зарегистрирован: 19.03.2017

ragnar пишет:

не, график мне не нужен. Но на ютубе были примеры с графиками, много. Поищи.

так то тоже не нужен так для развития гругозора да и панель помучать)))

смотрел на ютубе ни чего конкретного не нашёл

ragnar
Offline
Зарегистрирован: 29.11.2016

было. лучше ищи. ссылки мне отключили))), так что искать мне нет смысла. на FL-proge  чувак метеостанцию делал. там три урока было