Bonjour à tous.
Je souhaite réaliser une petite station météo avec un arduino nano. Du moins pour le moment récupérer la température et la pression atmosphérique et peut être l’humidité. Certainement avec un capteur du luminosité pour adapter la luminosité de l'afficheur LCD si possible. Je commence à tester les différents éléments en fonction des commandes reçues.
Je rencontre un premier problème avec capteur de pression/température : les données renvoyées sont fausses.
Matériel :
- Arduino Nano (du moins un copie : Geekcreit ATmega328P Nano V3 Version Améliorée)
- un capteur GY-BMP280-3.3
Câblage :
- BMP280 VCC -> 3,3V Arduino
- BMP280 GND -> GND Arduino
- BMP280 SCL -> A5 Arduino
- BMP280 SDA -> A4 Arduino
- BMP280 SD0 -> GND Arduino (pour forcer l'adresse 0x76 du capteur)
Code : (pris simplement de la librairie Adafruit)
MODERATOR EDIT- added code tags
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_BMP280.h>
Adafruit_BMP280 bmp; // use I2C interface
Adafruit_Sensor *bmp_temp = bmp.getTemperatureSensor();
Adafruit_Sensor *bmp_pressure = bmp.getPressureSensor();
void setup() {
Serial.begin(9600);
Serial.println(F("BMP280 Sensor event test"));
//if (!bmp.begin(BMP280_ADDRESS_ALT, BMP280_CHIPID)) {
if (!bmp.begin()) {
Serial.println(F("Could not find a valid BMP280 sensor, check wiring or "
"try a different address!"));
while (1) delay(10);
}
/* Default settings from datasheet. */
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */
Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */
Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */
Adafruit_BMP280::FILTER_X16, /* Filtering. */
Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */
bmp_temp->printSensorDetails();
}
void loop() {
sensors_event_t temp_event, pressure_event;
bmp_temp->getEvent(&temp_event);
bmp_pressure->getEvent(&pressure_event);
Serial.print(F("Temperature = "));
Serial.print(temp_event.temperature);
Serial.println(" *C");
Serial.print(F("Pressure = "));
Serial.print(pressure_event.pressure);
Serial.println(" hPa");
Serial.println();
delay(5000);
}
Info du port COM :
11:24:03.572 -> BMP280 Sensor event test
11:24:03.720 -> ------------------------------------
11:24:03.720 -> Sensor: BMP280
11:24:03.720 -> Type: Ambient Temp (C)
11:24:03.773 -> Driver Ver: 1
11:24:03.820 -> Unique ID: 280
11:24:03.820 -> Min Value: -40.00
11:24:03.820 -> Max Value: 85.00
11:24:03.874 -> Resolution: 0.01
11:24:03.874 -> ------------------------------------
11:24:03.920 ->
11:24:03.920 -> Temperature = 186.86 C
11:24:03.920 -> Pressure = 1186.97 hPa
11:24:03.974 ->
11:24:08.945 -> Temperature = 186.86 C
11:24:08.945 -> Pressure = 1186.96 hPa
11:24:08.945 ->
11:24:13.925 -> Temperature = 186.86 C
11:24:13.925 -> Pressure = 1186.95 hPa
11:24:13.972 ->
J'ai essayé avec deux capteurs différents et j'ai le même résultat. En prenant l'adresse 0x77 (3,3V sur SD0) aussi.
Je pense passer à coté de quelque chose car deux capteurs défectueux au même moment serait bizarre.
Avez vous une idée ?
Merci d'avance