view tr-air-quality.yaml @ 19:075b7e4854ba

wip rocks
author drewp@bigasterisk.com
date Sat, 03 Aug 2024 17:24:17 -0700
parents dcd981e1386b
children
line wrap: on
line source

# https://cdn.shopifycdn.net/s/files/1/0617/7190/7253/files/T-display-pin-diagram_1024x1024.jpg
# https://www.aqmd.gov/docs/default-source/aq-spec/resources-page/plantower-pms5003-manual_v2-3.pdf
esphome: 
  name: "tr-air-quality"
  platform: ESP32
  board: featheresp32

logger:
  level: DEBUG
  logs:
    sensor: INFO
    pmsx003: INFO

wifi:
  networks:
    - ssid: !secret wifi_ssid
      password: !secret wifi_password  
  on_connect:
    then:
      - lambda: |-
          id(wifi_status).publish_state("Connected");
  on_disconnect:
    then:
      - lambda: |-
          id(wifi_status).publish_state("Disconnected");

ota:
  platform: esphome
  password: !secret ota_password_1

mqtt:
  id: mqtt_client
  broker: 'mqtt2.bigasterisk.com'
                                  

    # pms pin 1 to 5V
    # pms pin 2 to gnd
    # pms pin 3 NC
# original setup
# GPIO13/RXD2 num 16 = pms tx (pin 5)
# GPIO15/TXD2 num 17 = pms rx (pin 4)
# or on T-Display ESP32, 
#   pms tx pin 5 to esp 13
#   pms rx pin 4 to esp 17
uart:
  rx_pin: 13
  baud_rate: 9600

sensor:
  - platform: pmsx003
    type: PMS5003T
    pm_1_0:
      name: "Particulate Matter <1.0µm Concentration"
    pm_2_5:
      name: "Particulate Matter <2.5µm Concentration"
      id: pm_2_5
    pm_10_0:
      name: "Particulate Matter <10.0µm Concentration"
    temperature:
      name: "air temperature C"
      id: air_temp_c

spi:
  clk_pin: GPIO18
  mosi_pin: GPIO19

font:
  - file: 'fonts/DejaVuSerif.ttf'
    id: font_14
    size: 20
    glyphs: "!%()+,-/_.:°0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ conetdisa"
 
color:
  - id: color_red
    red: 1
    green: 0
    blue: 0
  - id: color_green
    red: 0
    green: 1
    blue: 0
  - id: color_blue
    red: 0
    green: 0
    blue: 1
  - id: color_gray
    red: 0.2
    green: 0.2
    blue: 0.2
  - id: color_teal_blue
    red: 0
    green: 0.5
    blue: 0.45

output:
  - platform: ledc
    pin: GPIO04
    id: gpio_04_backlight_pwm

light:
  - platform: monochromatic
    output: gpio_04_backlight_pwm
    name: "Display Backlight"
    id: back_light
    restore_mode: ALWAYS_ON

display:
  # see note at https://esphome.io/components/display/ili9xxx#:~:text=For-,Lilygo%20TTGO%20Boards,-if%20you%20move
  - platform: ili9xxx 
    model: st7789v
    dimensions:
      height: 240
      width: 135
      offset_height: 40
      offset_width: 52
    rotation: 90°
    invert_colors: true
    cs_pin: GPIO5
    dc_pin: GPIO16
    reset_pin: GPIO23
    update_interval: 5s
    pixel_mode: 16bit
    lambda: |-
      it.printf(10, 10, id(font_14), Color(255,250,250), "TR-AIR-FILTER");
      it.printf(10, 40, id(font_14), Color(255,0,0), "WIFI: %s", id(wifi_status).state.c_str());
      it.printf(10, 70, id(font_14), Color(0,255,0), "PM2.5: %.1f", id(pm_2_5).state);
      it.printf(10, 100, id(font_14), Color(0,255,255), "TEMP F: %.1f", 32 + (id(air_temp_c).state * 9 / 5));

text_sensor:
  - platform: template
    name: "WiFi Status"
    id: wifi_status
    update_interval: 1s