J'ai un BME280 qui fonctionne sur un Arduino UNO, mais quand je le branche sur un esp01, il n'est pas reconnu.
voici mon code:
#include <Wire.h> //*Include the Wire library which allows to use the I2C interface*
#include <ESP8266WiFi.h>
#include <WiFiUDP.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h> //*library to easily take readings from the sensor*
#define SEALEVELPRESSURE_HPA (1028)
Adafruit_BME280 bme; //*Declare the bpm variable, an easy to remember reference for the device*
unsigned long delayTime;
void setup() {
Serial.begin(9600); //*Setup serial communication and speed*
Serial.println(F("BME280 test"));
bool status;
status = bme.begin(); //*Try to start the device*
if (!status) { //*If it is not starting, print message*
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1); //* Go in an endless loop. This prevents the Arduino from calling the loop function*
}
Serial.println("-- Default Test --");
delayTime = 1000;
Serial.println();
}
void loop() {
printValues();
delay(delayTime);
}
void printValues() {
Serial.print("Temperature = "); //*Read and print temperature*
Serial.print(bme.readTemperature());
Serial.println(" *C");
Serial.print("Pressure = "); //*Read and print pressure*
Serial.print(bme.readPressure() / 100.0F);
Serial.println(" hPa"); // Calculate altitude assuming 'standard' barometric pressure of 1013.25 millibar = 101325 Pascal
Serial.print("Approx. Altitude = ");
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA)); //*Read and print altitude*
// you can get a more precise measurement of altitude if you know the current sea level pressure which willvvary with weather and such. If it is 1015 millibars that is equal to 101500 Pascals.
Serial.println(" m");
Serial.print("Humidity = ");
Serial.print(bme.readHumidity()); //*Read and print humidity*
Serial.println(" %");
Serial.println();
}
Sinon, mon BME280 est branche sur l'ESP sur la broche GPIO2 et GPIO0 sur respectivement SDA et SCL.
J'ai essayer également avec une résistance de 5.6K en pull up VCC sur SDA
Merci J-M-L, pour tes infos.
je viens de regarder, mais le fichier de ma bibliothèque et diffèrent de celui que tu ma présenté et du coup je ne retrouve pas les même données.
Je mets mon fichier: Adafruit_BME280.cpp (22.8 KB)
Faut il que je remplace ma bibliothèque par celle que tu m'as présenté sur Github?
Pour la compilation aucun soucis.
Pour les pull up 5.6K ça le fait ou vaut mieux 4.7K, je dois pouvoir trouver les deux mais j'avais déjà fait un essai avec une5.6K sur SDA.
Non c'est bon avec l'autre esp, avec ou sans pull up, et la modification dans la bibliothèque permet bien de cibler GPIO0 et GPIO2 .
Donc reste plus qu'a trouver ce qui ne va pas avec l'esp01
Pour suivre vos conseils, j'ai essayer avec un esp8285 m3, car je cherche un module relativement compact et je l'avais en stock.
Et j'arrive au même constat qu'avec esp01, j'arrive a téléverser, j'utilise un module FT232, mais impossible de lire les données du BME280 en branchant sur GPIO0 et GPIO2.
J'ai essayé une résistance pull up sur GPIO0, mais rien de plus, avez vous d'autres conseil a me donner avec L'esp8285 m3?
Oui J-M-L, c'est juste parce que j'avais lu quelque part que l'esp8285 m3 n'avais pas de résistance pull up interne sur le GPIO0.
Mais du coup je vais faire le test également sur les deux.