#include <LiquidCrystal_I2C.h>
#include "TM1637Display.h"
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define led 27
#define buzzer 4
#define btn 14
#define trig 15
#define Echo 2
#define buzzerb 4
#define red 21
#define DCLK 13
#define DIO 12
#define green 19
#define blue 18
int duration=0,distance=0;
TM1637Display OurDisplay = TM1637Display(DCLK, DIO);
void setup() {
OurDisplay.setBrightness(7);
OurDisplay.clear();
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(led,OUTPUT);
pinMode(trig, OUTPUT);
pinMode(btn, INPUT_PULLUP);
pinMode(Echo, INPUT);
pinMode(red,OUTPUT);
pinMode(green,OUTPUT);
pinMode(blue,OUTPUT);
}
int ultrasonic(){
digitalWrite(trig,LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig,LOW);
duration=pulseIn(Echo,HIGH);
distance=duration*0.034/2;
return distance;
}
void loop()
{
Serial.println(ultrasonic());
if(ultrasonic() < 20)
{
digitalWrite(buzzer, HIGH);
}
else
{
digitalWrite(buzzer, LOW);
}
if(digitalRead(btn))
{
digitalWrite(led, HIGH);
}else
{
digitalWrite(led, LOW);
}
OurDisplay.showNumberDecEx(ultrasonic());
Serial.println(ultrasonic());
lcd.init();
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Distance of object");
lcd.setCursor(0,1);
lcd.print(ultrasonic());
if(ultrasonic()>0 && ultrasonic()<100){
digitalWrite(red, HIGH);
digitalWrite(green, LOW);
digitalWrite(blue, LOW);
}
else if(ultrasonic()>=100 && ultrasonic()<250){
digitalWrite(red, LOW);
digitalWrite(green, HIGH);
digitalWrite(blue, LOW);
}
else{
digitalWrite(red, LOW);
digitalWrite(green, LOW);
digitalWrite(blue, HIGH);
}
}