Pular para o conteúdo principal

Livro de Receitas ESPHome - Básico: reTerminal E Série

Leia primeiro o guia principal do ESPHome

Esta página é o livro de receitas ESPHome básico específico para reTerminal E Série. O conteúdo compartilhado — escolher um método de gravação, o esqueleto YAML genérico, conexão ao Home Assistant — está em Trabalhar com ESPHome. Dê uma olhada nele primeiro se você é novo em ESPHome no Seeed ePaper. Para exemplos de periféricos onboard (botões, buzzer, bateria, SHT4x, deep sleep), consulte o livro de receitas avançado.


Introdução ao Home Assistant

Home Assistant é uma poderosa plataforma de automação residencial de código aberto que permite controlar e monitorar seus dispositivos de casa inteligente a partir de uma interface única e unificada. Ele atua como o hub central da sua casa inteligente, permitindo automatizar rotinas, monitorar sensores e criar um ambiente mais inteligente.

Por que Home Assistant?

  • Controle local: Diferente de muitas soluções baseadas em nuvem, o Home Assistant é executado localmente na sua rede, garantindo que seus dados permaneçam privados e que suas automações funcionem mesmo sem acesso à internet.

  • Amplo suporte a dispositivos: Home Assistant integra-se a milhares de diferentes dispositivos e serviços de casa inteligente, tornando-o altamente versátil e preparado para o futuro.

  • Automação poderosa: Crie regras de automação sofisticadas que podem responder a vários gatilhos, como horário, estados de dispositivos, leituras de sensores e muito mais.

  • Dashboard personalizável: Projete sua própria interface de usuário para exibir as informações que mais importam para você.

Por que o Display ePaper reTerminal E Série com Home Assistant?

O Display ePaper reTerminal E Série é um excelente companheiro para o Home Assistant por vários motivos:

  1. Eficiência energética: O display de e‑paper só consome energia ao atualizar o conteúdo, tornando-o perfeito para exibir informações persistentes como previsões do tempo, eventos de calendário ou status do sistema.

  2. Ótima visibilidade: Diferente das telas LCD, os displays de e‑paper são facilmente legíveis em qualquer condição de iluminação, incluindo luz solar direta, o que os torna ideais para painéis de controle de parede.

  3. Longa duração de bateria: Combinado com o modo de deep sleep, o display pode operar por meses com uma única carga de bateria, ainda fornecendo informações valiosas de relance.

  4. Integração flexível: Através do ESPHome, o display se integra perfeitamente ao Home Assistant, permitindo que você exiba qualquer dado do seu sistema de casa inteligente em um formato elegante e sempre visível.

Essas vantagens tornam o Display ePaper reTerminal E Série uma escolha ideal para criar um display de informações sempre ligado e energeticamente eficiente para sua configuração com Home Assistant.

Integração com ESPHome

ESPHome é uma ferramenta de criação de firmware de código aberto projetada especificamente para dispositivos ESP8266/ESP32. Ela permite criar firmware personalizado usando arquivos de configuração YAML simples, que podem então ser gravados no seu dispositivo. Para o reTerminal E Série, o ESPHome atua como o middleware essencial que habilita a comunicação entre o dispositivo e o Home Assistant.

O sistema funciona convertendo sua configuração YAML em um firmware completo que roda no seu dispositivo ESP. Esse firmware lida com todas as tarefas complexas de conexão à sua rede, comunicação com o Home Assistant e controle do display ePaper. Quando combinado com o Home Assistant, o ESPHome fornece uma plataforma robusta para criar displays e controles sofisticados de automação residencial.

Vamos explorar como configurá-lo e tirar o máximo proveito desse display versátil.

Primeiros passos

Antes de começar o conteúdo do tutorial deste artigo, você pode precisar ter o seguinte hardware preparado.

Materiais necessários

reTerminal E1001reTerminal E1002Home Assistant Green

Home Assistant Green é a maneira mais fácil e com maior foco em privacidade de automatizar sua casa. Ele oferece uma configuração simples e permite controlar todos os dispositivos inteligentes com apenas um sistema, onde todos os dados são armazenados localmente por padrão. Esta placa se beneficia do próspero ecossistema do Home Assistant e será aprimorada todos os meses pelo código aberto.

Recomendamos usar o Home Assistant Green como o host do Home Assistant para este tutorial, ou você pode usar qualquer host Home Assistant com Supervisor.

instalar Home Assistant

Também escrevemos como instalar o Home Assistant para alguns produtos da Seeed Studio, consulte-os.

Se você não estiver usando um produto Seeed Studio, também pode verificar e aprender como instalar o Home Assistant para outros produtos no site oficial do Home Assistant.

Etapa 1. Instalar ESPHome

nota

Se você já instalou o ESPHome, pode pular esta etapa.

Vá para Settings -> Add-ons -> ADD-ON STORE

Digite o termo de pesquisa ESPHome.

Clique em INSTALL e START.

dica

Se você não conseguir encontrar o ESPHome na loja de add-ons, certifique-se de que está usando uma instalação do Home Assistant que suporte add-ons (como Home Assistant OS ou instalações supervisionadas). Para outros tipos de instalação (como Home Assistant Container), talvez seja necessário executar o ESPHome Device Builder de forma independente usando Docker. Consulte a documentação oficial do ESPHome para mais detalhes.

Etapa 2. Adicionar um novo dispositivo

Vá para o ESPHome e clique em NEW DEVICE.

Dê ao dispositivo um nome de sua preferência e selecione ESP32-S3 para o tipo de chip, depois clique em SKIP.

Depois de criar um novo dispositivo, clique em EDIT.

Etapa 3. Instalar firmware

Este é um exemplo bem básico e mostrará "Hello World!" no display.

O principal objetivo é mostrar diferentes maneiras de instalar o firmware no dispositivo.

Você pode usar este exemplo copiando o código abaixo e colando-o após a linha de código captive_portal no seu arquivo Yaml.

# define font to display words
font:
- file: "gfonts://Inter@700"
id: myFont
size: 24

# define SPI interface
spi:
clk_pin: GPIO7
mosi_pin: GPIO9

display:
- platform: waveshare_epaper
id: epaper_display
model: 7.50inv2 # You can use 7.50inv2alt when you draw complex info and it display not good.
cs_pin: GPIO10
dc_pin: GPIO11
reset_pin:
number: GPIO12
inverted: false
busy_pin:
number: GPIO13
inverted: true
update_interval: 300s
lambda: |-
it.print(0, 0, id(myFont), "Hello World!");

Clique em INSTALL para instalar o código no dispositivo e você verá a seguinte imagem.

dica

Se o seu Home Assistant Host (Raspberry PI/Green/Yellow etc.) estiver longe de você, recomendamos usar este método. Você pode instalar com o computador que tiver em mãos.

Primeiro, você precisa clicar em Manual download para baixar o firmware compilado.

Abra este site onde faremos o upload do firmware para o painel ePaper.

Volte para o ESPHome para baixar o firmware.

Selecione Factory format.

Use um cabo USB para conectar o painel ePaper ao seu computador e clique em CONNECT.

Selecione usbmodemxxx (no Windows é COMxxx) e clique em connect. Encontrou um problema? Clique aqui.

Clique em INSTALL e selecione o firmware que você acabou de baixar.

Espere um momento e você verá 'Hello world!' no display ~

Noções básicas de desenho no ESPHome

Desenhando gráficos simples

Este exemplo de código YAML configura a interface SPI e o reTerminal E Series ePaper Display para um projeto ESPHome. A seção lambda contém comandos de desenho que renderizam formas simples na tela:

  • Dois retângulos (um na posição (10, 10) com tamanho 100x50, e outro em (150, 10) com tamanho 50x50)
  • Um círculo em (250, 35) com raio de 25
  • Dois retângulos preenchidos (em (10, 80) e (150, 80))
  • Um círculo preenchido em (250, 105) com raio de 25

Você pode usar este exemplo copiando o código abaixo e colando-o após a linha de código captive_portal no seu arquivo Yaml.

spi:
clk_pin: GPIO7
mosi_pin: GPIO9

display:
- platform: waveshare_epaper
id: epaper_display
model: 7.50inv2 # You can use 7.50inv2alt when you draw complex info and it display not good.
cs_pin: GPIO10
dc_pin: GPIO11
reset_pin:
number: GPIO12
inverted: false
busy_pin:
number: GPIO13
inverted: true
update_interval: 300s
lambda: |-
it.rectangle(10, 10, 100, 50);
it.rectangle(150, 10, 50, 50);
it.circle(250, 35, 25);
it.filled_rectangle(10, 80, 100, 50);
it.filled_rectangle(150, 80, 50, 50);
it.filled_circle(250, 105, 25);

Quando você vir o retorno como na imagem a seguir, isso significa que o código está sendo executado com sucesso.

Devido a limitações de espaço, não vamos detalhar muito os métodos de desenho e os princípios de outros padrões; se necessário, recomenda-se ao leitor consultar ESPHome nesta parte dos exemplos detalhados.

Obtendo valores do Home Assistant para exibição

Para exibir dados meteorológicos no seu dispositivo reTerminal E Series ePaper Display, você precisará acessar dados de temperatura, condições climáticas e velocidade do vento a partir do Home Assistant. A integração Open-Meteo fornece dados meteorológicos confiáveis que podem ser acessados por meio das Developer Tools.

Instalando a integração Open-Meteo

Passo 1. Abra o painel do Home Assistant e navegue até SettingsDevices & Services.

Passo 2. Clique no botão Add Integration no canto inferior direito.

Passo 3. Pesquise por "Open-Meteo" e selecione-o na lista.

Etapa 4. Siga o assistente de configuração para definir sua localização e unidades preferidas.

Etapa 5. Depois de instalada, a integração Open-Meteo criará várias entidades relacionadas ao clima na sua instância do Home Assistant.

Acessando dados de clima em Ferramentas de Desenvolvedor

Após instalar a integração Open-Meteo, você pode acessar os dados de clima por meio de Ferramentas de Desenvolvedor:

Etapa 1. No painel do Home Assistant, navegue até Developer ToolsStates.

Etapa 2. Na caixa de filtro, digite weather para encontrar a entidade principal de clima.

Etapa 3. Clique na entidade para ver todos os atributos disponíveis. Os principais atributos de clima incluem:

  • temperature: Temperatura atual (nas unidades configuradas)
  • wind_bearing: Direção do vento
  • wind_speed: Velocidade do vento

Usando dados de clima no ESPHome

Para usar esses dados de clima na sua configuração ESPHome para o reTerminal E Series, você precisará configurar uma conexão de API do Home Assistant no seu arquivo YAML do ESPHome:

# Example ESPHome configuration to retrieve weather data
# Get info from HA, as string format
text_sensor:
- platform: homeassistant
entity_id: weather.home
id: myWeather
internal: true
- platform: homeassistant
entity_id: weather.home
id: myTemperature
attribute: "temperature"
internal: true

# Get info from HA, as float format
sensor:
- platform: homeassistant
entity_id: weather.home
id: myWindBearing
attribute: "wind_bearing"
internal: true

Essa configuração cria entidades de sensor no seu dispositivo ESPHome que obtêm dados da integração de clima do Home Assistant. Você pode então usar esses sensores para atualizar o display ePaper do reTerminal E Series com as informações meteorológicas atuais.

dica

Para dados de previsão, você precisará usar as entidades weather.open_meteo_forecast, que contêm valores previstos para dias futuros.

Por fim, adicione o código para a seção de display para usar esses valores acima. O código completo é o seguinte:

# Example ESPHome configuration to retrieve weather data
# Get info from HA, as string format
text_sensor:
- platform: homeassistant
entity_id: weather.home
id: myWeather
internal: true
- platform: homeassistant
entity_id: weather.home
id: myTemperature
attribute: "temperature"
internal: true

# Get info from HA, as float format
sensor:
- platform: homeassistant
entity_id: weather.home
id: myWindBearing
attribute: "wind_bearing"
internal: true

font:
- file: "gfonts://Inter@700"
id: myFont
size: 24

# define SPI interface
spi:
clk_pin: GPIO7
mosi_pin: GPIO9

display:
- platform: waveshare_epaper
id: epaper_display
model: 7.50inv2 # You can use 7.50inv2alt when you draw complex info and it display not good.
cs_pin: GPIO10
dc_pin: GPIO11
reset_pin:
number: GPIO12
inverted: false
busy_pin:
number: GPIO13
inverted: true
update_interval: 300s
lambda: |-
//print info in log
ESP_LOGD("epaper", "weather: %s", id(myWeather).state.c_str());
ESP_LOGD("epaper", "temperature: %s", id(myTemperature).state.c_str());
ESP_LOGD("epaper", "pressure: %.1f", id(myWindBearing).state);
//display info in epaper screen
it.printf(100, 100, id(myFont), "%s", id(myWeather).state.c_str());
it.printf(100, 150, id(myFont), "%s", id(myTemperature).state.c_str());
it.printf(100, 200, id(myFont), "%.1f", id(myWindBearing).state);

Depois de compilar o código acima e enviá-lo para o seu dispositivo, você poderá ver primeiro NaN exibido na tela, por favor, não se preocupe, isso é normal. Isso ocorre porque o dispositivo ainda não foi adicionado ao ambiente do Home Assistant, então o reTerminal ainda não conseguiu obter os dados do Home Assistant. Só precisamos seguir as etapas abaixo para adicionar o dispositivo.

Adicionando o display ePaper reTerminal E Series ao Home Assistant

Etapa 1. Após gravar o firmware no dispositivo, volte ao Home Assistant e navegue até Settings → Devices & Services.

Etapa 3. O Home Assistant deve detectar automaticamente o dispositivo reTerminal E Series ePaper Display via mDNS. Se ele aparecer na seção de dispositivos descobertos, clique em Configure para adicioná-lo.

Etapa 4. Se o dispositivo não for detectado automaticamente, clique em Add Integration e procure por "ESPHome".

Etapa 5. Insira o endereço IP do seu dispositivo reTerminal E Series ePaper Display e a chave de criptografia da API, se você tiver definido uma.

Etapa 6. Depois de conectado, o seu reTerminal E Series ePaper Display aparecerá como um dispositivo no Home Assistant com todos os seus sensores e componentes disponíveis.

nota

O programa pode levar de 2 a 3 minutos desde a conclusão da gravação até a exibição final.

Aqui está o conteúdo aprimorado da Demo 3 com formatação melhorada, posicionamento de imagens e descrições adicionais:

Desenhando fontes TrueType

Este exemplo demonstra como exibir ícones personalizados no seu reTerminal E Series ePaper Display usando fontes TrueType. Os Material Design Icons fornecem uma ampla variedade de símbolos escaláveis perfeitos para displays de papel eletrônico.

Instalando as ferramentas necessárias

Etapa 1. Primeiro, precisamos instalar o add-on Studio Code Server para gerenciar arquivos. Navegue até a loja de Add-ons do Home Assistant, procure por Studio Code Server e clique nele.

Etapa 2. Clique em INSTALL e aguarde a conclusão da instalação. Depois de instalado, clique em START para iniciar o editor.

Configurando fontes de ícones

Etapa 3. Crie uma nova pasta chamada fonts no diretório de configuração do ESPHome. Essa pasta armazenará os arquivos de fonte TrueType necessários para exibir ícones.

Etapa 4. Baixe o arquivo de fonte Material Design Icons clicando no botão abaixo e extraia o conteúdo.

Etapa 5. Envie o arquivo de fonte baixado (materialdesignicons-webfont.ttf) para a pasta fonts que você criou anteriormente.

Configurando o ESPHome para ícones

Etapa 6. Adicione o seguinte código ao seu arquivo de configuração ESPHome após a seção captive_portal. Esse código define dois tamanhos de fonte para ícones e configura o display para mostrar ícones de clima.

# define font to display words
font:
- file: 'fonts/materialdesignicons-webfont.ttf' # Path to the font file
id: font_mdi_large
size: 200 # Large icon size
glyphs: &mdi-weather-glyphs
- "\U000F0595" # weather-cloudy icon
- "\U000F0592" # weather-hail icon
- file: 'fonts/materialdesignicons-webfont.ttf'
id: font_mdi_medium # Medium icon size
size: 40
glyphs: *mdi-weather-glyphs

# define SPI interface
spi:
clk_pin: GPIO7
mosi_pin: GPIO9

display:
- platform: waveshare_epaper
id: epaper_display
model: 7.50inv2 # You can use 7.50inv2alt when you draw complex info and it display not good.
cs_pin: GPIO10
dc_pin: GPIO11
reset_pin:
number: GPIO12
inverted: false
busy_pin:
number: GPIO13
inverted: true
update_interval: 300s
lambda: |-
it.printf(100, 200, id(font_mdi_medium), TextAlign::CENTER, "\U000F0595");
it.printf(400, 200, id(font_mdi_large), TextAlign::CENTER, "\U000F0592");
nota
  1. A seção glyphs define quais ícones serão carregados do arquivo de fonte. Carregar apenas os ícones necessários economiza memória no seu dispositivo.

  2. O programa pode levar de 2 a 3 minutos desde a conclusão da gravação até a exibição final.

Passo 7. Salve sua configuração e envie-a para o seu reTerminal E Series. Quando você vir um retorno como na imagem a seguir, significa que o código está sendo executado com sucesso.

Personalizando com Ícones Diferentes

A biblioteca Material Design Icons contém milhares de ícones que você pode usar em seus projetos. Veja como encontrar e usar ícones diferentes:

Passo 1. Visite o site do Material Design Icons clicando no botão abaixo.

Passo 2. Procure um ícone que você queira usar em seu projeto. Você pode navegar por categoria ou usar a função de busca.

Passo 3. Quando encontrar um ícone de que você goste, clique nele para ver os detalhes. Procure o valor Unicode, que estará no formato F0595.

Passo 4. Adicione o valor Unicode à sua configuração ESPHome:

  • Adicionando-o à lista glyphs na sua configuração de fonte
  • Atualizando o código de display para usar o novo ícone

Por exemplo, para usar um novo ícone com Unicode F0123:

glyphs:
- "\U000F0595" # weather-cloudy icon
- "\U000F0592" # weather-hail icon
- "\U000F0123" # your new icon

E no lambda de display:

lambda: |-
it.printf(100, 200, id(font_mdi_medium), TextAlign::CENTER, "\U000F0123");

Passo 5. Salve sua configuração atualizada e envie-a para o seu dispositivo para ver o novo ícone.

dica

Para dashboards de clima, considere usar ícones como F0590 (ensolarado), F0591 (parcialmente nublado), F0593 (chuvoso) e F059E (ventoso).

Combinando esses ícones com os dados de clima do Home Assistant que configuramos anteriormente, você pode criar um display de clima dinâmico que mostra as condições atuais usando ícones apropriados.

Exibindo Imagens Personalizadas

Este exemplo demonstra como exibir imagens personalizadas na tela ePaper do seu reTerminal E Series. Você pode usar esse recurso para mostrar logotipos, ícones ou quaisquer gráficos que melhorem a experiência do seu dashboard.

Preparação

Passo 1. Certifique-se de que o add-on Studio Code Server esteja instalado no Home Assistant. Se você ainda não o instalou, siga as instruções do exemplo anterior.

Passo 2. Crie uma nova pasta chamada image no diretório de configuração do ESPHome. Essa pasta armazenará os arquivos de imagem que você deseja exibir.

config/
└── esphome/
├── your_device.yaml
└── image/ <- Create this folder

Adicionando Imagens

Passo 3. Baixe uma imagem de exemplo para testar a funcionalidade. Você pode usar o ícone de WiFi fornecido abaixo ou usar sua própria imagem.

Passo 4. Envie a imagem baixada para a pasta image que você criou anteriormente usando o gerenciador de arquivos do Studio Code Server.

dica

Se você quiser exibir imagens de paisagem complexas e bonitas, é melhor realizar a ditherização da imagem com antecedência em nosso site para obter um efeito melhor. Os formatos JPG e PNG são ambos suportados.

Configurando o ESPHome para Exibição de Imagens

Passo 5. Adicione o seguinte código ao seu arquivo de configuração ESPHome após a seção captive_portal. Esse código define o recurso de imagem e configura o display para exibi-la.

image:
- file: /config/esphome/image/wifi.jpg # Path to your image file (JPG or PNG)
id: myImage
type: BINARY # Binary works for monochrome, RGB565 works for colorful eink
resize: 800x480 # Resize to match display resolution
invert_alpha: true # Invert colors is needed

spi:
clk_pin: GPIO7
mosi_pin: GPIO9

display:
- platform: waveshare_epaper
id: epaper_display
model: 7.50inv2 # You can use 7.50inv2alt when you draw complex info and it display not good.
cs_pin: GPIO10
dc_pin: GPIO11
reset_pin:
number: GPIO12
inverted: false
busy_pin:
number: GPIO13
inverted: true
update_interval: 300s
lambda: |-
it.image(0, 0, id(myImage)); # Display image at position (0,0)

Passo 6. Salve sua configuração e envie-a para o seu reTerminal E Series. Quando a atualização for concluída, sua tela e-paper exibirá a imagem.

Técnicas Avançadas de Imagem

Você pode aprimorar a exibição de imagens com estas técnicas adicionais:

Posicionando Imagens

Para posicionar sua imagem em coordenadas específicas na tela:

lambda: |-
// Display image at position (100,50)
it.image(100, 50, id(myImage));

Combinando Imagens com Texto

Você pode exibir imagens e texto na mesma tela:

lambda: |-
// Display image
it.image(0, 0, id(myImage));

// Add text below or beside the image
it.printf(400, 400, id(myFont), TextAlign::CENTER, "WiFi Connected");

Usando Múltiplas Imagens

Para exibir várias imagens na mesma tela, defina cada imagem na sua configuração:

image:
- file: /config/esphome/image/wifi.jpg
id: wifiImage
type: BINARY
resize: 200x200

- file: /config/esphome/image/temperature.png
id: tempImage
type: BINARY
resize: 200x200

# In the display lambda:
lambda: |-
it.image(50, 50, id(wifiImage));
it.image(300, 50, id(tempImage));
cuidado

Lembre-se de que telas e-paper têm taxas de atualização limitadas. A configuração update_interval: 300s significa que sua tela será atualizada apenas a cada 5 minutos. Ajuste esse valor de acordo com suas necessidades, mas esteja ciente de que atualizações frequentes podem reduzir a vida útil das telas e-paper.

Combinando imagens com texto e outros elementos de display abordados em exemplos anteriores, você pode criar dashboards ricos e informativos no seu reTerminal E Series.

Continue Lendo

Devido a limitações de espaço, este artigo aborda apenas alguns casos de uso básicos e exemplos de desenho do dispositivo. Trataremos o uso do hardware do reTerminal no ESPHome com mais detalhes no Wiki Advanced ESPHome Usage of reTerminal E Series ePaper Display in Home Assistant, que você pode continuar lendo.

FAQ

P1: Por que não há dados?

Nesse caso, você deve ir em Settings -> Devices & Services -> Integrations para RECONGFIGURE o dispositivo. Não encontrou seu reTerminal? Tente reiniciar o Home Assistant.

Q2: Por que não consigo obter esses dados no Home Assistant?

Nesse caso, você deve ir em Settings -> Devices & Services -> Integrations para ADICIONAR seu dispositivo ao HA.

Q3: O display ePaper da reTerminal E Series não consegue se conectar ao seu computador?

Tente desconectar e reconectar várias vezes ou simplesmente instalar o driver de acordo com as instruções.

Suporte Técnico & Discussão de Produtos

Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...