How to display adc sensor value to OLED screen?

Hi! I’m trying to display a value of an adc photoresistor to the OLED, but I’m getting an error.

Compiling /data/blinds-bedroom/.pioenvs/blinds-bedroom/src/main.cpp.o
/config/esphome/blinds-bedroom.yaml: In lambda function:
/config/esphome/blinds-bedroom.yaml:71:63: error: no matching function for call to 'esphome::display::DisplayBuffer::print(int, int, esphome::display::Font*&, const char [6], float&)'
        it.print(0, 15, id(calibri1), "% Lux", id(ambient_sensor).state);
                                                               ^
In file included from src/esphome.h:19:0,
                 from src/main.cpp:3:
src/esphome/components/display/display_buffer.h:154:8: note: candidate: void esphome::display::DisplayBuffer::print(int, int, esphome::display::Font*, esphome::Color, esphome::display::TextAlign, const char*)
   void print(int x, int y, Font *font, Color color, TextAlign align, const char *text);
        ^
src/esphome/components/display/display_buffer.h:154:8: note:   candidate expects 6 arguments, 5 provided
src/esphome/components/display/display_buffer.h:164:8: note: candidate: void esphome::display::DisplayBuffer::print(int, int, esphome::display::Font*, esphome::Color, const char*)
   void print(int x, int y, Font *font, Color color, const char *text);
        ^
src/esphome/components/display/display_buffer.h:164:8: note:   no known conversion for argument 4 from 'const char [6]' to 'esphome::Color'
src/esphome/components/display/display_buffer.h:174:8: note: candidate: void esphome::display::DisplayBuffer::print(int, int, esphome::display::Font*, esphome::display::TextAlign, const char*)
   void print(int x, int y, Font *font, TextAlign align, const char *text);
        ^
src/esphome/components/display/display_buffer.h:174:8: note:   no known conversion for argument 4 from 'const char [6]' to 'esphome::display::TextAlign'
src/esphome/components/display/display_buffer.h:183:8: note: candidate: void esphome::display::DisplayBuffer::print(int, int, esphome::display::Font*, const char*)
   void print(int x, int y, Font *font, const char *text);
        ^
src/esphome/components/display/display_buffer.h:183:8: note:   candidate expects 4 arguments, 5 provided
*** [/data/blinds-bedroom/.pioenvs/blinds-bedroom/src/main.cpp.o] Error 1
========================= [FAILED] Took 18.23 seconds =========================

This is the first time I’m using ESPHome with hardware components, so I’m fairly new here. I’m trying to recreate a device I built using Arduino to ESPHome.

Anyway, I was able to get the time to display on the screen.

it.strftime(0, 5, id(calibri1), TextAlign::BASELINE_LEFT, "%H:%M", id(homeassistant_time).now());

But I can’t get this photoresistor value to display on the screen.

it.print(0, 15, id(calibri1), "% Lux", id(ambient_sensor).state);
esphome:
  name: blinds-bedroom
  platform: ESP32
  board: esp32dev
  arduino_version: latest

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  power_save_mode: none
  #output_power: 20.0
  fast_connect: on

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
#  password: "***"


#  # Enable fallback hotspot (captive portal) in case wifi connection fails
#  ap:
#    ssid: "Blinds-Bedroom Fallback Hotspot"
#    password: "***"

captive_portal:


#Time
time:
  - platform: homeassistant
    id: homeassistant_time

#Light Sensor
sensor:
  - platform: adc
    id: ambient_sensor
    pin: 36
    name: "Ambient Light"
    update_interval: '10s'
    unit_of_measurement: lux
    filters:
      - lambda: |-
          return (20.66 - (x * 20.00));

#Stepper Motor
stepper:
  - platform: a4988
    id: stepper_motor
    step_pin: 16
    dir_pin: 17
    max_speed: 250 steps/s
    
    #Optional
    sleep_pin: 18

#OLED Display
i2c:
  sda: 21
  scl: 22

display:
  - platform: ssd1306_i2c
    model: "SSD1306 128x32"
    address: 0x3C
    lambda: |-
       it.strftime(0, 5, id(calibri1), TextAlign::BASELINE_LEFT, "%H:%M", id(homeassistant_time).now());
       it.print(0, 15, id(calibri1), "% Lux", id(ambient_sensor).state);

font:
  - file: "fonts/times.ttf"
    id: calibri1
    size: 10
  - file: "fonts/times.ttf"
    id: calibri2
    size: 35
  - file: "fonts/calibri.ttf"
    id: calibri3
    size: 30

How do I display sensor value to the screen? Thanks.

Never mind. It’s in the Display Core.

display:
  - platform: ssd1306_i2c
    model: "SSD1306 128x32"
    address: 0x3C
    lambda: |-
       it.strftime(0, 8, id(calibri1), TextAlign::BASELINE_LEFT, "%H:%M", id(homeassistant_time).now());
       it.printf(0, 17, id(calibri1), "%.1f Lux", id(ambient_sensor).state);