I want it to show the information of the serial begin (9600) of arduino to the Terminal of blink

Quiero que muestre la información del serial begin (9600) de arduino a la Terminal de blink


I want it to show the information of the serial begin (9600) of arduino to the Terminal of blink


#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = " ************************";
 
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "**********";
char pass[] = "******";

int banda =D0;
int valvulas=D1;
int prendido=D2;
int apagado=D3;
int actuador=D4;
void setup() {
  pinMode(D0,OUTPUT);
  pinMode(D1,OUTPUT);
  pinMode(D2,OUTPUT);
  pinMode(D3,OUTPUT);
  pinMode(D5,INPUT);
  pinMode(D6,INPUT);
  pinMode(D4,OUTPUT);
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
  Blynk.virtualWrite(V1,Serial.read());
}
void loop() {
  
Blynk.run();

if (digitalRead(prendido) == HIGH) {
digitalWrite(banda, HIGH);
Serial.println("banda prendida");
}
else if (digitalRead(apagado) == HIGH) {
digitalWrite(banda, LOW);
Serial.println("banda apagada");
}
  while(digitalRead(D5)==LOW){
      digitalWrite (actuador,HIGH);
      Serial.println("Actuador activado");
      Serial.println("\n");
      delay(1000);
      while(digitalRead(D6)==HIGH){if(digitalRead(D5)==HIGH){digitalWrite (actuador,LOW); return;}}
      //delay(1100);
      digitalWrite (banda,LOW);
      Serial.println("Botellas acomodadas  y listas para llenar ");
      Serial.println("\n");
      delay(1500);
      digitalWrite (valvulas,HIGH);
      Serial.println ("Valbulas llenando  botellas ");
      Serial.println("\n");
      delay(5000);
      digitalWrite(valvulas,LOW);
      Serial.println("Botellas llenas");
      Serial.println("\n");
      delay (2000);
      digitalWrite(actuador,LOW);
      Serial.println("Actuador desactivado");
      Serial.println("\n");
      delay(1000);
      digitalWrite (banda,HIGH);
      Serial.println("Banda prendida ");
      Serial.println("\n");
      delay(1000);
      Serial.println("Par de botellas llenas");
      Serial.println("\n");
      delay(1000);
      Serial.println("Siclo terminadon");
      delay(2000);     
  }
}

I have done this, but it is a very a complicated procedure… and only works after the server connection, so no good for connection diagnosis.

But first you need to learn how to make your code work with Blynk. Your current void loop() and code is NOT Blynk friendly.

http://help.blynk.cc/getting-started-library-auth-token-code-examples/blynk-basics/how-to-display-any-sensor-data-in-blynk-app

http://help.blynk.cc/getting-started-library-auth-token-code-examples/blynk-basics/how-to-control-anything-with-blynk-app

Start by looking at this topic…

In the code (well one of the variations I had worked on), I added this last line to take all the single characters and merge them into a full string…

u8g2.print(char(ch));  // Add character to OLED buffer
Serial.print(char(ch));  // Repeat all character output to Serial monitor

termString = termString + char(ch);  // Add character to Terminal Widget buffer

Which I then dumped to the terminal Widget every 1/4 second with a timer…

  timer.setInterval(250L, TermString);
void TermString() {
  Blynk.virtualWrite(V75, termString);
  termString = "";
}

Hola, unas cuantas consideraciones.

1.- No muestres tu blynk_auth a todo el mundo… alguien podría usarlo para gastarte bromas… cuanto menos.
2.- Olvídate de usar los delays…
3.- El loop debería estar mucho mas limpio… básicamente usando sólo el Blynk.run() y algo como task.loop()/timer.run() (esto es lo que se usa en lugar de los delays)

Imagino que tu sketch es para una máquina automática de llenado de botellas como no indicas mucha información de su uso imaginaremos que dispone de un botón de encendido del sistema, un rele para iniciar/parar la banda transportadora, un rele para iniciar/parar el rellenado de las botellas y un sensor para detectar la posición de las botellas debajo de las válvulas de rellenado…

Yo usaré el módulo tasker para el control de tiempos…
Debes tener un widget terminal conectado al pin V1 en tu app

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

WidgetTerminal terminal(V1);
Tasker Task(true);

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

#define BotonEncendido 1 //cambia estos valores por D0...D6 o lo que necesites
#define BandaTransportadora 2 
#define ValvulasRellenadoras 3
#define BotellasPosicionadas 4

byte EstacionActual=0; //indica el estado actual de proceso de la máquina rellenadora
bool EstadoBanda=false; //para guardar el estado de la banda transportadora, debes saber que false=LOW=0 y true=HIGH=1
bool Procesado=false; //para guardar si ya se ha procesado el estado actual o no.
String SMS;
void IncEstadoActual()
{
  EstacionActual++;
  Procesado=false;
}
void HacerCosas()
{
  if (digitalRead(BotonEncendido))
  {
      switch (EstacionActual)
      {
        case 0: //inicio del proceso
          if (!Procesado)
          {
            Procesado=true;
            digitalWrite(BandaTransportadora,HIGH); //iniciamos la banda transportadora para posicionar las botellas debajo de las valvulas de rellenado y retirar las botellas rellenadas en el ciclo anterior si existiesen
            SMS="Banda Transportadora Activada - Botellas en movimiento";
            terminal.println(SMS);
            Serial.println(SMS);
            Task.setRepeated(IncEstadoActual, 1000, 1); //ejecuta IncEstadoActual tras 1 segundo una sola vez
          }
        break;
        case 1: // botellas en movimiento a la espera de detectar que se han posicionado correctamente debajo de las valvulas de rellenado
          if (digitalRead(BotellasPosicionadas))
          {
            if (!Procesado)
            {
              Procesado=true;
              digitalWrite(BandaTransportadora,LOW);
              SMS="Banda Transportadora Desactivada - Botellas Posicionadas";
              terminal.println(SMS);
              Serial.println(SMS);
              Task.setRepeated(IncEstadoActual, 100, 1); //ejecuta IncEstadoActual tras 0,1 segundos una sola vez
            }
          }
        break;
        case 2: //inicio del proceso de rellenado, aquí lo haremos por tiempo pero podría realizarse con un sensor de rellenado...
          if (!Procesado)
          {
            Procesado=true;
            digitalWrite(ValvulasRellenadoras,HIGH);
            SMS="Inicio del rellenado de las botellas";
            terminal.println(SMS);
            Serial.println(SMS);
            Task.setRepeated(IncEstadoActual, 5000, 1); //ejecuta IncEstadoActual tras 5 segundos una sola vez
          }
        break;
        case 3: //fin del proceso de rellenado
          digitalWrite(ValvulasRellenadoras,LOW);
          SMS="Botellas llenas - Proceso Finalizado";
          terminal.println(SMS);
          Serial.println(SMS);
          EstacionActual=0;
        break;
    }
  }
  else
  {
    if (digitalRead(BandaTransportadora) !=digitalRead(BotonEncendido)) digitalWrite(BandaTransportadora,false);
  }
}
void setup()
{
  pinMode(BandaTransportadora,OUTPUT);
  pinMode(ValvulasRellenadoras,OUTPUT);
  pinMode(BotonEncendido,INPUT); // en tu codigo usas prendido apagado para leer y lo configurabas como salida en vez de entrada... 
  pinMode(BotellasPosicionadas,INPUT);
  Serial.begin(115200);
  Blynk.config(Blynk_auth);
  Blynk.connectWiFi(ssid, pass);
}
void loop()
{
  Blynk.run();
  Task.loop();
  HacerCosas();
}
1 Like