#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // Largeur de l'écran OLED (en pixels)
#define SCREEN_HEIGHT 64 // Hauteur de l'écran OLED (en pixels)
// Créez une instance de l'écran OLED avec l'adresse I2C 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
const int pirSensorPin = 2; // Connectez le capteur PIR au pin 2
int detectedCount = 0; // Compteur de pièces détectées
void setup() {
Wire.begin();
pinMode(pirSensorPin, INPUT); // Le capteur PIR est une entrée
// Initialisez l'écran OLED
if (!display.begin(0x3C, 4, 5)) {
Serial.println(F("Echec de l'initialisation de l'écran OLED"));
for (;;);
}
display.display(); // Effacez l'écran OLED
delay(2000); // Attendez 2 secondes
display.clearDisplay();
// Initialisez la communication série
Serial.begin(11520);
}
void loop() {
int pirState = digitalRead(pirSensorPin); // Lisez l'état du capteur PIR
if (pirState == HIGH) {
// Le capteur PIR a détecté un mouvement
detectedCount++; // Incrémentez le compteur
// Effacez l'écran OLED
display.clearDisplay();
// Affichez le message avec le nombre de pièces détectées sur l'écran OLED
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.print(F("Pièce détectée : "));
display.println(detectedCount);
// Actualisez l'écran OLED
display.display();
// Affichez le message sur le moniteur série
Serial.print(F("Pièce détectée : "));
Serial.println(detectedCount);
}
delay(3000); // Attendez un court instant pour éviter les détections répétées
}