print("Hello, ESP32!")

import machine
from utime import sleep
import ssd1306
import mpu6050

sda = machine.Pin(21)
scl = machine.Pin(22)
i2c = machine.SoftI2C(sda=sda, scl=scl, freq=100000)

oled = ssd1306.SSD1306_I2C(128, 64, i2c)
mpu = mpu6050.MPU6050(i2c)

def main():
    while True:
        sensor_data = read_mpu_data()
        display_on_oled(sensor_data)
        sleep(1)

def read_mpu_data():
    accel = mpu.read_accel_data()
    gyro = mpu.read_gyro_data()
    temp = mpu.read_temperature()

    print("Accel:", accel)
    print("Gyro:", gyro)
    print("Temp:", temp)

    return {
        'accel': accel,
        'gyro': gyro,
        'temp': temp
    }

def display_on_oled(data):
    accel = data['accel']
    gyro = data['gyro']
    temp = data['temp']

    oled.fill(0) 

    oled.text("Temp: {:.1f}C".format(temp), 0, 0)

    oled.text("Ax:{:>5.1f}".format(accel[0]), 0, 12)
    oled.text("Ay:{:>5.1f}".format(accel[1]), 64, 12)

    oled.text("Gx:{:>5.1f}".format(gyro[0]), 0, 24)
    oled.text("Gy:{:>5.1f}".format(gyro[1]), 64, 24)

    oled.text("Az:{:>5.1f} Gz:{:>5.1f}".format(accel[2], gyro[2]), 0, 36)

    oled.show()

if __name__ == '__main__':
    main()

D0D1D2D3D4D5D6D7GNDLOGIC