AZ-Visual Home Assistant Example


AZ-Delivery sells a development board “AZ-Visual”.
Based on a ESP8266 NodeMCU 12E.
Combined with a small SSD1306 128x32 display, a
SHT3XD sensor for temperature and humidity and a
LDR GL5549 (CDS-resistor) for brightness.
All on a round PCB of 50 mm diameter. Not very expensive.
If someone likes to use it with HA. Here is an example config:

esphome:
  name: azvisual
  friendly_name: AZVisual

esp8266:
  board: esp12e

# Enable logging and prevent spam in log:  
# Component xxxxxxx.display took a long time for an operation (0.14 s).
# Components should block for at most 20-30ms.
logger:
  level: DEBUG
  logs: 
    component: ERROR

# Enable Home Assistant API
api:
  encryption:
    key: <your key from homeassistant>

ota:
  - platform: esphome
    password: <your password>

wifi:
  ssid: <your wifi ssid>
  password: <your wifi password>

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Azvisual Fallback Hotspot"
    password: "6EmoOc6nhDQo"

captive_portal:

# Optional, to see if wifi connection was successful 
status_led:
  pin: GPIO02

# Default I2C for esp8266
i2c:
  sda: GPIO04
  scl: GPIO05
  scan: true
  id: bus_a

# define as many fonts as you need 
font:
  - file: '/config/esphome/font/slkscr.ttf'
    id: font1
    size: 8

  - file: '/config/esphome/font/BebasNeue-Regular.ttf'
    id: font2
    size: 48

  - file: '/config/esphome/font/arial.ttf'
    id: font3
    size: 14

# this display is very small 
# I decided to display only 2 lines at once 
# and switch between 2 Pages
display:
  - platform: ssd1306_i2c
    model: "SSD1306 128x32"
    id: azvisual_display
    #reset_pin: GPIO00
    address: 0x3C
    pages: 
      - id: page1
        lambda: |-
          it.printf(0, 0, id(font3), "Temp: %.2f°C", id(outside_temp).state);
          it.printf(0, 17, id(font3), "Humi : %.2f%%", id(outside_humi).state);
      - id: page2
        lambda: |-
          it.printf(0, 12, id(font3), "Brigthness: %.0f", id(outside_brightness).state);

interval:
  - interval: 15s
    then:
      - display.page.show_next: azvisual_display
      - component.update: azvisual_display

# sensors for temperature and humidity
# analog reading for brightness
sensor:
  - platform: sht3xd
    temperature:
      name: "Balcony Temperature"
      id: outside_temp
    humidity:
      name: "Balcony Humidity"
      id: outside_humi
    address: 0x44
    update_interval: 60s
  - platform: adc
    pin: GPIO17
    name: "Balcony Brightness"
    id: outside_brightness
    accuracy_decimals: 2
    update_interval: 60s
    filters:
    - multiply: 10000


Regards Christian

1 Like

Throw it on devices.esphome.io