#include <IRremote.hpp>
#include <Wire.h>
#include
#include <Adafruit_GFX.h>
<U8g2lib.h>
// OLED SH1107 I2C
U8G2_SH1107_SEEED_128X128_F_HW_I2C display(U8G2_R0);
#define TRIG 9
#define ECHO 10
#define LED 7
#define IR_PIN 2
bool systemOn = true;
void setup() {
Serial.begin(9600);
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
pinMode(LED, OUTPUT);
IrReceiver.begin(IR_PIN);
display.begin();
display.clearBuffer();
display.setFont(u8g2_font_ncenB08_tr);
display.drawStr(5,20,"SYSTEME RADAR");
display.drawStr(5,40,"Demarrage...");
display.sendBuffer();
delay(2000);
}
long mesurerDistance(){
digitalWrite(TRIG,LOW);
delayMicroseconds(2);
digitalWrite(TRIG,HIGH);
delayMicroseconds(10);
digitalWrite(TRIG,LOW);
long duree=pulseIn(ECHO,HIGH);
long distance=duree*0.034/2;
return distance;
}
void loop(){
if(IrReceiver.decode()){
uint32_t code=IrReceiver.decodedIRData.command;
Serial.print("Commande IR : ");
Serial.println(code);
if(code==162){
systemOn=!systemOn;
}
IrReceiver.resume();
}
if(systemOn){
long distance=mesurerDistance();
if(distance<20)
digitalWrite(LED,HIGH);
else
digitalWrite(LED,LOW);
Serial.println("---------------------");
Serial.println("Nom : Michael Kindos");
Serial.print("Distance : ");
Serial.print(distance);
Serial.println(" cm");
display.clearBuffer();
display.setFont(u8g2_font_ncenB08_tr);
display.drawStr(0,15,"Nom:");
display.drawStr(40,15,"Michael");
display.drawStr(0,40,"Etat:");
display.drawStr(50,40,"ON");
display.drawStr(0,65,"Distance:");
display.setCursor(0,90);
display.print(distance);
display.print(" cm");
if(distance<20)
display.drawStr(0,120,"ALERTE !");
else
display.drawStr(0,120,"NORMAL");
display.sendBuffer();
}
else{
digitalWrite(LED,LOW);
display.clearBuffer();
display.drawStr(15,60,"SYSTEME OFF");
display.sendBuffer();
Serial.println("SYSTEME ARRETE");
}
delay(300);
}