WeMos D1 Mini e Blynk

Buongiorno a tutti, sto tentando di usare il WeMos D1 Mini con il modulo relè e Blynk , ho modificato lo sketch che ho trovato in rete per accendere e spegnere il relè e tramite pagina web funziona ma non riesco a farlo funzionare con Blynk , mi potreste aiutare, grazie

#include <WiFiUdp.h>
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>

// La connessione di WeMos D1 mini al un network WiFi viene
// realizzata usando un personal encryption WEP e WPA2
// Per poter sapere a quale rete connettersi bisogna
// effettuare un broadcast dell'SSID (nome del network) 

// definizione di due array di caratteri
// in cui memorizzare nome della rete WiFi e password

const char ssid[] = "**************";       // inserire l'ssid della rete
const char pass[] = "**************";   // password della rete

// Creazione di un server web in ascolto sulla porta 80
// attende contenuti (pagine html, immagini, css, ecc...)
WiFiServer server(80);

const int Relay = 5;                   


void setup() {
  Serial.begin(115200);           // inizializzazione Serial Monitor
  delay(10);

  //pinMode(pinLed, OUTPUT);
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(Relay, OUTPUT);         
  //digitalWrite(pinLed, LOW);      // LED inizialmente spento

  // Connessione alla rete WiFi
  
  Serial.println();
  Serial.println();
  Serial.println("------------- Avvio connessione ------------");
  Serial.print("Tentativo di connessione alla rete: ");
  Serial.println(ssid);

  /* 
   *  Viene impostata l'impostazione station (differente da AP o AP_STA)
   * La modalità STA consente all'ESP8266 di connettersi a una rete Wi-Fi
   * (ad esempio quella creata dal router wireless), mentre la modalità AP 
   * consente di creare una propria rete e di collegarsi
   * ad altri dispositivi (ad esempio il telefono).
   */
  
  WiFi.mode(WIFI_STA);

  /* 
   *  Inizializza le impostazioni di rete della libreria WiFi e fornisce lo stato corrente della rete,
   *  nel caso in esempio ha come parametri ha il nome della rete e la password.
   *  Restituisce come valori:
   *  
   *  WL_CONNECTED quando connesso al network
   *  WL_IDLE_STATUS quando non connesso al network, ma il dispositivo è alimentato
  */
  WiFi.begin(ssid, pass);

  /* 
   *  fino a quando lo non si è connessi alla WiFi
   *  compariranno a distanza di 250 ms dei puntini che
   *  evidenziano lo stato di avanzamento della connessione
  */  
  while (WiFi.status() != WL_CONNECTED) {
    delay(250);
    Serial.print(".");
  }

  // se connesso alla WiFi stampa sulla serial monitor
  // nome della rete e stato di connessione
  Serial.println("");
  Serial.print("Sei connesso ora alla rete: ");
  Serial.println(ssid);
  Serial.println("WiFi connessa");

  // Avvia il server
  server.begin();
  Serial.println("Server avviato");

  // Stampa l'indirizzo IP
  Serial.print("Usa questo URL : ");
  Serial.print("http://");
  Serial.print(WiFi.localIP()); // Restituisce i'IP della scheda
  Serial.println("/");
}

void loop() {

  // Verifca se il client e' connesso
  WiFiClient client = server.available();
  if (!client) {
    return;
  }

  // Aspetta fino a quando il client invia dei dati
  Serial.println("Nuovo client");
  while (!client.available()) {
    delay(1);
  }

  // Legge la prima richiesta
  
  /* 
   *  readStringUntil() legge i caratteri dal buffer seriale
   * all'interno di una stringa fino a quando non riceve il
   * carattere di terminazione in questo cas \r
   * oppure si verivica un time out
   */
   
  String request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush();                               // flush() elimina il buffer una volta che
                                                // tutti i caratteri in uscita sono stati inviati.

  // Verifica quale richiesta e' stata fatta

  /*
   * Individua un carattere o una stringa all'interno di un'altra stringa (nell'esempio la strina è request).
   * Per impostazione predefinita, ricerche dall'inizio della stringa,
   * ma è possibile effettuare la ricerca partendo da un dato indice,
   * permettendo di individuare tutte le istanze del carattere o della stringa.
   * Se il valore restituito è -1 allora la stringa non è stata trovata.
   */

  int valore = LOW;
  if (request.indexOf("/LED=ON") != -1) {
    digitalWrite(LED_BUILTIN, HIGH);
    digitalWrite(Relay, HIGH);
    valore = HIGH;
  }
  if (request.indexOf("/LED=OFF") != -1) {
    digitalWrite(LED_BUILTIN, LOW);
    digitalWrite(Relay, LOW);
    
    valore = LOW;
  }

  // Restituisce la risposta
  
  /*
   * La pagina web dovrà essere formattata con la sua intestazione html
   * e variando il messaggio che identifica lo stato del LED 
   */
   
  // intestazione pagina html
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); //  non dimenticare questa linea
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");

  // titolo della pagina
  client.println("<h2>Intefaccia di controllo LED mediante WeMos D1 Mini</h2>");

  // includiamo tutto il testo in un div in cui il font è impostato a 20 px
  // N.B. ricorda che per poter considerare le " come stringa e' necessario farle precedere da uno \
  client.print("<div style=\"font-size: 20px;\">");
  client.print("Il LED e': ");

  if (valore == HIGH) {
    // stampa ON di colore verde
    client.print("<strong style=\"color:green;\">ON</strong>");
  } else {
    // stampa OFF di colore rosso
    client.print("<strong style=\"color:red;\">OFF</strong>");
  }
  // stampa una riga separatrice
  client.println("<hr>");
  // lista puntata
  client.println("<ul>");
  client.println("<li>Fai click <a href=\"/LED=ON\">QUI</a> per portare ad ON il LED sul pin D4</li>");
  client.println("<li>Fai click <a href=\"/LED=OFF\">QUI</a> per portare ad OFF il LED sul pin D4</li>");
  client.println("</ul>");
  client.print("</div>");
  client.println("</html>");

// chiusura connessione
  delay(1);
  Serial.println("Client disconnesso");
  Serial.println("");
}

Con Blynk devi togliere TUTTO e inserire solo la chiamata a Blynk.
Niente di più semplice.

Domanda: hai mai usato blynk ?

steve-cr:
Con Blynk devi togliere TUTTO e inserire solo la chiamata a Blynk.
Niente di più semplice.

Domanda: hai mai usato blynk ?

non ho mica capito cosa devo fare, Blynk ho fatto una prova dove facevo accendere e spegnere un led niente di più, ma mi facevano prima inserire lo sketch che ho messo prima ma per il led e poi uno sketch per Blynk

Il programma che metti su Arduino esegue qualcosa di LOCALE.
La connessione a Blynk è altra cosa: blynk ti permette di collegare il tuo arduino al suo server e ti permette di "leggere o scrivere" dal/sul tuo Arduino.
Se hai tirato giù la app da blynk vedrai che puoi creare pulsanti, led, grafici, però lo fai tutto da app.
Ecco il bello di blynk: su Arduino devi fare poco o niente.