#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // Adresse I2C de l'écran LCD
const int ledPin = 23; // Broche pour la LED
const float conversionFactor = 6894.76; // Constante de conversion en Pa/V
const int sensorPin = 2 ; // Broche analogique pour le capteur de pression sur ESP32
const float oilPressureThreshold = 20000; // Seuil de pression d'huile pour l'alarme en Pa
void setup() {
Serial.begin(115200);
lcd.begin(16, 2);
pinMode(ledPin, OUTPUT);
lcd.init();
lcd.backlight();
}
void loop() {
// Lire la valeur analogique du capteur de pression
int sensorValue = analogRead(sensorPin);
// Convertir la valeur analogique en tension en Volts
float voltage = sensorValue * (3.3 / 4095.0);
// Convertir la tension en pression en Pascals
float pressurePa = voltage * conversionFactor;
Serial.print("Pression = ");
Serial.print(pressurePa);
Serial.println(" Pa");
// Vérifier si la pression d'huile est très élevée
if (pressurePa > oilPressureThreshold) {
digitalWrite(ledPin, HIGH); // Allumer la LED
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("ALARM! High Oil Pressure");
lcd.setCursor(0, 1);
lcd.print("P= ");
lcd.print(pressurePa);
lcd.print(" Pa");
} else {
digitalWrite(ledPin, LOW); // Éteindre la LED
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Pression d'huile: ");
lcd.setCursor(0, 1);
lcd.print(pressurePa);
lcd.print(" Pa");
}
delay(1000); // Attendre une seconde entre les mesures
}