Ana içeriğe geç

Gateway Sorunları

ESP32 tabanli gateway cihazlarinda karsilasilan baglanti, iletisim ve stabilite sorunlarinin teshis ve cozum rehberi.

Sorun Tablosu

SemptomOlasi SebepKontrolCozum
WiFi'ye baglanamıyorSSID/sifre yanlis, sinyal zayifSeri port loglari, WiFi.RSSI() degeriCredential guncelle, AP yaklastir
MQTT'ye baglanamıyorTLS sertifika hatasi, broker downopenssl s_client testi, EMQX loglariSertifika yenile, EMQX restart
Surekli rebootWatchdog timeout, bellek tasmasiCrash dump, heap kullanimiFirmware guncelle, task stack artir
Modbus okuyamiyorRS485 kablo, baud rate uyumsuz, slave ID yanlisSeri monitor, osiloskopKablo kontrol, baud rate ayarla
Config degisikligi uygulanmiyorMQTT desired topic retain degil, gateway offlineBroker retained msg kontrolRetain flag ekle, gateway restart

Detayli Teshis ve Cozumler

1. Gateway WiFi'ye Baglanamıyor

Semptom: Gateway LED'i surekli yanip sonuyor, MQTT baglantisi kurulmuyor, seri port loglarinda WiFi: DISCONNECTED mesaji tekrarliyor.

Olasi Sebepler:

  • SSID veya sifre yanlis/degismis
  • WiFi sinyal gucu yetersiz (RSSI < -80 dBm)
  • AP kanal kalabaligi veya 5GHz-only agi
  • DHCP sunucusu IP veremiyor

Kontrol Adimlari:

# Seri port uzerinden loglari oku (115200 baud)
screen /dev/ttyUSB0 115200

# Alternatif: minicom ile izle
minicom -D /dev/ttyUSB0 -b 115200

Seri port ciktisinda su degerler kontrol edilmeli:

WiFi RSSI: -65 dBm   ← -70'den kucukse (daha negatif) sorunlu
WiFi Status: CONNECTED / DISCONNECTED
IP Address: 192.168.x.x / 0.0.0.0

Cozum:

  1. Credential guncelleme: OTA veya seri port uzerinden yeni SSID/sifre gonderin
  2. Sinyal iyilestirme: AP'yi gateway'e yaklastirin veya WiFi repeater ekleyin
  3. Kanal ayari: Router'da kanal otomatik yerine sabit kanal (1, 6 veya 11) secin
  4. 2.4GHz kontrolu: ESP32 sadece 2.4GHz destekler — router'da 2.4GHz bandinin aktif oldugundan emin olun

2. Gateway MQTT'ye Baglanamıyor

Semptom: WiFi baglantisi basarili ama MQTT broker'a baglanti kurulamiyor. Dashboard'da cihaz "cevrimdisi" gorunuyor.

Olasi Sebepler:

  • TLS sertifikasi suresi dolmus veya uyumsuz
  • EMQX broker servisi durmus
  • Firewall 8883 (MQTTS) portunu engelliyor
  • Client ID cakismasi (ayni ID ile birden fazla baglanti)

Kontrol Adimlari:

# TLS sertifika kontrolu
openssl s_client -connect mqtt.example.com:8883 -showcerts

# EMQX container durumu
docker compose ps emqx
docker compose logs emqx --tail=50

# EMQX aktif baglantilari kontrol et
docker compose exec emqx emqx_ctl clients list

# Firewall port kontrolu
telnet mqtt.example.com 8883

Cozum:

  1. Sertifika yenileme: Suresi dolan sertifikalari yenileyin ve EMQX'i yeniden baslatin
  2. EMQX restart: docker compose restart emqx
  3. Port acma: Firewall'da 8883 (MQTTS) ve 8084 (WSS) portlarini acin
  4. Client ID duzeltme: Her gateway icin benzersiz client ID kullanildigindan emin olun

3. Gateway Surekli Reboot Ediyor

Semptom: Gateway her 5-30 saniyede bir yeniden basliyor, seri port loglarinda rst: veya Guru Meditation Error gorunuyor.

Olasi Sebepler:

  • Watchdog timer (WDT) timeout — bir task cok uzun suruyor
  • Stack overflow — task icin ayrilan stack yetersiz
  • Heap tasmasi — dinamik bellek tukenmiş
  • Guc kaynagi yetersiz veya dengesiz

Kontrol Adimlari:

# Seri port uzerinden crash dump'i yakala
# ESP32 yeniden basladiginda su satiri ara:
# Guru Meditation Error: Core X panic'ed (...)
# Backtrace: 0x400xxxxx:0x3ffxxxxx ...

# Heap durumu kontrolu (firmware loglarinda)
# Free heap: 45000 bytes ← 20000'den azsa kritik
# Min free heap: 12000 bytes ← 10000'den azsa tasmaya yakin

Cozum:

  1. Firmware guncelleme: En son stabil firmware surumune OTA ile guncelleyin
  2. Stack artirma: xTaskCreate() cagirisinda stack boyutunu artirin (ornegin 4096 → 8192)
  3. Bellek optimizasyonu: Gereksiz buffer'lari kucultuun, statik allocation tercih edin
  4. Guc kaynagi: 5V 2A adaptor kullanin, USB hub uzerinden beslemekten kacinin

4. Gateway Modbus Okuyamıyor

Semptom: Gateway MQTT'ye veri gonderiyor ancak Modbus cihazlarindan okunan degerler sifir veya hata mesaji donuyor.

Olasi Sebepler:

  • RS485 kablo baglantisi (A/B ters, kopuk)
  • Baud rate, parity veya stop bit uyumsuzlugu
  • Yanlis slave ID kullanilmasi
  • RS485 hat sonlandirmasi (termination) eksik

Kontrol Adimlari:

# Seri monitor uzerinden Modbus hata loglarini izle
# Beklenen log formati:
# Modbus TX: [01 03 00 00 00 02 C4 0B] ← istek
# Modbus RX: [01 03 04 xx xx xx xx CRC] ← yanit
# Modbus Error: Timeout / CRC Error ← hata

# Osiloskop ile RS485 hattini kontrol et:
# - A (D+) ve B (D-) arasinda fark sinyali olmali
# - Idle durumda A > B (pozitif fark)

Cozum:

  1. Kablo kontrolu: A-A, B-B baglantilarini dogrulayin. Bazı cihazlarda A/B ters etiketlenmis olabilir — ters baglanti deneyin
  2. Baud rate ayari: Cihaz dokumantasyonundan dogru baud rate (9600, 19200, 38400, 115200) ogrenerek template'de guncelleyin
  3. Slave ID dogrulama: Cihazin fiziksel ayarlarindan (DIP switch veya ekran) slave ID'yi dogrulayin
  4. Termination: RS485 hattinin her iki ucuna 120Ω direnc ekleyin

5. Config Degisikligi Uygulanmiyor

Semptom: Backend veya MQTT uzerinden gonderilen konfigrasyon degisiklikleri gateway'de etkili olmuyor. Eski ayarlarla calismaya devam ediyor.

Olasi Sebepler:

  • MQTT desired topic'ine retain flag ile yayinlanmamis
  • Gateway o sirada cevrimdisi ve mesaji kacirmis
  • Config parser'da hata — format degismis
  • NVS (Non-Volatile Storage) yazma hatasi

Kontrol Adimlari:

# MQTT broker'da retained mesaj kontrolu
docker compose exec emqx emqx_ctl topics list | grep desired

# Belirli bir topic'teki retained mesaji oku
mosquitto_sub -h localhost -p 1883 \
-t "zeus/+/+/desired/config" \
--retained-only -C 1

# Gateway seri loglarinda config parse hatasi ara
# Config received: {...}
# Config applied: OK / PARSE_ERROR

Cozum:

  1. Retain flag: Config mesajlarini mutlaka retain=true ile yayin layin
  2. Gateway restart: Config uygulanmadiysa gateway'i fiziksel olarak yeniden baslatin
  3. Config format: JSON formatinin firmware'in bekledigii sema ile uyumlu oldugundan emin olun
  4. NVS temizleme: Kalici sorunlarda NVS partition'i sifirlayin (fabrika ayarlarina donus)

Genel Ipuclari

  • Gateway loglarini her zaman seri port uzerinden takip edin — en guvenilir teshis yontemidir
  • Firmware surumunu GET /api/v1/gateways/{id} endpoint'inden dogrulayin
  • Toplu gateway sorunlarinda once EMQX broker ve ag altyapisi kontrol edin
  • Tek bir gateway'de sorun varsa once fiziksel baglantilari (guc, RS485, anten) kontrol edin