import machine
import time
import ssd1306
i2c = machine.I2C(0, sda=machine.Pin(4), scl=machine.Pin(5), freq=400000)
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
sensor_temp = machine.ADC(4)
conversion_factor = 3.3 / 65535
pot = machine.ADC(26)
print("Experiment: I2C OLED Display with Temp + Potentiometer")
while True:
reading = sensor_temp.read_u16() * conversion_factor
temperature = 27 - (reading - 0.706) / 0.001721
pot_value = pot.read_u16()
pot_voltage = pot_value * conversion_factor # convert to voltage (0–3.3V)
oled.fill(0)
oled.text("IOT MONITOR", 20, 0)
oled.hline(0, 10, 128, 1)
oled.text("Status: Online", 0, 20)
oled.text(f"Temp: {temperature:.1f}C", 0, 35)
oled.text(f"Pot: {pot_value}", 0, 50) # raw value
oled.show()
time.sleep(1)Loading
pi-pico-w
pi-pico-w
Loading
ssd1306
ssd1306