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.