#define BLYNK_TEMPLATE_ID "TMPL3UTNvPxn6"
#define BLYNK_TEMPLATE_NAME "MPU6050"
#define BLYNK_AUTH_TOKEN "HzjqirkUnILtyZJq8oYiMwhMTmQDQrj3"
#include <Wire.h>
#include <MPU6050.h>
#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
MPU6050 mpu;
BlynkTimer timer;
LiquidCrystal_I2C lcd(0x27, 16, 2);
char auth[] = "HzjqirkUnILtyZJq8oYiMwhMTmQDQrj3"; // You'll receive this after creating a Blynk project
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
int16_t ax, ay, az;
int16_t gx, gy, gz;
String error;
void sendSensorData()
{
float accelX = ax / 16384.0;
float accelY = ay / 16384.0;
float accelZ = az / 16384.0;
float accelMagnitude = sqrt(pow(accelX, 2) + pow(accelY, 2) + pow(accelZ, 2));
mpu.getAcceleration(&ax, &ay, &az);
mpu.getRotation(&gx, &gy, &gz);
Serial.print("Accel (g): X=");
Serial.print(accelX, 2);
Serial.print(" Y=");
Serial.print(accelY, 2);
Serial.print(" Z=");
Serial.print(accelZ, 2);
Serial.print(" Magnitude=");
Serial.println(accelMagnitude, 2);
lcd.setCursor(0, 0);
lcd.print("Magnitude:");
lcd.setCursor(0, 1);
lcd.print(accelMagnitude, 2);
if (accelMagnitude>1){
lcd.setCursor(0, 1);
lcd.print("error");
Blynk.virtualWrite(V4, "error");
}
else{
Blynk.virtualWrite(V4, " no error");
}
Blynk.virtualWrite(V0, accelX);
Blynk.virtualWrite(V1, accelY);
Blynk.virtualWrite(V2, accelZ);
Blynk.virtualWrite(V3, accelMagnitude);
}
void setup() {
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
lcd.print("MPU6050 Ready");
mpu.initialize();
lcd.init();
lcd.backlight();
if (mpu.testConnection()) {
Serial.println("MPU6050 is connected");
lcd.setCursor(0, 1);
lcd.print("Connected");
} else {
Serial.println("MPU6050 connection failed");
lcd.setCursor(0, 1);
lcd.print("Conn Failed");
while (1);
}
timer.setInterval(1000L, sendSensorData);
delay(2000);
lcd.clear();
}
void loop() {
Blynk.run();
timer.run();
delay(500);
}