ESP8266 WIFI-Display for Home Assistant

I needed a display for my outdoor temperature sensor which is connected to Home Assistant.

So I built one with a ESP8266, Lolin D1 mini with official OLED shield. 

It features a WIFI connected OLED-display, with capabilities to display almost anything from Home Assistant. 

 

Needed parts:

You can find my print files here: https://www.prusaprinters.org/prints/29525-esp8266-wifi-display-for-home-assistant

I soldered LOLIN D1 Mini and OLED shield together with pin-headers, and squeezed the boards together as much as was possible, the distance between them became about 8mm (this is important if you want to use my stl’s for case).

I used ESPHome firmware for the D1 Mini. Below is my YAML-file.

The fonts I have used is “BebasNeue-Regular.ttf” and “arial.ttf” (can be found on google), they must be in “config/esphome/”.

The temperature sensor (home-assistant entity) I display is, “sensor.multi_sensor_8”.

<span class="token key atrule">i2c</span><span class="token punctuation">:</span>
  <span class="token key atrule">sda</span><span class="token punctuation">:</span> D2
  <span class="token key atrule">scl</span><span class="token punctuation">:</span> D1
  <span class="token key atrule">scan</span><span class="token punctuation">:</span> <span class="token boolean important">False</span>

<span class="token key atrule">font</span><span class="token punctuation">:</span>
  <span class="token punctuation">-</span> <span class="token key atrule">file</span><span class="token punctuation">:</span> <span class="token string">'BebasNeue-Regular.ttf'</span>
    <span class="token key atrule">id</span><span class="token punctuation">:</span> font1
    <span class="token key atrule">size</span><span class="token punctuation">:</span> <span class="token number">20</span>

  <span class="token punctuation">-</span> <span class="token key atrule">file</span><span class="token punctuation">:</span> <span class="token string">'arial.ttf'</span>
    <span class="token key atrule">id</span><span class="token punctuation">:</span> font3
    <span class="token key atrule">size</span><span class="token punctuation">:</span> <span class="token number">20</span>
    
<span class="token key atrule">sensor</span><span class="token punctuation">:</span>
  <span class="token punctuation">-</span> <span class="token key atrule">platform</span><span class="token punctuation">:</span> homeassistant
    <span class="token key atrule">name</span><span class="token punctuation">:</span> <span class="token string">"Utomhus"</span>
    <span class="token key atrule">unit_of_measurement</span><span class="token punctuation">:</span> <span class="token string">"°C"</span>
    <span class="token key atrule">id</span><span class="token punctuation">:</span> outside_temperature
    <span class="token key atrule">entity_id</span><span class="token punctuation">:</span> sensor.multi_sensor_8
    <span class="token key atrule">internal</span><span class="token punctuation">:</span> <span class="token boolean important">true</span>
    
<span class="token key atrule">display</span><span class="token punctuation">:</span>
  <span class="token punctuation">-</span> <span class="token key atrule">platform</span><span class="token punctuation">:</span> ssd1306_i2c
    <span class="token key atrule">model</span><span class="token punctuation">:</span> <span class="token string">"SSD1306 64x48"</span>
    <span class="token key atrule">address</span><span class="token punctuation">:</span> <span class="token number">0x3C</span>
    <span class="token key atrule">lambda</span><span class="token punctuation">:</span> <span class="token punctuation">|</span><span class="token punctuation">-</span>
      it.printf(32<span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> id(font1)<span class="token punctuation">,</span> TextAlign<span class="token punctuation">:</span><span class="token punctuation">:</span>TOP_CENTER<span class="token punctuation">,</span> "Utomhus");
      it.printf(32<span class="token punctuation">,</span> <span class="token number">37</span><span class="token punctuation">,</span> id(font3)<span class="token punctuation">,</span> TextAlign<span class="token punctuation">:</span><span class="token punctuation">:</span>CENTER <span class="token punctuation">,</span> <span class="token string">"%.1f°"</span><span class="token punctuation">,</span> id(outside_temperature).state);
      
YAML

Leave a Reply

Your email address will not be published. Required fields are marked *