#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DFRobotDFPlayerMini.h>
#include <SoftwareSerial.h>
// Definições da tela OLED
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
// DFPlayer Mini
SoftwareSerial mp3Serial(10, 11); // RX, TX
DFRobotDFPlayerMini mp3;
// Pinos dos sensores
const int PIR_PIN = 5; // Sensor PIR
const int SOUND_PIN = A0; // Sensor de som
const int MPU6050_ADDR = 0x68; // Endereço I2C do acelerômetro
void setup() {
Serial.begin(115200);
// Configuração da tela OLED
if (!display.begin(SSD1306_I2C_ADDRESS, 0x3C)) {
Serial.println("Falha na inicialização do display");
while (true);
}
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println("Ola!");
display.display();
// Configuração do DFPlayer Mini
mp3Serial.begin(9600);
if (!mp3.begin(mp3Serial)) {
Serial.println("Erro no DFPlayer");
while (true);
}
mp3.volume(20);
// Configuração do PIR
pinMode(PIR_PIN, INPUT);
// Configuração do MPU6050
Wire.begin();
Wire.beginTransmission(MPU6050_ADDR);
Wire.write(0x6B);
Wire.write(0);
Wire.endTransmission(true);
}
void loop() {
// Detecta presença
if (digitalRead(PIR_PIN) == HIGH) {
display.clearDisplay();
display.setCursor(0, 0);
display.println("Ola, amigo!");
display.display();
mp3.play(1); // Reproduz o primeiro áudio do microSD
delay(2000);
}
// Detecta som
int soundLevel = analogRead(SOUND_PIN);
if (soundLevel > 500) {
display.clearDisplay();
display.setCursor(0, 0);
display.println("Que barulho!");
display.display();
mp3.play(2); // Reproduz o segundo áudio do microSD
delay(2000);
}
// Detecta aceleração
Wire.beginTransmission(MPU6050_ADDR);
Wire.write(0x3B);
Wire.endTransmission(false);
Wire.requestFrom(MPU6050_ADDR, 6, true);
int16_t ax = Wire.read() << 8 | Wire.read();
if (ax > 10000) { // Ajuste o limite conforme necessário
display.clearDisplay();
display.setCursor(0, 0);
display.println("Socorro!");
display.display();
mp3.play(3); // Reproduz o terceiro áudio do microSD
delay(2000);
}
}