ESP32 Dev Board
Ein vielseitiges Mikrocontroller-Board mit integriertem Wi-Fi und Bluetooth, ideal für IoT-Projekte.
Ein Partikelzähler, der Feinstaubkonzentrationen misst.
Ein Infrarot-CO₂-Sensor zur Messung der Kohlendioxidkonzentration.
Ein Sensor zur Messung von Temperatur und Luftdruck.
Ein Sensor zur Messung von VOCs (flüchtige organische Verbindungen) und NOx.
Widerstände zur Stabilisierung der I²C-Kommunikation.
Kondensator zur Glättung der Spannungsversorgung.
Kondensator zur Stabilisierung der Stromversorgung des ESP32.
Kondensator zur Filterung von Hochfrequenzstörungen.
Verkabelung und Montage:
-
ESP32 Dev Board: Verbinden Sie die I²C-Pins (SDA und SCL) des ESP32 mit den entsprechenden Pins der I²C-Sensoren.
-
PMS7003 Sensor: Verbinden Sie die UART-Pins des ESP32 (TX und RX) mit den entsprechenden Pins des PMS7003 Sensors.
-
MH-Z19 CO2 Sensor: Verbinden Sie die UART-Pins des ESP32 (TX und RX) mit den entsprechenden Pins des MH-Z19 Sensors.
-
BMP280 und SGP41 Sensoren: Verbinden Sie die I²C-Pins des ESP32 mit den entsprechenden Pins der Sensoren.
-
Pull-up Widerstände: Platzieren Sie einen 4.7kΩ Widerstand zwischen SDA und VCC sowie einen zwischen SCL und VCC für die I²C-Kommunikation.
-
Kondensatoren:
- Platzieren Sie einen 10µF Keramikkondensator nahe dem ESP32 zwischen VCC und GND zur Glättung der Spannungsversorgung.
- Platzieren Sie einen 100µF Elektrolytkondensator nahe dem ESP32 zwischen VCC und GND zur Stabilisierung der Stromversorgung.
- Platzieren Sie einen 0.1µF Keramikkondensator nahe dem ESP32 zwischen VCC und GND zur Filterung von Hochfrequenzstörungen.
Hinweis: Achten Sie darauf, die Kondensatoren mit der richtigen Polarität zu verbinden, insbesondere bei Elektrolytkondensatoren.

esphome: name: air-quality-sensor min_version: "2024.12.4"esp32: board: esp32dev framework: type: arduino version: recommendedwifi: ssid: !secret wifi_ssid password: !secret wifi_password power_save_mode: LIGHT output_power: 13dBmlogger: level: DEBUGapi:ota: platform: esphome password: "OTAOTA4711!"uart: - id: uart_pms7003 tx_pin: GPIO17 rx_pin: GPIO16 baud_rate: 9600 data_bits: 8 stop_bits: 1 - id: uart_mhz19 tx_pin: GPIO18 rx_pin: GPIO19 baud_rate: 9600 parity: NONEi2c: - id: i2c_bus sda: GPIO21 scl: GPIO22 frequency: 400kHzsensor: - platform: pmsx003 type: PMSX003 uart_id: uart_pms7003 pm_1_0: name: "PM1.0" pm_2_5: name: "PM2.5" pm_10_0: name: "PM10.0" update_interval: 120s - platform: mhz19 uart_id: uart_mhz19 automatic_baseline_calibration: true warmup_time: 180s update_interval: 300s # KORREKTE POSITION co2: name: "CO₂" temperature: name: "MH-Z19 Temperatur" # BMP280 mit expliziter Temperatur-ID - platform: bmp280_i2c i2c_id: i2c_bus address: 0x76 temperature: name: "Temperatur" id: bmp_temp # Korrekte ID-Referenz pressure: name: "Luftdruck" update_interval: 60s # Korrekter Template-Sensor für Luftfeuchte - platform: template id: dummy_humidity name: "Humidity Compensation" unit_of_measurement: "%" accuracy_decimals: 1 update_interval: 60s lambda: |- static float counter = 50.0; counter = (counter > 70) ? 30 : counter + 0.5; return counter; # SGP41 mit validen Referenzen - platform: sgp4x i2c_id: i2c_bus compensation: temperature_source: bmp_temp # Verwendet explizite Temperatur-ID humidity_source: dummy_humidity voc: name: "VOC Index" algorithm_tuning: # Korrekte Einrückungsebene index_offset: 100 learning_time_offset_hours: 12 learning_time_gain_hours: 12 gating_max_duration_minutes: 180 std_initial: 50 gain_factor: 230 update_interval: 60s