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 :
et sur le moniteur série toutes les données sont à zéro :
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); }
Si quelqu'un à une idée ? Merci
Bon Dimanche à tous.
Partager