Bonjour à tous
Je voudrais programmer un ESP8266-12F avec un capteur BME280 pour récupérer en WiFi les informations de température, pression et humidité. Dans un premier temps j'ai connecté l'ESP en WiFi et je lui est attribué une adresse statique. Ensuite j'ai un petit programme de test pour le capteur BME280, ce programme tourne correctement sur un Uno mais ne m'envoie aucune information du capteur avec l'ESP.
Si je fais un scan de matériel sur l'Uno le code voit bien le capteur par contre avec l'ESP il ne voit rien en I2C.
Je pense que j'ai un problème au niveau de la déclaration du capteur mais cela fait une semaine que je tourne en rond et je ne vois pas ce qui cloche. J'ai testé avec un ESP8266-01 et j'ai le même problème.
Voici le code que j'utilise :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
//Code test programmation pour ESP8266-12F . Vérifié le :
 
 
 
 
#include <Wire.h>
#include <SparkFunBME280.h> // BME
#include <Adafruit_GFX.h>
 
 
 
BME280 capteur;
 
void setup()
{
 //capteur.begin();
 Wire.begin(2,14);
  Serial.begin(115200); // initialisation com série
 //  Wire.begin(0x76);
  //configuration du capteur
  capteur.settings.commInterface = I2C_MODE; //D2 : SDA / D14 SCL;
  capteur.settings.I2CAddress = 0x76;
  capteur.settings.runMode = 3;
  capteur.settings.tStandby = 0;
  capteur.settings.filter = 0;
  capteur.settings.tempOverSample = 1 ;
  capteur.settings.pressOverSample = 1;
  capteur.settings.humidOverSample = 1;
 
  delay(20);  // attente de la mise en route du capteur. 2 ms minimum
 
}
 
void loop()
{
  capteurBme();
} // Fin de programme
 
void capteurBme()
{ 
  Serial.println ("Données météo");
 
  Serial.print ("Pression atmosphérique : ");
  Serial.print (capteur.readFloatPressure() / 100);
  Serial.println ("hPa");
 
  Serial.print ("Température : ");
  Serial.print(capteur.readTempC(), 1); // affichage température
  Serial.println ("C"); //affichage unité température
 
  Serial.print ("Humidité : ");
  Serial.print (capteur.readFloatHumidity(), 0);
  Serial.println ("%");
 
  delay(5000);
}
et sur le moniteur série toutes les données sont à zéro :

Nom : Moniteur serie BME280.JPG
Affichages : 845
Taille : 85,8 Ko

Si quelqu'un à une idée ? Merci

Bon Dimanche à tous.