Bonjour,
je me casse un peu les dents avec un module BMP280 3v3 :
j'en ai testé deux différents et j'ai une température un peu trop optimiste (+1°c environ), et une altitude à -30m.
Est-ce que sa pourrait venir du reglage de la pression au niveau de la mer ? Ou autre ?
Ma difficulté suplémentaire : sur ma lolin S2 PICO, il y a une prise I2C et je n'ai pas le connecteur.
J'ai donc connecté mon module en i2C sur d'autre pin.
Je n'est réussi à le faire fonctionner qu'avec une seule librairie : BMP280_DEV
Qui permet de définir les n° des pin SDA et SCL BMP280_DEV bmp280(pinSDA, pinSCL);
Je n'ai pas trouvé comment changé la pression niveau mer avec cette librairie.
Et je n'ai pas reussi a définir d'autre SDA / SCL sur les autres librairie qui permettent à priori la modification de la pression de référence.
Si vous avez une piste...
Sur le schéma je vois ce connecteur, relié à GPIO8 & GPIO9.
Il te suffit donc d'utiliser ces pins.
Ils ne sont pas dispo hors du connecteur 
(ou je suis passé a coté de quelque chose)
Mince.
La librairie Adafruit te permet d'adopter un autre port I2C :
Adafruit_BMP280(TwoWire *theWire = &Wire);
Et elle possède une méthode seaLevelForAltitude().
Complément : comment choisir d'autres pins
Mais je suppose que tu sais déjà.
L'altitude indiquée par n'importe quel altimètre est basée sur la pression barométrique et celle-ci change continuellement. Ni le BMP280 ni d'autres altimètres ne vous donneront la même altitude au même endroit par un jour ensoleillé ou pluvieux (elle peut varier de plusieurs centaines de mètres).
Faites un test simple pour voir si ça se passe bien, mettez-le sur le sol et ensuite levez-le de 1mts, s'il détecte le changement bien vous avez tout bien connecté et programmé.
Super, merci pour le lien.
J'était bien passé sur ce tuto, mais j'avais du m'arrêter au scan et wire.begin(sda,scl)
En voyant que je récuperais bien l'adresse du BMP je n'avais pas été plus loin.
Je vais regarder au calme le twoWire et essayer de l'implementer avec la lib adafruit.
Ok merci. Je pensais que l'altitude serait plus précise (bien que n'en ayant pas forcement besoin)
Pourquoi quand j'essais un truc sa part toujours dans un délire par possible ?!
Je n'y suis pas parvenu. Mais je crois que les librairies adafruit BMP280 et BME280 sont faites différement.
Je trouve ça dans la BME :
// constructors
Adafruit_BME280();
Adafruit_BME280(int8_t cspin, SPIClass *theSPI = &SPI);
Adafruit_BME280(int8_t cspin, int8_t mosipin, int8_t misopin, int8_t sckpin);
~Adafruit_BME280(void);
bool begin(uint8_t addr = BME280_ADDRESS, TwoWire *theWire = &Wire);
bool init();
Et ça dans la BMP :
**Adafruit_BMP280(TwoWire *theWire = &Wire);**
Adafruit_BMP280(int8_t cspin, SPIClass *theSPI = &SPI);
Adafruit_BMP280(int8_t cspin, int8_t mosipin, int8_t misopin, int8_t sckpin);
~Adafruit_BMP280(void);
bool begin(uint8_t addr = BMP280_ADDRESS, uint8_t chipid = BMP280_CHIPID);
Donc a priori, on ne peut pas passer le "TwoWire" dans le begin du BMP (et le compilateur me jette)
J'ai également essayé un truc comme ça, mais je n'ai rien qui debarque sur mon interface serie, je pense donc que ca ne fonctionne pas non plus
#include <Wire.h>
#include <Adafruit_BMP280.h>
#define I2C_SDA 38
#define I2C_SCL 37
TwoWire I2CBMP = TwoWire(0);
Adafruit_BMP280 bmp(&I2CBMP);
void setup() {
Serial.begin(9600);
I2CBMP.begin(I2C_SDA, I2C_SCL, 400000);
while ( !Serial ) delay(100); // wait for native usb
Serial.println(F("BMP280 test"));
unsigned status;
//status = bmp.begin(BMP280_ADDRESS_ALT, BMP280_CHIPID);
status = bmp.begin();
[...]
Après la chronologie ( I2CBMP.begin après Adafruit_BMP280 bmp(&I2CBMP); explique peut être que sa ne marche pas ?)
Je suis bien au dela de ce que je sais faire 
Sa fonctionne ^^
J'etais simplement pas sur la bonne adresse de module : j'avais mis à l'etat bas la broche SDO, en la metant en état haut c'est Ok !
Les BME280 et BMP280 sont SPI ou I2C, en fonction du câblage d'une pin CSB.
Tout dépend de ton module, mais il y a de fortes chances pour que ce soit I2C.
C'est compliqué d'essayer de comprendre comment fonctionne un librairie (premiere fois que j'ouvrais un fichier de librairie) et de gerer la partie cablage en même temps (certaine on par défaut l'adresse de SDO à état haut, d'autre à état bas).
Et sa n'aide pas que les deux librairie Adafruit BME280 et BMP280 n'utilise pas twowire au même endroit !
En fait faut peut être que je picole un peu avant de m'y mettre, histoire d'être extralucide 
Déjà essayé. Ça marche plus ou moins ...
C'est une bonne habitude à prendre.
Bon, j'ai entre 0.8°c et 1°c de plus avec le BMP280 que la température à priori "réel"...
(Deux thermomètres différents qui m'indiquent au même endroit chacun une température identique à 0.1°c près)
La pression niveau de la mer n'influence pas la température apparemment. Je continue de chercher ...
Oui, les BMP280 et BME280 ont une précision de +/- 1°C.
Ce n'est pas des plus précis, mais rien ne t'empêche d'ajouter un capteur de température plus performant. Un article où j'ai regroupé pas mal de caractéristiques et de tests de capteurs :
Je suis tombé dans le panneau... Confusion de ma part * entre précision et résolution merci la précipitation !
Je m'attendais à avoir un précision de 0.01°c, mais non c'est la résolution.
(* mais pas que... le 2eme résultat google avec BMP280 (site gotronic) fait aussi la confusion...)
Sa aura eu le mérite de me faire progresser sur l'I2C et ESP32-S2... J'ai plus qu'à prendre le temps de trouver un capteur qui me convient...
Les capteurs très précis en température sont rares. Mais tout dépend de l'application, en domestique, 0.5° suffisent souvent.