from machine import Pin, I2C, ADC
import ssd1306
import time
i2c = I2C(0, sda=Pin(0), scl=Pin(1))
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
sensor = ADC(26)
voltage = 230
total_energy = 0
while True:
raw = sensor.read_u16()
current = (raw / 65535) * 5
power = voltage * current
energy = power / 1000
total_energy += energy
# OLED Display
oled.fill(0)
oled.text("Energy Meter", 0, 0)
oled.text("Power:", 0, 15)
oled.text(str(round(power, 2)) + "W", 0, 25)
oled.text("Energy:", 0, 40)
oled.text(str(round(total_energy, 3)) + "kWh", 0, 50)
oled.show()
print("Power:", round(power, 2), "W")
print("Energy:", round(total_energy, 3), "kWh")
print("----------------------")
time.sleep(2)