Ошибка с кодом " was not declared in this scope"

qwerty13rus
Offline
Зарегистрирован: 05.12.2018
#define BLYNK_PRINT Serial
#define RELE 2

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = ",,,,,,,,,,,,,,,,,,";
char ssid[] = ",,,,,,,,,,,,,,,,,,,,,";
char pass[] = ",,,,,,,,,,,,,,,,,,,,";
BLYNK_WRITE(V3)
{
  int p = param.asInt(); // assigning incoming value from pin V1 to a variable
Serial.println(p);
  // process received value
}

void setup()
{
  pinMode(2, OUTPUT);
  
  digitalWrite(2, 0);
  
  Serial.begin(9600);

  Blynk.begin(auth, ssid, pass);

  }

void loop(){
  int pinValue = p;
 if (pinValue > 250) {digitalWrite(2, 1);
 }
  Blynk.run();
}

 

qwerty13rus
Offline
Зарегистрирован: 05.12.2018

Я так понимаю что я объявил локальную переменную, которая является глобальной, как это исправить? П.С. в ардуино от силы дня 4.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Для начала нужно сообщить, чего Вы хотите добиться.

qwerty13rus
Offline
Зарегистрирован: 05.12.2018

Я хочу добиться того что бы при изменении значения потенциометра от 0 до 250 в приложении Blynk, подавалось напряжении на пин 2. Плата node mcu esp8266

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

qwerty13rus пишет:

я объявил локальную переменную, которая является глобальной

Это Вы сильно!

qwerty13rus пишет:

как это исправить? 

Для начала успокойтесь, выпейте горячего кофе, который является холодным, и спокойно всё обдумайте.

 
qwerty13rus
Offline
Зарегистрирован: 05.12.2018

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

qwerty13rus пишет:

как это исправить? 

Для начала успокойтесь, выпейте горячего кофе, который является холодным, и спокойно всё обдумайте.

 

Уже час сижу думаю. Факт в том что это первый для меня язык програмирования, даже паскаля в школе не было)

qwerty13rus
Offline
Зарегистрирован: 05.12.2018

andriano пишет:

Для начала нужно сообщить, чего Вы хотите добиться.

Я хочу добиться того что бы при изменении значения потенциометра от 0 до 250 в приложении Blynk, подавалось напряжении на пин 2. Плата node mcu esp8266

b707
Offline
Зарегистрирован: 26.05.2017

какая переменная-то - p ? - ну так обьявите ее глобально...

qwerty13rus
Offline
Зарегистрирован: 05.12.2018

b707 пишет:

какая переменная-то - p ? - ну так обьявите ее глобально...

Переменная -p- разве не глобальная?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

qwerty13rus пишет:
b707 пишет:

какая переменная-то - p ? - ну так обьявите ее глобально...

Переменная -p- разве не глобальная?

Нет, она унутре функции.  Вот этой 

BLYNK_WRITE(V3)
11 {
12   int p = param.asInt(); // assigning incoming value from pin V1 to a variable
13 Serial.println(p);
14   // process received value
15 }

 

qwerty13rus
Offline
Зарегистрирован: 05.12.2018

Не знал, спасибо!

qwerty13rus
Offline
Зарегистрирован: 05.12.2018
#define BLYNK_PRINT Serial
#define RELE 2

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = "**************";
char ssid[] = "****************";
char pass[] = "**************";
int p;
BLYNK_WRITE(V3)
{
  int p = param.asInt(); // assigning incoming value from pin V1 to a variable
Serial.println(p);
  // process received value
}

void setup()
{
  pinMode(2, OUTPUT);
  
  digitalWrite(2, 0);
  
  Serial.begin(9600);

  Blynk.begin(auth, ssid, pass);

  }

void loop(){
  int p;
 if (p > 250) {digitalWrite(2, 1);
 } else {digitalWrite(2, 0);
 }
  Blynk.run();
}

Объявил глобальную переменную, но почему то ничего не работает) Перефразирую вопрос, что нужно сделать что бы все работало так, что бы при изменении значения потенциометра от 0 до 250 в приложении Blynk, подавалось напряжении на пин 2. Плата node mcu esp8266.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

а вот так: 

#define BLYNK_PRINT Serial
#define RELE 2

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = "**************";
char ssid[] = "****************";
char pass[] = "**************";

int p;

BLYNK_WRITE(V3)
{
  p = param.asInt(); // assigning incoming value from pin V1 to a variable
  Serial.println(p);
  // process received value
}

void setup()
{
  pinMode(2, OUTPUT);
  
  digitalWrite(2, 0);
  
  Serial.begin(9600);

  Blynk.begin(auth, ssid, pass);

  }

void loop(){
 if (p > 250) {
    digitalWrite(2, 1);
 } else {
    digitalWrite(2, 0);
 }
  Blynk.run();
}

 

qwerty13rus
Offline
Зарегистрирован: 05.12.2018

DetSimen пишет:

а вот так: 

#define BLYNK_PRINT Serial
#define RELE 2

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = "**************";
char ssid[] = "****************";
char pass[] = "**************";

int p;

BLYNK_WRITE(V3)
{
  p = param.asInt(); // assigning incoming value from pin V1 to a variable
  Serial.println(p);
  // process received value
}

void setup()
{
  pinMode(2, OUTPUT);
  
  digitalWrite(2, 0);
  
  Serial.begin(9600);

  Blynk.begin(auth, ssid, pass);

  }

void loop(){
 if (p > 250) {
    digitalWrite(2, 1);
 } else {
    digitalWrite(2, 0);
 }
  Blynk.run();
}

 

Большое спасибо, заработало!)

 

ildaronii
Offline
Зарегистрирован: 30.09.2018

Всем доброго дня!

А вот у меня ругается на строчку:

  pinValue = param.asDouble();
exit status 1
'param' was not declared in this scope

Хотя строчки есть:

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

 

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

ildaronii пишет:

А вот у меня ругается на строчку:

  pinValue = param.asDouble();
exit status 1
'param' was not declared in this scope

Хотя строчки есть:

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

Какой ужас! Сочувствуем!

Поскольку Вы уже третий год на форуме, мне даже неудобно говорить Вам, что код надо выкладывать полностью! Полностью! Полностью! Полностью! Полностью! Полностью! Полностью! Полностью! Полностью! Полностью! Полностью!

Ну, сколько ещё раз повторить?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Думаете надо? Там Гайвер просматривается )))

ildaronii
Offline
Зарегистрирован: 30.09.2018

Евгений, прошу прощения!

Разобрался. pinValue = param.asDouble(); это часть функции blynk. А я пытался использовать (даже не использовать, а писать тело этой функции) её (функцию) в теле другой функции. Тупейшество конечно! В общем как только разместил отдельно функцию всё заработало! Не знаю я такой первый или есть такие затупы, если надо могу выложить как было и как надо.