// BuzzRide
// by Ayush Sharma
// https://github.com/Ayush-Zone
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
int buzzerPin = 2;
#include <ESP32WiFi.h>
#include <ESP32WebServer.h>
// #include <ESP8266WiFi.h>
// #include <ESP8266WebServer.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
const char *ssid = "ESP8266_AP";
const char *password = "12345678";
ESP8266WebServer server(80);
void handleCalling() {
String number = server.arg("number");
String message = server.arg("message");
Serial.print("Received Number: ");
Serial.println(number);
Serial.print("Received Message: ");
Serial.println(message);
if (message == "incoming") {
call_incoming();
} else if (message == "started") {
call_started();
} else if (message == "ended") {
call_ended();
} else if (message == "buzzon") {
buzzer();
} else {
received_msg(message);
}
String response = "Received number: " + number + "\nMessage: " + message;
server.send(200, "text/plain", response);
}
void handleRoot() {
server.send(200, "text/html", "<h1>ESP8266 Message Receiver</h1><p>Use /calling?number=123&message=hello</p>");
}
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
#define SCREEN_ADDRESS 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
static const unsigned char PROGMEM my_logo[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x00, 0x18, 0x00,
0x01, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xf0, 0x00, 0x00, 0x3c, 0x00,
0x07, 0xff, 0xbf, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf7, 0xf0, 0x00, 0x00, 0x7e, 0x00,
0x0f, 0xf0, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x38, 0x00, 0x00, 0x7c, 0x00,
0x1f, 0xc6, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfc, 0x60, 0x18, 0x38, 0x00, 0xf8, 0x00,
0x3f, 0x0f, 0x81, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0xf0, 0x38, 0x7c, 0x00, 0xf8, 0x00,
0x3e, 0x1f, 0x83, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0xe1, 0xf8, 0x38, 0x78, 0x01, 0xf0, 0x00,
0x7e, 0x1f, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc1, 0xf0, 0x78, 0xf0, 0x01, 0xe0, 0x00,
0x7c, 0x3e, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc3, 0xe0, 0xf0, 0xe0, 0x03, 0xe0, 0x00,
0x3c, 0x3e, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc3, 0xe1, 0xf0, 0xc0, 0x03, 0xc0, 0x00,
0x1c, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc7, 0xc3, 0xe0, 0x00, 0x07, 0xc0, 0x00,
0x00, 0x7f, 0xf8, 0x00, 0x02, 0x18, 0x0e, 0xc0, 0x70, 0x0f, 0xcf, 0xc3, 0x80, 0x47, 0x81, 0xf0,
0x00, 0x7f, 0xfe, 0x07, 0x87, 0x9f, 0xfe, 0xff, 0xf0, 0x0f, 0xbf, 0x87, 0xc3, 0xff, 0x87, 0xf8,
0x00, 0xf8, 0x0f, 0x07, 0xcf, 0x9f, 0xfe, 0xff, 0xf0, 0x1f, 0xff, 0x0f, 0xc7, 0xff, 0x0f, 0xf8,
0x00, 0xf0, 0x01, 0x8f, 0x8f, 0x1f, 0xfe, 0xff, 0xf0, 0x1f, 0xfc, 0x0f, 0x8f, 0xdf, 0x1f, 0xd8,
0x01, 0xf0, 0x01, 0x8f, 0x9f, 0x1f, 0xfc, 0xff, 0xc0, 0x1f, 0xe0, 0x1f, 0x1f, 0x9f, 0x3f, 0x38,
0x01, 0xe0, 0x01, 0xdf, 0x1e, 0x30, 0xe1, 0x87, 0x00, 0x3f, 0x80, 0x1f, 0x1f, 0x3e, 0x3e, 0x70,
0x01, 0xe0, 0x03, 0xdf, 0x3e, 0x21, 0x81, 0x1c, 0x00, 0x3f, 0xc0, 0x1e, 0x3e, 0x3e, 0x3c, 0xf2,
0x01, 0xe0, 0x0f, 0xfe, 0x3c, 0x67, 0x03, 0x38, 0x00, 0x7d, 0xc0, 0x3e, 0x7e, 0x7e, 0x7f, 0xc6,
0x10, 0xe0, 0x7f, 0xbe, 0x7c, 0xce, 0x02, 0x70, 0x00, 0x7d, 0xe0, 0x3c, 0x7c, 0xfc, 0x7f, 0x04,
0x18, 0x01, 0xff, 0x3c, 0x7c, 0xdf, 0x04, 0xf8, 0x00, 0xf9, 0xe0, 0x3c, 0xfc, 0xfc, 0xfc, 0x18,
0x0f, 0xff, 0xfe, 0x3c, 0xfd, 0xbf, 0xd9, 0xfe, 0xc0, 0xf8, 0xf0, 0x3d, 0xff, 0xbd, 0xbe, 0x38,
0x07, 0xff, 0xf8, 0x1f, 0x9f, 0x7f, 0xfb, 0xff, 0xc0, 0xf0, 0xf8, 0x1f, 0x3f, 0x1f, 0x3f, 0xf0,
0x03, 0xff, 0xe0, 0x1f, 0x0e, 0x3f, 0xf3, 0xff, 0x80, 0x70, 0xfc, 0x06, 0x1e, 0x0e, 0x1f, 0xc0,
0x00, 0x7e, 0x00, 0x00, 0x00, 0x20, 0xe1, 0x07, 0x00, 0x30, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xe0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x02, 0x00, 0x00, 0x70, 0x00, 0x00, 0x08, 0x00, 0xe2, 0x0f, 0xc0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x02, 0x00, 0x00, 0x88, 0x00, 0x00, 0x08, 0x01, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x03, 0xc4, 0x40, 0x89, 0x12, 0x23, 0x8f, 0x01, 0x03, 0xc3, 0x89, 0x9d, 0x87, 0x00, 0x00,
0x00, 0x02, 0x24, 0x40, 0x89, 0x12, 0x24, 0x08, 0x80, 0xe2, 0x20, 0x4a, 0x12, 0x40, 0x80, 0x00,
0x00, 0x02, 0x24, 0x40, 0xf9, 0x12, 0x23, 0x88, 0x80, 0x12, 0x23, 0xcc, 0x12, 0x47, 0x80, 0x00,
0x00, 0x02, 0x23, 0xc0, 0x88, 0xf2, 0x20, 0x48, 0x81, 0x12, 0x24, 0x48, 0x10, 0x48, 0x80, 0x00,
0x00, 0x03, 0xc0, 0x40, 0x88, 0x11, 0xc7, 0x88, 0x80, 0xe2, 0x23, 0xc8, 0x10, 0x47, 0x80, 0x00,
0x00, 0x00, 0x03, 0x80, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
void setup() {
Serial.begin(115200);
pinMode(buzzerPin, OUTPUT);
display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS);
display.clearDisplay();
display.drawBitmap(0, 0, my_logo, 128, 64, 1);
display.display();
notificationTone();
display.clearDisplay();
WiFi.softAP(ssid, password);
Serial.println("Access Point Started");
Serial.print("IP Address: ");
Serial.println(WiFi.softAPIP());
server.on("/", handleRoot);
server.on("/calling", handleCalling);
server.begin();
Serial.println("Web server started");
}
void loop() {
server.handleClient();
}
void call_incoming() {
Serial.println("incomming call");
}
void call_started() {
Serial.println("call started");
}
void call_ended() {
Serial.println("call ended");
// isCallActive = false;
// callStartTime = 0;
// curr_call_msg = "Unknown";
// previousMillis = 0; // Store time for non-blocking counte
// display.clearDisplay();
// display.setCursor(0, 0);
// display.setTextSize(1); // Set text size based on the argument
// display.setTextColor(SSD1306_WHITE);
// display.println("call ended");
// display.println(message); // Display the message based on the argument
// display.display();
}
void received_msg(String message) {
Serial.println(message);
}
void buzzer() {
Serial.println("buzzer on");
for (int i = 0; i < 20; i++) { // Repeat beep 20 times (~10 seconds)
digitalWrite(buzzerPin, HIGH);
delay(300); // Buzzer ON for 300ms
digitalWrite(buzzerPin, LOW);
delay(200); // Buzzer OFF for 200ms
}
}
void notificationTone() {
for (int i = 0; i < 5; i++) {
digitalWrite(buzzerPin, HIGH);
delay(50);
digitalWrite(buzzerPin, LOW);
delay(50);
}
delay(750);
digitalWrite(buzzerPin, HIGH);
delay(250);
digitalWrite(buzzerPin, LOW);
delay(250);
digitalWrite(buzzerPin, HIGH);
delay(100);
digitalWrite(buzzerPin, LOW);
}
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
#define SCREEN_ADDRESS 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
static const unsigned char PROGMEM my_logo[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xc0, 0x00, 0x00, 0x18, 0x00,
0x01, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xf0, 0x00, 0x00, 0x3c, 0x00,
0x07, 0xff, 0xbf, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf7, 0xf0, 0x00, 0x00, 0x7e, 0x00,
0x0f, 0xf0, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x38, 0x00, 0x00, 0x7c, 0x00,
0x1f, 0xc6, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfc, 0x60, 0x18, 0x38, 0x00, 0xf8, 0x00,
0x3f, 0x0f, 0x81, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0xf0, 0x38, 0x7c, 0x00, 0xf8, 0x00,
0x3e, 0x1f, 0x83, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0xe1, 0xf8, 0x38, 0x78, 0x01, 0xf0, 0x00,
0x7e, 0x1f, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc1, 0xf0, 0x78, 0xf0, 0x01, 0xe0, 0x00,
0x7c, 0x3e, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc3, 0xe0, 0xf0, 0xe0, 0x03, 0xe0, 0x00,
0x3c, 0x3e, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc3, 0xe1, 0xf0, 0xc0, 0x03, 0xc0, 0x00,
0x1c, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc7, 0xc3, 0xe0, 0x00, 0x07, 0xc0, 0x00,
0x00, 0x7f, 0xf8, 0x00, 0x02, 0x18, 0x0e, 0xc0, 0x70, 0x0f, 0xcf, 0xc3, 0x80, 0x47, 0x81, 0xf0,
0x00, 0x7f, 0xfe, 0x07, 0x87, 0x9f, 0xfe, 0xff, 0xf0, 0x0f, 0xbf, 0x87, 0xc3, 0xff, 0x87, 0xf8,
0x00, 0xf8, 0x0f, 0x07, 0xcf, 0x9f, 0xfe, 0xff, 0xf0, 0x1f, 0xff, 0x0f, 0xc7, 0xff, 0x0f, 0xf8,
0x00, 0xf0, 0x01, 0x8f, 0x8f, 0x1f, 0xfe, 0xff, 0xf0, 0x1f, 0xfc, 0x0f, 0x8f, 0xdf, 0x1f, 0xd8,
0x01, 0xf0, 0x01, 0x8f, 0x9f, 0x1f, 0xfc, 0xff, 0xc0, 0x1f, 0xe0, 0x1f, 0x1f, 0x9f, 0x3f, 0x38,
0x01, 0xe0, 0x01, 0xdf, 0x1e, 0x30, 0xe1, 0x87, 0x00, 0x3f, 0x80, 0x1f, 0x1f, 0x3e, 0x3e, 0x70,
0x01, 0xe0, 0x03, 0xdf, 0x3e, 0x21, 0x81, 0x1c, 0x00, 0x3f, 0xc0, 0x1e, 0x3e, 0x3e, 0x3c, 0xf2,
0x01, 0xe0, 0x0f, 0xfe, 0x3c, 0x67, 0x03, 0x38, 0x00, 0x7d, 0xc0, 0x3e, 0x7e, 0x7e, 0x7f, 0xc6,
0x10, 0xe0, 0x7f, 0xbe, 0x7c, 0xce, 0x02, 0x70, 0x00, 0x7d, 0xe0, 0x3c, 0x7c, 0xfc, 0x7f, 0x04,
0x18, 0x01, 0xff, 0x3c, 0x7c, 0xdf, 0x04, 0xf8, 0x00, 0xf9, 0xe0, 0x3c, 0xfc, 0xfc, 0xfc, 0x18,
0x0f, 0xff, 0xfe, 0x3c, 0xfd, 0xbf, 0xd9, 0xfe, 0xc0, 0xf8, 0xf0, 0x3d, 0xff, 0xbd, 0xbe, 0x38,
0x07, 0xff, 0xf8, 0x1f, 0x9f, 0x7f, 0xfb, 0xff, 0xc0, 0xf0, 0xf8, 0x1f, 0x3f, 0x1f, 0x3f, 0xf0,
0x03, 0xff, 0xe0, 0x1f, 0x0e, 0x3f, 0xf3, 0xff, 0x80, 0x70, 0xfc, 0x06, 0x1e, 0x0e, 0x1f, 0xc0,
0x00, 0x7e, 0x00, 0x00, 0x00, 0x20, 0xe1, 0x07, 0x00, 0x30, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xe0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x02, 0x00, 0x00, 0x70, 0x00, 0x00, 0x08, 0x00, 0xe2, 0x0f, 0xc0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x02, 0x00, 0x00, 0x88, 0x00, 0x00, 0x08, 0x01, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x03, 0xc4, 0x40, 0x89, 0x12, 0x23, 0x8f, 0x01, 0x03, 0xc3, 0x89, 0x9d, 0x87, 0x00, 0x00,
0x00, 0x02, 0x24, 0x40, 0x89, 0x12, 0x24, 0x08, 0x80, 0xe2, 0x20, 0x4a, 0x12, 0x40, 0x80, 0x00,
0x00, 0x02, 0x24, 0x40, 0xf9, 0x12, 0x23, 0x88, 0x80, 0x12, 0x23, 0xcc, 0x12, 0x47, 0x80, 0x00,
0x00, 0x02, 0x23, 0xc0, 0x88, 0xf2, 0x20, 0x48, 0x81, 0x12, 0x24, 0x48, 0x10, 0x48, 0x80, 0x00,
0x00, 0x03, 0xc0, 0x40, 0x88, 0x11, 0xc7, 0x88, 0x80, 0xe2, 0x23, 0xc8, 0x10, 0x47, 0x80, 0x00,
0x00, 0x00, 0x03, 0x80, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
void setup() {
pinMode(buzzerPin, OUTPUT);
display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS);
display.clearDisplay();
display.drawBitmap(0, 0, my_logo, 128, 64, 1);
display.display();
notificationTone();
display.clearDisplay();
}
void loop() {
}
void notificationTone() {
for (int i = 0; i < 5; i++) {
digitalWrite(buzzerPin, HIGH);
delay(50);
digitalWrite(buzzerPin, LOW);
delay(50);
}
delay(750);
digitalWrite(buzzerPin, HIGH);
delay(250);
digitalWrite(buzzerPin, LOW);
delay(250);
digitalWrite(buzzerPin, HIGH);
delay(100);
digitalWrite(buzzerPin, LOW);
}