You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
163 lines
3.6 KiB
163 lines
3.6 KiB
esphome:
|
|
name: esp32weatherstation2
|
|
platform: ESP32
|
|
board: lolin_d32_pro
|
|
includes:
|
|
- veml6075_custom_sensor.h
|
|
libraries:
|
|
- "https://github.com/adafruit/Adafruit_VEML6075"
|
|
- "https://github.com/adafruit/Adafruit_BusIO"
|
|
platformio_options:
|
|
lib_ldf_mode: chain+
|
|
project:
|
|
name: "xd0.esp32weatherstation2"
|
|
version: "0.0.2"
|
|
|
|
# Enable logging
|
|
logger:
|
|
# level: VERY_VERBOSE
|
|
|
|
# Enable Home Assistant API
|
|
api:
|
|
|
|
ota:
|
|
password: !secret esphome_ota_password
|
|
|
|
wifi:
|
|
networks:
|
|
- ssid: !secret wifi_ssid
|
|
password: !secret wifi_passwd
|
|
- ssid: !secret wifi_ssid2
|
|
password: !secret wifi_passwd2
|
|
power_save_mode: light
|
|
|
|
# Enable fallback hotspot (captive portal) in case wifi connection fails
|
|
ap:
|
|
ssid: "Esp32Weatherstation2"
|
|
password: "ucYwmU1xwUxh"
|
|
|
|
captive_portal:
|
|
|
|
time:
|
|
- platform: sntp
|
|
id: sntp_time
|
|
timezone: "Europe/Berlin"
|
|
|
|
#mqtt:
|
|
# broker: home.xd0.de
|
|
# username: !secret esphome_mqtt_user
|
|
# password: !secret esphome_mqtt_passwd
|
|
|
|
i2c:
|
|
sda: 21
|
|
scl: 22
|
|
scan: true
|
|
|
|
spi:
|
|
clk_pin: 18
|
|
mosi_pin: 23
|
|
miso_pin: 19
|
|
|
|
uart:
|
|
rx_pin: 15
|
|
tx_pin: 2
|
|
baud_rate: 9600
|
|
|
|
# display #250x122 pixels
|
|
font:
|
|
- file: 'fonts/slkscr.ttf'
|
|
id: font1
|
|
size: 8
|
|
|
|
status_led:
|
|
pin:
|
|
number: GPIO5
|
|
inverted: true
|
|
|
|
display:
|
|
- platform: waveshare_epaper
|
|
cs_pin: 14
|
|
dc_pin: 27
|
|
reset_pin: 33
|
|
model: 2.13in-ttgo
|
|
rotation: 90
|
|
update_interval: 30s
|
|
full_update_every: 1
|
|
lambda: |-
|
|
it.print(5, 6, id(font1), "Hello World!");
|
|
it.strftime(130, 6, id(font1), "%Y-%m-%d %H:%M", id(sntp_time).now());
|
|
it.line(0, 15, 250, 15);
|
|
if (id(temperature).state) {
|
|
it.printf(5, 40, id(font1), "Temperature: %.1f°C, Humidity: %.1f%%, Pressure: %.1fhPa", id(temperature).state, id(humidity).state, id(pressure).state);
|
|
}
|
|
|
|
sensor:
|
|
# BME680 Temperature+Pressure+Humidity+Gas Sensor
|
|
- platform: bme680
|
|
temperature:
|
|
name: "BME680 Temperature"
|
|
oversampling: 16x
|
|
id: temperature
|
|
pressure:
|
|
name: "BME680 Pressure"
|
|
id: pressure
|
|
humidity:
|
|
name: "BME680 Humidity"
|
|
id: humidity
|
|
gas_resistance:
|
|
name: "BME680 Gas Resistance"
|
|
address: 0x77
|
|
update_interval: 60s
|
|
# BME280 Temperature+Pressure+Humidity Sensor
|
|
- platform: bme280
|
|
temperature:
|
|
name: "BME280 Temperature"
|
|
oversampling: 16x
|
|
pressure:
|
|
name: "BME280 Pressure"
|
|
humidity:
|
|
name: "BME280 Humidity"
|
|
address: 0x77
|
|
update_interval: 60s
|
|
# SDS 011 Particulate Matter Sensor
|
|
- platform: sds011
|
|
pm_2_5:
|
|
name: "Particulate Matter <2.5µm Concentration"
|
|
pm_10_0:
|
|
name: "Particulate Matter <10.0µm Concentration"
|
|
update_interval: 5min
|
|
# BH1750 Ambient Light Sensor
|
|
- platform: bh1750
|
|
name: "BH1750 Illuminance"
|
|
address: 0x23
|
|
measurement_duration: 69
|
|
update_interval: 60s
|
|
# VEML6075 UV sensor
|
|
- platform: custom
|
|
lambda: |-
|
|
auto veml6075 = new VEML6075CustomSensor();
|
|
App.register_component(veml6075);
|
|
return {veml6075->uva_sensor, veml6075->uvb_sensor};
|
|
sensors:
|
|
- name: "zelva UVA"
|
|
id: zelva_uva
|
|
unit_of_measurement: "mW/cm²"
|
|
accuracy_decimals: 0
|
|
- name: "zelva UVB"
|
|
id: zelva_uvb
|
|
unit_of_measurement: "mW/cm²"
|
|
accuracy_decimals: 0
|
|
# Example configuration entry
|
|
- platform: esp32_hall
|
|
name: "ESP32 Hall Sensor"
|
|
update_interval: 60s
|
|
- platform: ble_rssi
|
|
mac_address: FA:4E:84:FF:4D:16
|
|
name: "MiBand Hendrik RSSI value"
|
|
|
|
# Example configuration entry
|
|
esp32_ble_tracker:
|
|
|
|
#text_sensor:
|
|
# - platform: ble_scanner
|
|
# name: "BLE Devices Scanner"
|
|
|