Bonjour, je me suis lancé dans un projet où j'utilise
un esp32-C3 référence: https://fr.aliexpress.com/item/1005007032546456.html
un capteur 2-in-1 BMP280 + AHT20 : https://fr.aliexpress.com/item/1005007628762963.html
et un écran ssd1306 ou 1315 : https://fr.aliexpress.com/item/1005004993682117.html
et j'ai le code mais je sais pas si il est juste :
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_AHTX0.h>
#include <Adafruit_BMP280.h>
// OLED display size
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
// I2C pins for AHT20
#define AHT20_SDA 8
#define AHT20_SCL 9
// I2C pins for BMP280
#define BMP280_SDA 10
#define BMP280_SCL 11
// I2C addresses
#define AHT20_I2C_ADDRESS 0x38
#define BMP280_I2C_ADDRESS 0x76
// Create I2C instances
TwoWire I2C_AHT20 = TwoWire(0);
TwoWire I2C_BMP280 = TwoWire(1);
// Initialize the display
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire);
// Initialize sensors
Adafruit_AHTX0 aht;
Adafruit_BMP280 bmp;
void setup() {
// Start serial communication
Serial.begin(115200);
// Initialize I2C buses
I2C_AHT20.begin(AHT20_SDA, AHT20_SCL);
I2C_BMP280.begin(BMP280_SDA, BMP280_SCL);
// Initialize the OLED display
if (!display.begin(SSD1306_I2C_ADDRESS, 0x3C)) {
Serial.println("Failed to initialize SSD1315 display!");
while (1);
}
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.println("Initializing...");
display.display();
// Initialize AHT20 sensor
if (!aht.begin(&I2C_AHT20)) {
Serial.println("Failed to initialize AHT20 sensor!");
display.clearDisplay();
display.println("AHT20 Error");
display.display();
while (1);
}
// Initialize BMP280 sensor
if (!bmp.begin(BMP280_I2C_ADDRESS, &I2C_BMP280)) {
Serial.println("Failed to initialize BMP280 sensor!");
display.clearDisplay();
display.println("BMP280 Error");
display.display();
while (1);
}
// Display ready message
display.clearDisplay();
display.println("Weather Station Ready!");
display.display();
delay(2000);
}
void loop() {
// Read data from AHT20 sensor
sensors_event_t humidity, temp;
aht.getEvent(&humidity, &temp);
// Read data from BMP280 sensor
float pressure = bmp.readPressure() / 100.0F; // Convert to hPa
// Clear the display
display.clearDisplay();
// Display temperature
display.setCursor(0, 0);
display.print("Temp: ");
display.print(temp.temperature);
display.println(" C");
// Display humidity
display.print("Humidity: ");
display.print(humidity.relative_humidity);
display.println(" %");
// Display pressure
display.print("Pressure: ");
display.print(pressure);
display.println(" hPa");
// Update the display
display.display();
// Print to Serial Monitor for debugging
Serial.print("Temperature: ");
Serial.print(temp.temperature);
Serial.println(" C");
Serial.print("Humidity: ");
Serial.print(humidity.relative_humidity);
Serial.println(" %");
Serial.print("Pressure: ");
Serial.print(pressure);
Serial.println(" hPa");
// Delay before next update
delay(2000);
}
Si quelqu'un aurait l'aimabilité de le contrôler car je viens de me lancer dedans merci