#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_MPU6050.h>
#include "DHT.h"
// Initialisation du capteur MPU6050
Adafruit_MPU6050 mpu;
// Configuration du DHT22
#define DHTPIN 2 // Broche DATA du DHT22 connectée à D2
#define DHTTYPE DHT22 // Type du capteur
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Wire.begin(); // Initialisation du bus I2C
// Initialisation du MPU6050
if (!mpu.begin(0x68)) { // Adresse par défaut du MPU6050
Serial.println("Erreur : MPU6050 introuvable !");
while (1);
}
Serial.println("MPU6050 initialisé avec succès !");
// Configuration du MPU6050
mpu.setAccelerometerRange(MPU6050_RANGE_2_G);
mpu.setGyroRange(MPU6050_RANGE_250_DEG);
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
// Initialisation du DHT22
dht.begin();
Serial.println("DHT22 initialisé avec succès !");
delay(100);
}
void loop() {
sensors_event_t a, g, temp;
// Lecture des événements du MPU6050
mpu.getEvent(&a, &g, &temp);
// Affichage des données d'accélération
Serial.println("=== MPU6050 Lecture ===");
Serial.println("Accélération (X, Y, Z): (" + String(a.acceleration.x) + " ," +String(a.acceleration.y) + " ," +String(a.acceleration.z)+")");
// Affichage des données de gyroscope
Serial.println("Rotation (X, Y, Z): (" + String(g.gyro.x) + " ," +String(g.gyro.y) + " ," +String(g.gyro.z)+")");
// Affichage de la température du MPU6050
Serial.print("Température MPU6050: ");
Serial.print(temp.temperature);
Serial.println(" °C");
// Lecture et affichage des données du DHT22
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Erreur de lecture du DHT22 !");
} else {
Serial.println("=== DHT22 Lecture ===");
Serial.print("Température DHT22: ");
Serial.print(t);
Serial.println(" °C");
Serial.print("Humidité DHT22: ");
Serial.print(h);
Serial.println(" %");
}
Serial.println("----------------------------");
delay(5000); // Pause de 5 secondes
}