// Inclusion des bibliothèques nécessaires
#include <DHT.h> // Bibliothèque pour le capteur DHT
#include <Adafruit_MPU6050.h> // Bibliothèque pour le capteur MPU6050
#include <Adafruit_Sensor.h> // Bibliothèque pour les capteurs Adafruit
#include <Wire.h> // Bibliothèque pour la communication I2C
// Définition des constantes et variables
#define DHTPIN 2 // Broche de données du capteur DHT
#define DHTTYPE 22 // Type de capteur DHT (DHT22)
// Création d'une instance DHT
DHT dht(DHTPIN, DHTTYPE);
Adafruit_MPU6050 mpu; // Instance pour le capteur MPU6050
void setup(void) {
// Initialisation du capteur DHT
dht.begin();
Serial.begin(9600); // Initialisation de la communication série
// Initialisation du capteur MPU6050
if (!mpu.begin()) { // Vérifier si le capteur MPU6050 est détecté
Serial.println("Failed to find MPU6050 chip");
while (1) {
delay(10);
}
}
mpu.setAccelerometerRange(MPU6050_RANGE_16_G); // Configuration de la plage de l'accéléromètre
mpu.setGyroRange(MPU6050_RANGE_250_DEG); // Configuration de la plage du gyroscope
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ); // Configuration de la bande passante
delay(100); // Délai pour laisser le capteur s'initialiser
}
void loop() {
// Lecture des données du capteur DHT
float temp = dht.readTemperature(); // Température
float hum = dht.readHumidity(); // Humidité
// Lecture des données du capteur MPU6050
sensors_event_t a, g, tempmpu;
mpu.getEvent(&a, &g, &tempmpu);
// Envoi des données vers la passerelle toutes les 2 secondes
// Format des données: #hum,temp,acc_x,acc_y,acc_z,gyro_x,gyro_y,gyro_z
// Exemple: #82.00,28.00,5.39,1.47,12.26,0.09,0.52,0.26
Serial.println("#" + String(hum) + "," + String(temp) + "," + String(a.acceleration.x) + "," + String(a.acceleration.y) + "," + String(a.acceleration.z) + "," + String(g.gyro.x) + "," + String(g.gyro.y) + "," + String(g.gyro.z));
delay(3000); // Attente de 3 secondes avant la prochaine lecture
}