#include <Adafruit_MPU6050.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_Sensor.h>
#include <WiFi.h>
#include <ThingSpeak.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const unsigned long myChannelNumber = 2632414;
const char* myWriteAPIKey = "72647Q1HXSURG4GD";
Adafruit_MPU6050 mpu;
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
void setup() {
WiFi.begin(ssid, password);
Serial.print("You Are Connecting to Wi-Fi™⁜");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("You Have Connected to Wi-Fi");
Serial.begin(115200);
Serial.println("MPU6050 OLED demo");
if (!mpu.begin()) {
Serial.println("Sensor init failed");
while (1)
yield();
}
Serial.println("Found a MPU-6050 sensor");
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for (;;)
;
}
display.display();
delay(500);
display.setTextSize(1.5);
display.setTextColor(WHITE);
display.setRotation(0);
}
void loop() {
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
display.clearDisplay();
display.setCursor(0, 0);
Serial.print("Accelerometer ");
Serial.print("X: ");
Serial.print(a.acceleration.x, 1);
Serial.print(" m/s^2, ");
Serial.print("Y: ");
Serial.print(a.acceleration.y, 1);
Serial.print(" m/s^2, ");
Serial.print("Z: ");
Serial.print(a.acceleration.z, 1);
Serial.println(" m/s^2");
display.println("Accelerometer - m/s^2");
display.setCursor(0, 10);
display.print(a.acceleration.x, 1);
display.print(", ");
display.print(a.acceleration.y, 1);
display.print(", ");
display.print(a.acceleration.z, 1);
display.println("");
Serial.print("Gyroscope ");
Serial.print("X: ");
Serial.print(g.gyro.x, 1);
Serial.print(" rps, ");
Serial.print("Y: ");
Serial.print(g.gyro.y, 1);
Serial.print(" rps, ");
Serial.print("Z: ");
Serial.print(g.gyro.z, 1);
Serial.println(" rps");
Serial.print("Temperature: ");
Serial.print(temp.temperature);
Serial.print(" degC");
Serial.println(" ");
display.setCursor(0, 26);
display.println("Gyroscope - rps");
display.setCursor(0, 38);
display.print(g.gyro.x, 1);
display.print(", ");
display.print(g.gyro.y, 1);
display.print(", ");
display.print(g.gyro.z, 1);
display.println("");
display.setCursor(0, 55);
display.print("Temp: ");
display.print(temp.temperature);
display.print(" degC");
display.display();
delay(100);
ThingSpeak.setField(6,a.acceleration.x);
ThingSpeak.setField(7, g.gyro.x);
int httpCode = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
if(httpCode == 200) {
Serial.println("Data sent successfully.");
} else {
Serial.print("Error sending data: ");
Serial.println(httpCode);
}
delay(8000);
}