/*
* This ESP32 code is created by esp32io.com
*
* This ESP32 code is released in the public domain
*
* For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-oled
*/
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include "WiFi.h"
const int trigPin = 2;
const int echoPin = 4;
const int buzPin = 15;
float duration;
int distance;
#define SCREEN_WIDTH 128 // OLED width, in pixels
#define SCREEN_HEIGHT 64 // OLED height, in pixels
// create an OLED display object connected to I2C
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
Serial.begin(11520);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzPin, OUTPUT);
// initialize OLED display with I2C address 0x3C
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("failed to start SSD1306 OLED"));
while (1);
}
delay(2000); // wait two seconds for initializing
oled.clearDisplay(); // clear display
oled.setTextSize(3); // set text size
oled.setTextColor(WHITE); // set text color
oled.setCursor(5, 15); // set position to display
oled.println("YODDHA"); // set text
oled.display();
delay(2000);
oled.clearDisplay();
oled.setTextSize(1.5);
oled.setTextColor(WHITE);
oled.setCursor(0,5);
oled.print("Initialising Wifi");
WiFi.mode(WIFI_STA);
delay(500);
oled.setCursor(0, 30);
oled.print("Serup is done");
oled.display();
delay(1500);
oled.clearDisplay();
}
void loop() {
oled.setTextSize(1);
oled.setCursor(0,10);
oled.print("Scanning.....");
oled.display();
delay(100);
int n = WiFi.scanNetworks();
oled.clearDisplay();
if (n == 0) {
oled.print("No Networks found");
oled.display();
} else {
oled.setCursor(0, 32);
oled.print(n);
oled.print("Networks Found ");
oled.display();
for (int i = 0; i<n; ++i) {
oled.setCursor(0, 45);
oled.print(i + 1);
oled.print(";");
oled.print(WiFi.SSID(i));
oled.print("i");
oled.print(WiFi.RSSI(i));
oled.display();
delay(10);
}
}
delay(100);
//ultrasonic sensor loop program
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration*0.034/2;
oled.setCursor(0, 55);
oled.print("Distance : ");
oled.print(distance);
oled.println(" cm");
oled.display();
delay(100);
if (distance<100)
{
digitalWrite(buzPin, HIGH);
}
else
{
digitalWrite(buzPin, LOW);
}
}