Hendrik Langer
3 years ago
commit
8501474b84
3 changed files with 190 additions and 0 deletions
@ -0,0 +1,163 @@ |
|||
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.1" |
|||
|
|||
# Enable logging |
|||
logger: |
|||
# level: VERY_VERBOSE |
|||
|
|||
# Enable Home Assistant API |
|||
api: |
|||
|
|||
ota: |
|||
password: "123456789" |
|||
|
|||
wifi: |
|||
networks: |
|||
- ssid: "ssid1" |
|||
password: "password1" |
|||
- ssid: "ssid2" |
|||
password: "password2" |
|||
power_save_mode: light |
|||
|
|||
# Enable fallback hotspot (captive portal) in case wifi connection fails |
|||
ap: |
|||
ssid: "Esp32Weatherstation2" |
|||
password: "supersecret" |
|||
|
|||
captive_portal: |
|||
|
|||
time: |
|||
- platform: sntp |
|||
id: sntp_time |
|||
timezone: "Europe/Berlin" |
|||
|
|||
#mqtt: |
|||
# broker: home.xd0.de |
|||
# username: tasmota-login |
|||
# password: supersecret |
|||
|
|||
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: 11:22:33:44:55:66 |
|||
name: "MiBand Hendrik RSSI value" |
|||
|
|||
# Example configuration entry |
|||
esp32_ble_tracker: |
|||
|
|||
#text_sensor: |
|||
# - platform: ble_scanner |
|||
# name: "BLE Devices Scanner" |
Binary file not shown.
@ -0,0 +1,27 @@ |
|||
#include "esphome.h" |
|||
#include "Adafruit_VEML6075.h" |
|||
|
|||
class VEML6075CustomSensor : public PollingComponent, public Sensor { |
|||
public: |
|||
Adafruit_VEML6075 uv = Adafruit_VEML6075(); |
|||
|
|||
Sensor *uva_sensor = new Sensor(); |
|||
Sensor *uvb_sensor = new Sensor(); |
|||
|
|||
VEML6075CustomSensor() : PollingComponent(15000) {} |
|||
void setup() override { |
|||
Wire.begin(21, 22); |
|||
uv.begin(); |
|||
uv.setIntegrationTime(VEML6075_100MS); |
|||
} |
|||
|
|||
void update() override { |
|||
float uva = uv.readUVA(); |
|||
float uvb = uv.readUVB(); |
|||
ESP_LOGD("custom", "The value of sensor uva is: %.0f", uva); |
|||
ESP_LOGD("custom", "The value of sensor uvb is: %.0f", uvb); |
|||
publish_state(uva); |
|||
uva_sensor->publish_state(uva); |
|||
uvb_sensor->publish_state(uvb); |
|||
} |
|||
}; |
Loading…
Reference in new issue