No puedo conectar mi proyecto en la app de blynk con mi codigo de arduino UNO

Este es mi código, es para controlar un motor DC.
Traté de hacer la conexión con mi modulo ESP8266 y blynk. Intenté con las librerías pero sigue sin funcionar
////////////////////////////////////////////////

//Activa la comunicación serial entre la aplicación Blynk y Serial Monitor:
#define BLYNK_PRINT Serial

//#include <ESP8266WiFi.h>
#include  <ESP8266_Lib.h>  //Importar a "ESP8266_Lib" libreria.
#include  <BlynkSimpleShieldEsp8266.h>  //Importar a "BlynkSimpleShieldEsp8266" library.

//Autenticación de nuestra cuenta en la aplicación Blynk.
char auth[] = "qRnmvx-3_Ka6R8_U-9DV5as5-pm--XkE"; //Coloque el AuthToken de nuestra aplicación. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

//Autenticación de acceso a la red Wi-Fi.
char ssid[] = "Yañez"; //Ingrese el nombre de la red Wi-Fi. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
char pass[] = "hamburguesa00"; //Ingrese la contraseña de la red Wi-Fi. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
        //Nota: Inserte "" si se trata de una red Wi-Fi abierta.

//Active Communication Serial para ESP8226 a través de otra línea de comunicación:
#define EspSerial Serial  //Selecciona la segunda línea de comunicación serial.
#define ESP8266_BAUD 115200 //establece la velocidad de comunicación en serie con el ESP8266 ESP-01.
ESP8266 wifi(&EspSerial); //Activa la comunicación con ESP8266 ESP-01 a través de la línea seleccionada.

//Variables para la asignación del estado de los pines virtuales de los botones de sentido de giro del motor:
int Boton_Sentido_CW;
int Boton_Sentido_CCW;

//Variables para los pines de Arduino de control del motor y la lectura del sensor de RPM:
int Pin_Direccion_Motor_1 = 9;
int Pin_Direccion_Motor_2 = 10;
int Pin_Sensor_RPM = 3;

//Variable para calcular la lectura de RPM:
int Contar_Pulsos = 0; //Variable para contar pulsos.
int Lectura_RPM;  //Variable para calcular la velocidad de rotación del motor.
int Disco_Num = 1;  //Variable para designar el número de orificios en el disco del sensor de RPM.

//Definición de los pines virtuales de la aplicación Blynk y asignación de los estados de los botones:
BLYNK_WRITE (V0) {
  Boton_Sentido_CW = param.asInt(); //Asignar el estado del pin virtual a la variable.
}
BLYNK_WRITE (V1) {
  Boton_Sentido_CCW = param.asInt();  //Asignar el estado del pin virtual a la variable.
}

//Ejecute la función SETUP solo una vez después de presionar Reset:
void setup() {
  //Iniciar una Comunicación Serie a 9600b / s:
  Serial.begin(9600);
  //Inicie la comunicación en serie con ESP8266:
  EspSerial.begin(ESP8266_BAUD);
  
  //Retraso para el siguiente paso.
  delay(10);
  
  //Inicie la conexión de red Wifi:
  Blynk.begin(auth, wifi, ssid, pass);

  //Definición del tipo de pin (salida o entrada):
  pinMode(Pin_Direccion_Motor_1, OUTPUT);
  pinMode(Pin_Direccion_Motor_2, OUTPUT);
  //pinMode(Pino_Sensor_RPM, INPUT);
}

//La rutina LOOP se realiza repetidamente:
void loop() {
  //Inicia la comunicación con la aplicación Blynk.
  Blynk.run();

  //Condición para arrancar el motor en sentido horario:

  if (Boton_Sentido_CW == HIGH) {
    //Definición del estado de los pines para el sentido de giro del Motor CW:
    digitalWrite(Pin_Direccion_Motor_1, LOW);
    digitalWrite(Pin_Direccion_Motor_2, HIGH);
  }
  //Condición para arrancar el motor en sentido antihorario:
  else if (Boton_Sentido_CCW == HIGH) {
    //Definición del estado de los pines para el sentido de giro del Motor CCW:
    digitalWrite(Pin_Direccion_Motor_1, HIGH);
    digitalWrite(Pin_Direccion_Motor_2, LOW);
  }
  //Condición para detener el motor:
  else if (Boton_Sentido_CW == LOW && Boton_Sentido_CCW == LOW) {
    //Definición del estado de los pines del motor:
    digitalWrite(Pin_Direccion_Motor_1, LOW);
    digitalWrite(Pin_Direccion_Motor_2, LOW);
  }
//  
  //Contando el tiempo de duración de cada pulso a nivel alto y nivel bajo.
  Contar_Pulsos = (pulseIn(Pin_Sensor_RPM, HIGH) + pulseIn(Pin_Sensor_RPM, LOW));
  //Contando el número de pulsos por segundo (1Sec = 1000000µSec).
  Lectura_RPM = 1000000/Contar_Pulsos;
  //Convierte rotaciones por segundo (RPS) en rotaciones por minuto (RPM):
  Lectura_RPM = Lectura_RPM * 60;
  //Ajuste la lectura al número de perforaciones en el disco sensor:
  Lectura_RPM = Lectura_RPM / Disco_Num;
  
  //Condición para que cuando el motor esté parado, el valor sea 0 "cero":
  if (Lectura_RPM < 0){
    Lectura_RPM = 0;
  }
  else{
    Lectura_RPM = Lectura_RPM;
  }

  //Escriba en la leyenda el valor de RPM calculado:
  Blynk.virtualWrite(V2, Lectura_RPM);
  
  //Retraso para el siguiente paso.
  delay(10);
}

////////////////////////////////////////////////////////////////////////
2
por favor necesito ayuda para soluciona el problema

Es lo que me marca en mi monitor serial en Arduino

1

@YMarichuy please edit your post, using the pencil icon at the bottom, and add triple backticks at the beginning and end of your code so that it displays correctly.
Triple backticks look like this:
```

Pete.

@YMarichuy despite me giving you triple backticks to copy and paste, you’ve decided to use different characters, which don’t work in the same way.

Please try again.

Pete.

Gracias, mi código ya tiene apariencia correcta.

sin embargo, sigo teniendo problemas con mi proyecto. Por favor ayuda.

You are trying to use the single serial port of the Uno for both communication with the ESP-01 and for status/debugging messages from Blynk.
You can’t do this!

You need to remove this:

and this:

or re-configure the way that your ESP-01 is connected. This would require you reducing the baud rate that the ESP-01 uses for communication and creating a SoftwareSerial port.

Pete.

Es cierto, no estoy utilizando un ESP-01 sino el NodeMCU ESP8266 para el proyecto, sin embargo, en el monitor serial sigue marcando caracteres erroneos.
Realice la modificación propuesta y no hay cambios para la conexión en mi proyecto de blynk desde mi smartphone. Cabe aclarar que el código lo subí a mi placa Arduino UNO en ves de del NodeMCU ESP8266.

In that case, throw the Uno away and use the NodeMCU. It’s much simpler, faster, has more memory and you can use the serial port for debugging whilst you are connecting via WiFi. In addition, you can use OTA to upload new code over WiFi if you wish.

Pete.

Esta bien.

Pero en mi puerto serial sigue creando caracteres erroneos.

intenté cambiar el puerto y los baudios, pero no hay diferencia, y en la aplicación sigue marcando “wasn’t online yet”

Are you sure that your NodeMCU has AT firmware installed on it?
When you connect the NodeMCU to the computer directly and open the serial monitor what do you see when you reboot the NodeMCU?
You’ll probably need the serial monitor set to 74880 or 115200 for the messages to be legible.

Pete.

No estoy segura de que el NodeMCU tenga instalado el firmware AT.
Cuando reinicio el NodeMCU en el monitor serie veo caracteres así, cuando el monitor serial está configurado en 74880.

image

It doesn’t have AT firmware installed, it looks as though a sketch has been uploaded to it at some point, which will have overwritten the AT firmware.

As I said before, forget the Uno and modify your sketch to run on the NodeMCU instead.

Pete.

Hice algunas modificaciones en el código para subirlo al NodeMCU, pero ahora tengo problemas con las librerías. De antemano disculpe porque soy nueva en estos temas.

You’re using the Blynksimpleshield library, which is only used on an Arduino with an ESP as a WiFi modem.

Take a look at the Sketch Builder examples.

Pete.

1 Like

Cambien el NodeMCU por el ESP-01, también de Arduino Mega a UNO. Pero me genera un error en el monitor serie y en la aplicacion de Blynk me sigue marcando “wasn’t online yet”. Por favor necesito ayuda.
image

You need to post your code, and full details of how your ESP is connected and powered.

Pete.

Use el mismo código de inicio sin modificaciones.
La conexión que use fue la siguiente.
image
y la alimentación es desde mi PC directamente conectada al arduino MEGA.

You said you were using an Uno, not a Mega.

The Uno and Mega have different serial ports available, and you can’t simply swap the code over.

Pete.

Estoy usando un Arduino MEGA 2560 con un modulo wifi ESP-01

//Activa la comunicación serial entre la aplicación Blynk y Serial Monitor:
#define BLYNK_PRINT Serial

#include  <ESP8266_Lib.h> //Importar a "ESP8266_Lib" libreria.
#include  <BlynkSimpleShieldEsp8266.h>  //Importar a "BlynkSimpleShieldEsp8266" library.

//Autenticación de nuestra cuenta en la aplicación Blynk.
char auth[] = "pI16tq0NHPPCXssQpLI_7AauO2fmDv5W"; ////Coloque el AuthToken de nuestra aplicación. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

//Autenticación de acceso a la red Wi-Fi.
char ssid[] = "IZZI-YHDEZ";//Ingrese el nombre de la red Wi-Fi <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
char pass[] = "7E0H864D92AC1G35"; //Ingrese la contraseña de la red Wi-Fi. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
        //Nota: Inserte "" si se trata de una red Wi-Fi abierta.

//Active Communication Serial para ESP8226 a través de otra línea de comunicación:
#define EspSerial Serial1  //Selecciona la segunda línea de comunicación serial.
#define ESP8266_BAUD 115200 //establece la velocidad de comunicación en serie con el ESP8266 ESP-01.
ESP8266 wifi(&EspSerial); //Activa la comunicación con ESP8266 ESP-01 a través de la línea seleccionada.

//Variables para la asignación del estado de los pines virtuales de los botones de sentido de giro del motor:
int Boton_Sentido_CW;
int Boton_Sentido_CCW;

//Variables para los pines de Arduino de control del motor y la lectura del sensor de RPM:
int Pin_Direccion_Motor_1= 2;
int Pin_Direccion_Motor_2 = 3;
int Pin_Sensor_RPM = 7;

//Variable para calcular la lectura de RPM:
int Contar_Pulsos = 0; //Variable para contar pulsos.
int Lectura_RPM;  //Variable para calcular la velocidad de rotación del motor.
int Disco_Num = 1;  //Variable para designar el número de orificios en el disco del sensor de RPM.

//Definición de los pines virtuales de la aplicación Blynk y asignación de los estados de los botones:
BLYNK_WRITE (V0) {
  Boton_Sentido_CW = param.asInt(); //Asignar el estado del pin virtual a la variable.
}
BLYNK_WRITE (V1) {
  Boton_Sentido_CCW = param.asInt();  //Asignar el estado del pin virtual a la variable.
}

//Ejecute la función SETUP solo una vez después de presionar Reset:
void setup() {
 //Iniciar una Comunicación Serie a 9600b / s:
  Serial.begin(9600);
  //Inicie la comunicación en serie con ESP8266:
  EspSerial.begin(ESP8266_BAUD);
  
  //Retraso para el siguiente paso.
  delay(10);
  
   //Inicie la conexión de red Wifi:
  Blynk.begin(auth, wifi, ssid, pass);

  //Definición del tipo de pin (salida o entrada):
  pinMode(Pin_Direccion_Motor_1, OUTPUT);
  pinMode(Pin_Direccion_Motor_2, OUTPUT);
  pinMode(Pin_Sensor_RPM, INPUT);
}

//La rutina LOOP se realiza repetidamente:
void loop() {
   //Inicia la comunicación con la aplicación Blynk.
  Blynk.run();

   //Condición para arrancar el motor en sentido horario:
  if (Boton_Sentido_CW == HIGH) {
    //Definición del estado de los pines para el sentido de giro del Motor CW: 
    digitalWrite(Pin_Direccion_Motor_1, LOW);
    digitalWrite(Pin_Direccion_Motor_2, HIGH);
  }
  //Condición para arrancar el motor en sentido antihorario:
  else if (Boton_Sentido_CCW == HIGH) {
     //Definición del estado de los pines para el sentido de giro del Motor CCW:
    digitalWrite(Pin_Direccion_Motor_1, HIGH);
    digitalWrite(Pin_Direccion_Motor_2, LOW);
  }
   //Condición para detener el motor:
  else if (Boton_Sentido_CW == LOW && Boton_Sentido_CCW == LOW) {
    //Definición del estado de los pines del motor:
    digitalWrite(Pin_Direccion_Motor_1, LOW);
    digitalWrite(Pin_Direccion_Motor_2, LOW);
  }
  
  //Contando el tiempo de duración de cada pulso a nivel alto y nivel bajo.
  Contar_Pulsos = (pulseIn(Pin_Sensor_RPM, HIGH) + pulseIn(Pin_Sensor_RPM, LOW));
  //Contando el número de pulsos por segundo (1Sec = 1000000µSec).
  Lectura_RPM = 1000000/Contar_Pulsos;
  //Convierte rotaciones por segundo (RPS) en rotaciones por minuto (RPM):
  Lectura_RPM = Lectura_RPM * 60;
  //Ajuste la lectura al número de perforaciones en el disco sensor:
  Lectura_RPM = Lectura_RPM / Disco_Num;
  
  //Condición para que cuando el motor esté parado, el valor sea 0 "cero":
  if (Lectura_RPM < 0){
    Lectura_RPM = 0;
  }
  else{
    Lectura_RPM = Lectura_RPM;
  }

  //Escriba en la leyenda el valor de RPM calculado
  Blynk.virtualWrite(V2, Lectura_RPM);
  
  //Retraso para el siguiente paso.
  delay(10);
}

Are you sure that your SSID and password are 100% correc?
Don’t forget that both SSID and password are case sensitive (capitals and small letters have to be correct).

Pete.