V

Dokümantasyon

Edge cihaz bağlantı kılavuzu ve elektronik şemalar

ESP32-S3MQTTŞema
İçindekiler

Saffron POC - Edge Cihaz Bağlantı Kılavuzu

1. Genel Bakış

Bu kılavuz, Saffron POC sistemindeki tüm edge cihazların (sensörler, aktüatörler, kamera) nasıl bağlanacağını, yapılandırılacağını ve Kubernetes cluster'ına veri göndereceğini açıklar.

1.1 Cihaz Envanteri

KategoriCihazAdetProtokolKontrol Ünitesi
MCUESP32-S3-DevKitC-11WiFi/MQTTAna kontrolcü
SBCRaspberry Pi 4 (4GB)1Ethernet/WiFiEdge AI + Bridge
SensörSHT31-D (Sıcaklık/Nem)2I2CESP32
SensörDS18B20 (Toprak Sıcaklık)4OneWireESP32
SensörCapacitive Soil Moisture4AnalogESP32
SensörSCD41 (CO₂)1I2CESP32
SensörTSL2591 (Işık/Lux)1I2CESP32
SensörAS7341 (Spektrum)1I2CESP32
SensörHC-SR04 (Su Seviyesi)1DigitalESP32
AktüatörLED Grow Light 200W1PWM (0-10V)ESP32
AktüatörPTC Heater 100W1SSRESP32
AktüatörPeltier Cooler 60W1SSRESP32
AktüatörCirculation Fan 80mm2PWMESP32
AktüatörExhaust Fan 120mm1PWMESP32
AktüatörPeristaltic Pump1RelayESP32
KameraUSB Webcam 720p1USBRaspberry Pi

2. ESP32-S3 Pin Haritası

2.1 Fonksiyonel Pin Atamaları

GPIOFonksiyonCihazProtokolNotlar
I2C Bus
GPIO15I2C SDASHT31, SCD41, TSL2591, AS7341I2C4.7kΩ pull-up gerekli
GPIO16I2C SCLSHT31, SCD41, TSL2591, AS7341I2C4.7kΩ pull-up gerekli
OneWire Bus
GPIO4OneWire DataDS18B20 x4OneWire4.7kΩ pull-up gerekli
Analog Girişler (ADC)
GPIO5ADC1_CH4Soil Moisture Sensor 1Analog0-3.3V
GPIO6ADC1_CH5Soil Moisture Sensor 2Analog0-3.3V
GPIO7ADC1_CH6Soil Moisture Sensor 3Analog0-3.3V
GPIO17ADC1_CH7Soil Moisture Sensor 4Analog0-3.3V
Dijital Girişler
GPIO18EchoHC-SR04 UltrasonicDigitalVoltage divider gerekli
Dijital Çıkışlar
GPIO8TriggerHC-SR04 UltrasonicDigital3.3V output
GPIO9SSR ControlHeater SSRDigitalActive HIGH
GPIO10SSR ControlCooler SSRDigitalActive HIGH
GPIO11Relay ControlWater PumpDigitalActive HIGH
PWM Çıkışlar
GPIO12PWM CH0LED Grow Light (0-10V)LEDC1kHz
GPIO13PWM CH1Circulation Fan 1LEDC25kHz
GPIO14PWM CH2Circulation Fan 2LEDC25kHz
GPIO21PWM CH3Exhaust FanLEDC25kHz

2.2 I2C Adres Haritası

CihazI2C AdresiAlternatifBağlantı
SHT31 #1 (Üst)0x44-ADDR → GND
SHT31 #2 (Alt)0x45-ADDR → VCC
SCD41 (CO₂)0x62-Sabit
TSL2591 (Işık)0x29-Sabit
AS7341 (Spektrum)0x39-Sabit

3. Sensör Bağlantıları

3.1 SHT31-D (Hava Sıcaklık/Nem)

Özellikler:

  • Sıcaklık: -40°C to +125°C, ±0.3°C accuracy
  • Nem: 0-100% RH, ±2% accuracy
  • Interface: I2C (up to 1MHz)
  • Besleme: 2.4V - 5.5V

ESPHome Konfigürasyonu:

sensor:
  - platform: sht3xd
    address: 0x44
    temperature:
      name: "Air Temperature Upper"
      id: air_temp_upper
      accuracy_decimals: 2
      filters:
        - offset: 0.0  # Kalibrasyon offset'i
    humidity:
      name: "Air Humidity Upper"
      id: air_humidity_upper
    update_interval: 10s

3.2 DS18B20 (Toprak Sıcaklık)

Özellikler:

  • Range: -55°C to +125°C
  • Accuracy: ±0.5°C (-10°C to +85°C)
  • Interface: OneWire
  • Besleme: 3.0V - 5.5V

ESPHome Konfigürasyonu:

one_wire:
  - pin: GPIO4

sensor:
  - platform: dallas_temp
    address: 0x28FF1234567890A1
    name: "Soil Temperature 1"
    resolution: 12
    update_interval: 30s

3.3 Capacitive Soil Moisture Sensor

Kalibrasyon:

  • Kuru (havada): ~2.75V → 0%
  • Islak (suda): ~1.35V → 100%

ESPHome Konfigürasyonu:

sensor:
  - platform: adc
    pin: GPIO5
    name: "Soil Moisture 1"
    unit_of_measurement: "%"
    attenuation: 11db
    filters:
      - calibrate_linear:
          - 2.75 -> 0
          - 1.35 -> 100
      - clamp:
          min_value: 0
          max_value: 100

3.4 SCD41 (CO₂ Sensör)

Özellikler:

  • CO₂ Range: 400 - 5000 ppm
  • Accuracy: ±(40ppm + 5%)

ESPHome Konfigürasyonu:

sensor:
  - platform: scd4x
    co2:
      name: "CO2 Level"
    temperature:
      name: "SCD41 Temperature"
    humidity:
      name: "SCD41 Humidity"
    automatic_self_calibration: true
    update_interval: 30s

3.5 TSL2591 (Işık Sensör)

PPFD Hesaplama: PPFD = Lux × 0.018 (Full Spectrum LED için)

ESPHome Konfigürasyonu:

sensor:
  - platform: tsl2591
    calculated_lux:
      name: "Illuminance"
      id: illuminance
    gain: auto
    integration_time: 200ms

  - platform: template
    name: "PPFD Estimated"
    lambda: 'return id(illuminance).state * 0.018;'

3.6 HC-SR04 (Su Seviyesi)

Dikkat: Echo pini 5V çıkış verir, voltage divider gerekli!

Echo ──┬──[1kΩ]──┬── GPIO18
       │         │
       └──[2kΩ]──┴── GND

4. Aktüatör Bağlantıları

4.1 LED Grow Light (200W, PWM)

Kontrol: ESP32 PWM → PWM-to-0-10V Converter → LED Driver

ESPHome:

output:
  - platform: ledc
    pin: GPIO12
    id: led_pwm
    frequency: 1000Hz

light:
  - platform: monochromatic
    name: "Grow Light"
    output: led_pwm
    gamma_correct: 1.0

4.2 Heater/Cooler (SSR Kontrol)

Bağlantı: GPIO → SSR DC Input → AC Load

ESPHome:

switch:
  - platform: gpio
    pin: GPIO9
    name: "Heater"
    id: heater_switch

4.3 PWM Fanlar

4-wire fan: 25kHz PWM gerekli

ESPHome:

output:
  - platform: ledc
    pin: GPIO13
    id: fan_pwm
    frequency: 25000Hz

fan:
  - platform: speed
    name: "Circulation Fan"
    output: fan_pwm
    speed_count: 100

4.4 Peristaltic Pump

Kalibrasyon: 1ml ≈ 633ms (pompaya göre değişir)

ESPHome:

script:
  - id: dispense_water
    parameters:
      ml: int
    then:
      - switch.turn_on: water_pump
      - delay: !lambda 'return ml * 633;'
      - switch.turn_off: water_pump

5. MQTT Protokolü

5.1 Topic Yapısı

saffron/
├── sensors/
│   ├── temperature/air/upper
│   ├── temperature/soil/1-4
│   ├── humidity/air/upper
│   ├── humidity/soil/1-4
│   ├── co2
│   ├── light/lux
│   └── water/level
├── actuators/
│   ├── led/brightness
│   ├── heater/state
│   ├── cooler/state
│   ├── fan/circulation
│   └── pump/state
├── command/
│   ├── led/brightness
│   ├── heater/state
│   └── pump/dispense
└── status/
    ├── online
    ├── heartbeat
    └── error

5.2 QoS ve Retention

TopicQoSRetain
sensors/#0false
actuators/#1true
command/#1false
status/online1true

6. Güç Dağıtımı

6.1 Güç Tüketimi Tablosu

CihazVoltajGüç (Max)
LED Grow Light24V DC200W
PTC Heater220V AC100W
Peltier Cooler12V DC60W
Fans (x3)12V DC22W
Water Pump12V DC6W
ESP32 + RPi5V DC18W
TOPLAM-~407W

6.2 Güç Kaynakları

  • AC→24V: Mean Well LRS-150-24 (LED)
  • AC→12V: Mean Well LRS-75-12 (Fanlar, Pompa, Peltier)
  • AC→5V: USB-C PD 65W (ESP32, RPi)

7. Kalibrasyon Prosedürleri

7.1 Sıcaklık Sensörleri

  1. Referans termometre ile karşılaştır
  2. 15 dakika termal denge bekle
  3. Offset hesapla ve ESPHome'a ekle

7.2 Toprak Nem Sensörleri

  1. Kuru nokta: Sensörü havada tut → ADC değerini kaydet
  2. Islak nokta: Sensörü suya daldır → ADC değerini kaydet
  3. calibrate_linear filter'a ekle

7.3 CO₂ Sensör

  • Otomatik: ASC aktif (haftalık)
  • Manuel: Dış ortamda forced calibration (420ppm)

7.4 Pompa Kalibrasyonu

  1. Pompayı 60 saniye çalıştır
  2. Toplanan suyu ölç
  3. ms/ml hesapla: 1000 / (ml/sn)

8. Sorun Giderme

8.1 Bağlantı Sorunları

SorunKontrolÇözüm
WiFi bağlanmıyorSSID/şifre, 2.4GHz mi?Fallback AP kullan
MQTT bağlanmıyorPort 1883 açık mı?Broker'ı kontrol et
I2C cihaz yokPull-up var mı?4.7kΩ ekle

8.2 Sensör Sorunları

SorunOlası NedenÇözüm
SHT31 NaNI2C hatasıHeater'ı aktifle
DS18B20 -127°CPull-up yok4.7kΩ ekle
DS18B20 85°Cİlk okumaTekrar oku
Soil sensor kararsızParazitFerrit boncuk

8.3 Hata Kodları

KodAçıklamaAksiyon
E001Sıcaklık >35°CIsıtıcı kapat
E002Sıcaklık <5°CSoğutucu kapat
E003Sıcaklık sapmasıPID ayarla
E004Nem >80%Fan aç
E007Su tankı düşükDoldur
E008Sensör hatasıBağlantı kontrol

9. Güvenlik

Kontrol Listesi

  • AC bağlantıları izoleli ve topraklı
  • SSR'ler heatsink ile monte
  • Sigorta değerleri doğru
  • Kablolar uygun kesitte
  • Acil durdurma butonu erişilebilir
  • Topraklama sağlam