2022-09-08 01:40:32 +02:00
TM1621 LCD Display
========================
.. seo ::
:description: Instructions for setting up TM1621 LCD Display.
:image: tm1621.jpg
The `` tm1621 `` display platform allows you to use the popular TM1621 LCD display drivers with ESPHome, that can find in Sonoff device like THR316D, THR320D, POWR316D or POWR320D
.. figure :: images/tm1621-full.jpg
:align: center
:width: 75.0%
TM1621 LCD Display.
The LCD have four signal, `` cs `` for chip select, `` data `` for data signal, `` read `` for reading data dir and `` write `` for writing data dir
.. code-block :: yaml
# Example configuration entry
display:
platform: tm1621
id: tm1621_display
2024-05-07 07:40:12 +02:00
cs_pin: GPIOXX
data_pin: GPIOXX
read_pin: GPIOXX
write_pin: GPIOXX
2022-09-08 01:40:32 +02:00
lambda: |-
it.printf(0, "%.1f", id(my_sensor1).state);
it.display_celsius(true);
it.printf(1, "%.1f", id(my_sensor2).state);
it.display_humidity(true);
Configuration variables:
------------------------
- **cs_pin** (**Required** , :ref: `Pin Schema <config-pin_schema>` ): The pin you have the CS line.
- **data_pin** (**Required** , :ref: `Pin Schema <config-pin_schema>` ): The pin you have the DATA line.
- **read_pin** (**Required** , :ref: `Pin Schema <config-pin_schema>` ): The pin you have the READ line.
- **write_pin** (**Required** , :ref: `Pin Schema <config-pin_schema>` ): The pin you have the WRITE line.
- **lambda** (*Optional* , :ref: `lambda <config-lambda>` ): The lambda to use for rendering the content on the TM1621.
See :ref: `display-tm1621_lambda` for more information.
- **update_interval** (*Optional* , :ref: `config-time` ): The interval to re-draw the screen. Defaults to `` 1s `` .
- **id** (*Optional* , :ref: `config-id` ): Manually specify the ID used for code generation.
.. _display-tm1621_lambda:
Rendering Lambda
----------------
The TM1621 has a similar API to the fully fledged :ref: `display-engine` , but it's only a subset as the TM1621
LCD displays don't have a concept of individual pixels. In the lambda you're passed a variable called `` it ``
as with all other displays. In this case however, `` it `` is a TM1621 instance (see API Reference).
The most basic operation with the TM1621 is wiring a simple number to the screen as in the configuration example
at the top of this page. But even though you're passing in a string (here `` "0123" `` ), ESPHome converts it
into a representation that the TM1621 can understand.
Each of the three methods (`` print `` and `` printf `` ) all optionally take a the line number (0 for first line and 1 for the second).
This argument is `` 0 `` by default.
Also note that the `` . `` (dot) character is special because when ESPHome encounters it in the string the dot
segment of the previous position will be enabled.
.. code-block :: yaml
display:
- platform: tm1621
# ...
lambda: |-
it.printf(0, "%.1f", id(my_sensor1).state);
it.display_celsius(true);
it.printf(1, "%.1f", id(my_sensor2).state);
it.display_humidity(true);
Please see :ref: `display-printf` for a quick introduction into the `` printf `` formatting rules.
Also we have five function to display or not some unites:
- °C on the first line : `` display_celsius(bool) ``
- °F on the first line : `` display_fahrenheit(bool) ``
2022-09-22 14:53:22 +02:00
- %HR on the second line : `` display_humidity(bool) ``
2022-09-08 01:40:32 +02:00
- V on the first line and A on the second line : `` display_voltage(bool) ``
2024-05-07 07:40:12 +02:00
- kW/h on the first line and W on the second line : `` display_kwh(bool) ``
2022-09-08 01:40:32 +02:00
See Also
--------
- :doc: `index`
- :apiref: `tm1621/tm1621.h`
- :ghedit: `Edit`