problème code anemometre wifi

Encore besoin d’aide pour la réalisation d’un anémomètre wifi. Le montage fonctionne sur arduino uno puis j’ai voulu adapter sur wemos D1 mini pro. Pas d’erreur de code la connexion wifi s’affiche comme connectée sur le moniteur serie et j’ai bien le Serial.print “okloop” et FINloop". Le code est ci-dessous:

#include <ESP8266WiFi.h>
#include <Wire.h>
/*
 * Variables et paramètres de connexion WiFi
 * 
*/
// replace with your channel’s thingspeak API key,
String apiKey = "xxxxxxxx";                                     //fill in the api key from thingspeak
const char* ssid = "ddddd";                                  //fill in your wifi name
const char* password = "11111";                              //fill in your wifi password

const char* server = "api.thingspeak.com";
WiFiClient client;
#define LED D3
#define Reed D2

unsigned long tempsDebut;  // passage précédent de l'aimant

int etatPrecedent;  // lors de du dernier passage dans le loop,
                    // l'aimant était là, ou pas? 

void setup() {
/*
// declare the enable and ledPin as an OUTPUT:
pinMode(enable1, OUTPUT);
pinMode(enable2, OUTPUT);
*/
pinMode(D2, INPUT);   // interrupteur Reed à la pin D2
  pinMode(D3,OUTPUT);  // LED indicatrice à la pin D3
etatPrecedent = digitalRead(D2); // on vérifie si l'aimant est là ou pas
    
Serial.begin(115200);
delay(10);



WiFi.begin(ssid, password);

Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
Serial.print("..........");
Serial.println();
WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);

}
Serial.println("WiFi connected");
Serial.println();


}

void loop() {
Serial.println("okloop" );
  int etat, delai;
  unsigned long tempsFin;

  etat = digitalRead(D2);  // on vérifie si l'aimant est là ou pas
  
  digitalWrite(D3,etat);

  if ((etat) && (!etatPrecedent)){ // l'aimant vient d'arriver
    if (tempsDebut > 0){  // nous connaissons le moment du début de ce tour
      tempsFin = millis();  // quelle heure est-il?
      delai = tempsFin - tempsDebut;  // durée du tour qui vient de se terminer
      Serial.print("Periode :" );
      Serial.print(delai);
      Serial.print("  millisecondes,  Vitesse :");    
      Serial.print(3.6*2*3.1416*0.07*1000/delai);
      // (cette vitesse ne tient pas compte de la fonction d'étalonnage)
      Serial.println(" km/h");        
    }
    
    tempsDebut = tempsFin;  // mise à jour de la variable
  }
  
  etatPrecedent = etat;  // mise à jour de la variable
 Serial.println("FINloop" ); 
}

Une idée de correction pour moi?
Merci pour votre aide

Câblage ? Vous ne balancez pas 5V sur votre wemos j’espere....

Il faudrait initialiser tempsDebut dans le setup

tempsDebut  = millis();

Mais sinon, qu'est-ce qui ne marche pas ? Tu n'expliques pas le problème...

On voit bien une connexion WIFI, mais ensuite ni client ni serveur. Quel est le but de la manœuvre ?

J’ai ajouté tempsDebut = millis(); dans le setup, le schéma est attaché, le but de la manœuvre est d’envoyer sur mon canal thingspeak.com la vitesse du vent. Non je n’ai rien raccordé sur le 5V.
Donc sur la console série je vois bien que la connexion wifi est ok puis je prints bien “okloop” et FINloop mais rien ne s’affiche sur la console série sur la vitesse du vent.
Merci pour votre aide.

votre image

048624264303f33c45e37bf9880a12e1723c5701.jpg

affichez etat et etatprecedent

Oui c'est clair, si rien ne s'affiche c'est qu'il ne rentre pas dans le if, reste à comprendre pourquoi...