#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define SDA_PIN 21
#define SCL_PIN 19
#define ECHO_PIN1 32
#define TRIG_PIN1 33
#define ECHO_PIN2 34 // Change these to the appropriate pins
#define TRIG_PIN2 35 // for your sensors
#define ECHO_PIN3 22
#define TRIG_PIN3 23
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT);
void setup() {
Serial.begin(115200);
Wire.begin(SDA_PIN, SCL_PIN);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("SSD1306 allocation failed");
for (;;)
;
}
pinMode(TRIG_PIN1, OUTPUT);
pinMode(ECHO_PIN1, INPUT);
pinMode(TRIG_PIN2, OUTPUT);
pinMode(ECHO_PIN2, INPUT);
pinMode(TRIG_PIN3, OUTPUT);
pinMode(ECHO_PIN3, INPUT);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
}
void loop() {
long duration1, distance1;
long duration2, distance2;
long duration3, distance3;
digitalWrite(TRIG_PIN1, LOW);
digitalWrite(TRIG_PIN2, LOW);
digitalWrite(TRIG_PIN3, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN1, HIGH);
digitalWrite(TRIG_PIN2, HIGH);
digitalWrite(TRIG_PIN3, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN1, LOW);
digitalWrite(TRIG_PIN2, LOW);
digitalWrite(TRIG_PIN3, LOW);
duration1 = pulseIn(ECHO_PIN1, HIGH);
distance1 = duration1 * 0.0343 / 2;
duration2 = pulseIn(ECHO_PIN2, HIGH);
distance2 = duration2 * 0.0343 / 2;
duration3 = pulseIn(ECHO_PIN3, HIGH);
distance3 = duration3 * 0.0343 / 2;
Serial.print("Distance 1: ");
Serial.println(distance1);
Serial.print("Distance 2: ");
Serial.println(distance2);
Serial.print("Distance 3: ");
Serial.println(distance3);
display.clearDisplay();
display.setCursor(0, 0);
display.setTextSize(1);
display.setTextColor(WHITE);
display.print("1: ");
if (distance1 < 200) {
display.println("Occupied");
} else {
display.println("Free");
}
display.print("2: ");
if (distance2 < 200) {
display.println("Occupied");
} else {
display.println("Free");
}
display.print("3: ");
if (distance3 < 200) {
display.println("Occupied");
} else {
display.println("Free");
}
display.display();
delay(1000);
}