Erreur 'BlynkTimer' does not name a type

Bonjour
Je teste Blynk sur un ESP8266 (un NodeMCU 0.9) avec l’IDE Arduino.
Le premier sketch fonctionne, donc je me lance un peu et je tente de lire des données de température et humidité issues d’un DHT22. Je prends simplement le code trouvé sur le site Blynk qui s’appelle ‘DHT11’.
Là, ça ne compile pas, j’obtiens l’erreur

Arduino : 1.8.2 (Windows 10), Carte : "NodeMCU 0.9 (ESP-12 Module), 80 MHz, 115200, 4M (3M SPIFFS)"

In file included from C:\Users\Chuwi\Documents\Arduino\Test_Blynk\Test_Blynk.ino:40:0:

C:\Users\Chuwi\Documents\Arduino\libraries\Blynk\src/Blynk.h:15:2: warning: #warning "Please include a board-specific header file, instead of Blynk.h (see examples)" [-Wcpp]

 #warning "Please include a board-specific header file, instead of Blynk.h (see examples)"

  ^

Test_Blynk:60: error: 'BlynkTimer' does not name a type

 BlynkTimer timer;

 ^

C:\Users\Chuwi\Documents\Arduino\Test_Blynk\Test_Blynk.ino: In function 'void setup()':

Test_Blynk:93: error: 'timer' was not declared in this scope

   timer.setInterval(1000L, sendSensor);

   ^

C:\Users\Chuwi\Documents\Arduino\Test_Blynk\Test_Blynk.ino: In function 'void loop()':

Test_Blynk:99: error: 'timer' was not declared in this scope

   timer.run();

   ^

Plusieurs bibliothèque trouvées pour "BlynkSimpleEsp8266.h"
Utilisé : C:\Users\Chuwi\Documents\Arduino\libraries\Cayenne
Non utilisé : C:\Users\Chuwi\Documents\Arduino\libraries\Blynk
Non utilisé : C:\Users\Chuwi\Documents\Arduino\libraries\Blynk
Non utilisé : C:\Users\Chuwi\Documents\Arduino\libraries\Blynk
Non utilisé : C:\Users\Chuwi\Documents\Arduino\libraries\Blynk
exit status 1
'BlynkTimer' does not name a type

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

J’ai cherché un peu partout sur Internet, il semble que ce soit dû à l’IDE, pas aux bibliothèques. Quelqu’un a-t-il déjà rencontré et résolu ce problème ? Merci

Test_Blynk.ino (2.91 KB)

Il faut lire attentivement les messages d'erreur :

#warning "Please include a board-specific header file, instead of Blynk.h (see examples)"

... et poster ton code (entre balises code STP, pas en attachement)

Merci, voici le code. Je l’ai mis en attachement car il me semblait un peu gros pour le mettre dans le corps du message

/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <Blynk.h>  // <-- J'ai essayé d'ajouter cette ligne mais ça ne change rien
#include <DHT.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[] = "*****";

#define DHTPIN 5          // What digital pin we're connected to
#define DHTTYPE DHT22   // DHT 22, AM2302, AM232
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;

// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendSensor()
{
  float h = dht.readHumidity();
  float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit

  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  Blynk.virtualWrite(V5, h);
  Blynk.virtualWrite(V6, t);
}

void setup()
{
  // Debug console
  Serial.begin(9600);

  Blynk.begin(auth, ssid, pass);
  dht.begin();

  // Setup a function to be called every second
  timer.setInterval(1000L, sendSensor);
}

void loop()
{
  Blynk.run();
  timer.run();
}

Le code initial ne comporte pas la ligne “#include <Blynk.h>”. Sans elle j’ai juste l’erreur indiquée dans le titre. J’ai cherché dans les bibliothèques pour comprendre ce qu’est le BlynkTimer, et il apparaît dans le fichier Blynk.h
Je pensais qu’en ajoutant cette ligne ça réglerait le problème mais non…

Voici le message d'erreur quand on ôte cette bibli :

Arduino : 1.8.2 (Windows 10), Carte : "NodeMCU 0.9 (ESP-12 Module), 80 MHz, 115200, 4M (3M SPIFFS)"

Test_Blynk:59: error: 'BlynkTimer' does not name a type

 BlynkTimer timer;

 ^

C:\Users\Chuwi\Documents\Arduino\Test_Blynk\Test_Blynk.ino: In function 'void setup()':

Test_Blynk:92: error: 'timer' was not declared in this scope

   timer.setInterval(1000L, sendSensor);

   ^

C:\Users\Chuwi\Documents\Arduino\Test_Blynk\Test_Blynk.ino: In function 'void loop()':

Test_Blynk:98: error: 'timer' was not declared in this scope

   timer.run();

   ^

Plusieurs bibliothèque trouvées pour "BlynkSimpleEsp8266.h"
Utilisé : C:\Users\Chuwi\Documents\Arduino\libraries\Cayenne
Non utilisé : C:\Users\Chuwi\Documents\Arduino\libraries\Blynk
Non utilisé : C:\Users\Chuwi\Documents\Arduino\libraries\Blynk
Non utilisé : C:\Users\Chuwi\Documents\Arduino\libraries\Blynk
Non utilisé : C:\Users\Chuwi\Documents\Arduino\libraries\Blynk
exit status 1
'BlynkTimer' does not name a type

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

Je remonte le post...

Finalement, j'ai trouvé : il me manquait la bibliothèque SimpleTimer

Pour commencer, l'IDE n'est pour rien dans ce problème.

Quand un compilateur ne trouve pas une définition de type, il faut commencer par rechercher dans les fichiers .h de la bibliothèque si elle s'y trouve ou non. Il peut simplement s'agir d'une faute d’orthographe.

Si tu travailles sous windows, commence par installer un petit logiciel de recherche du genre grep.
Si tu travailles sous LINUX, c'est inclus dedans.

bonne continuation

C'est vrai qu'un grep c'est bien utile par moments... Merci