# MQTT Protokolü: IoT Dünyasının Sessiz Dili

> MQTT protokolü nedir? IoT enerji izleme sistemlerinde MQTT kullanımı, publish/subscribe modeli, QoS seviyeleri ve Ranaliz platformunda MQTT entegrasyonu.

Kaynak: https://ranaliz.com/tr/blog/mqtt-protokolu · Yazar: Ahmet Korkmaz · Güncelleme: 2024-10-23


Bir fabrika düşünün. 200 sensör var - her biri anlık olarak enerji tüketimini ölçüyor. Bir kontrol odası, bu verileri toplayıp analiz ediyor. Bir mobil uygulama, bu verilere uzaktan erişim sağlıyor. Peki, tüm bu cihazlar birbirleriyle nasıl konuşuyor?

Cevap: **MQTT (Message Queuing Telemetry Transport)** protokolü. IoT dünyasının sessiz kahramanı.

---

## MQTT Nedir? Basit Bir Hikaye

1999 yılında, IBM ve Eurotech'in mühendisleri bir problem çözmeye çalışıyordu: Petrol boru hatlarını izlemek için binlerce sensörü birbirine bağlamak. Sorun şuydu: Gelenek protokoller çok ağırdı, çok fazla veri kullanıyordu ve güvenilir değildi.

Çözüm: **Hafif, hızlı ve verimli bir mesajlaşma protokolü**. MQTT böyle doğdu.

**MQTT, temelde şu şekilde çalışır:**

Bir posta kutusu düşünün. Birisi mektup atıyor (publish), başka biri bu mektubu almak için posta kutusuna abone oluyor (subscribe). MQTT de aynı mantıkla çalışır - sadece dijital dünyada.

**Publish/Subscribe Modeli:**

```
Sensör (Publisher)
    ↓ "energy/meter1/power: 5.2 kW"
MQTT Broker (Posta Kutusu)
    ↓ Abone olanlar için dağıtır
Platform/Mobil App (Subscriber)
```

---

## Neden MQTT? Diğer Protokollerle Karşılaştırma

**Geleneksel HTTP ile konuşmak:**

HTTP, web tarayıcılar için mükemmel. Ama IoT cihazları için çok ağır. Her istek için tam bir HTTP başlığı gönderir, sürekli bağlantı gerektirir. 200 sensörünüz varsa, 200 sürekli bağlantı demektir - bu da bant genişliği ve enerji tüketimi anlamına gelir.

**MQTT ile konuşmak:**

MQTT, sadece **2 byte** başlıkla çalışır. Bağlantı kurar, mesaj gönderir, bağlantıyı kapatır. Minimal bant genişliği, minimal enerji tüketimi. 200 sensör için bile tek bir broker yeter.

**Karşılaştırma:**

| Kriter | HTTP | MQTT |
|--------|------|------|
| **Başlık Boyutu** | ~100-200 byte | 2 byte |
| **Bağlantı** | Sürekli | On-demand |
| **Mesaj Modeli** | Request/Response | Publish/Subscribe |
| **Bant Genişliği** | Yüksek | Düşük |
| **Enerji Tüketimi** | Yüksek | Düşük |
| **IoT Uygunluğu** | Düşük | Yüksek |

---

## MQTT Nasıl Çalışır? Üç Temel Konsept

### 1. Topic (Konu) Sistemi

MQTT'de mesajlar "topic" adı verilen konulara gönderilir. Topic'ler, klasör yapısı gibi organize edilir.

**Örnek Topic Yapısı:**

```
enerji/fabrika1/hat1/güç
enerji/fabrika1/hat1/gerilim
enerji/fabrika1/hat2/güç
```

Bir cihaz, `enerji/fabrika1/+` şeklinde abone olursa, fabrika1'deki tüm hatları dinler. `enerji/+/+/güç` şeklinde abone olursa, tüm fabrikalardaki tüm hatların güç verilerini alır.

**Wildcard'lar:**
- `+`: Tek seviye wildcard (ör: `enerji/fabrika1/+`)
- `#`: Multi-level wildcard (ör: `enerji/#`)

### 2. QoS (Quality of Service) Seviyeleri

MQTT, üç farklı teslimat garantisi seviyesi sunar:

**QoS 0 - "At Most Once" (En Fazla Bir Kez):**

Mesaj gönderilir, onay beklenmez. "Fire and forget" modeli. Veri kaybı tolere edilebiliyorsa kullanılır.

**Kullanım:** Anlık sıcaklık ölçümleri, her saniye gelen veriler.

**QoS 1 - "At Least Once" (En Az Bir Kez):**

Mesaj, en az bir kez iletilir. Alıcı onay gönderir, ama tekrar gönderim olabilir.

**Kullanım:** Önemli sensör verileri, uyarılar.

**QoS 2 - "Exactly Once" (Tam Olarak Bir Kez):**

Mesaj, yalnızca bir kez ve garantili şekilde teslim edilir. En güvenilir ama en yavaş.

**Kullanım:** Kritik komutlar, sistem ayarları.

**QoS Seçim Rehberi:**

| Veri Tipi | QoS | Neden |
|-----------|-----|-------|
| Anlık ölçümler (1 saniye) | QoS 0 | Kayıp tolere edilebilir |
| Önemli sensör verileri | QoS 1 | Güvenilirlik gerekli |
| Kritik komutlar | QoS 2 | Kesin teslimat gerekli |

### 3. Broker (Mesaj Aracısı)

Broker, MQTT sisteminin kalbi. Tüm mesajları alır, saklar ve abone olanlara dağıtır.

**Broker Görevleri:**
- Mesajları alır ve saklar
- Abone olan cihazlara mesajları dağıtır
- Bağlantıları yönetir
- Güvenlik kontrolü yapar

**Popüler Broker'lar:**
- **Mosquitto:** Açık kaynak, hafif
- **EMQX:** Yüksek performans, kurumsal
- **AWS IoT Core:** Bulut tabanlı
- **Ranaliz Broker:** Enerji izleme için optimize edilmiş

---

## MQTT ve Enerji İzleme Sistemleri

**Gerçek Dünya Senaryosu:**

Bir fabrikada 50 sensör var. Her sensör, 5 saniyede bir güç tüketimini ölçüyor. 200 byte'lık bir veri paketi gönderiyor.

**HTTP ile:**
- Her istek: 200 byte veri + 150 byte HTTP başlık = 350 byte
- 50 sensör × 350 byte × 12 istek/dakika = 210 KB/dakika
- Sürekli bağlantı: Yüksek enerji tüketimi

**MQTT ile:**
- Her mesaj: 200 byte veri + 2 byte MQTT başlık = 202 byte
- 50 sensör × 202 byte × 12 mesaj/dakika = 121 KB/dakika
- On-demand bağlantı: Düşük enerji tüketimi

**Tasarruf:** %42 daha az bant genişliği, %60 daha az enerji tüketimi.

---

## Ranaliz Platformunda MQTT Kullanımı

Ranaliz, enerji izleme sistemlerinde MQTT protokolünü **end-to-end** kullanıyor.

**Sistem Mimarisi:**

```
IoT Sensörler (MQTT Publisher)
    ↓ Topic: "ranaliz/site/{siteId}/meter/{meterId}/power"
Ranaliz MQTT Broker (Optimize edilmiş)
    ↓ Topic bazlı routing
Ranaliz Platform (Analytics & Dashboard)
    ↓ Real-time processing
Kullanıcı Dashboard / Mobil App
```

**Ranaliz'in MQTT Avantajları:**

1. **Gerçek Zamanlı Veri:** Mesajlar anında platforma ulaşır
2. **Ölçeklenebilirlik:** Binlerce sensörü aynı anda yönetir
3. **Güvenilirlik:** QoS seviyeleri ile veri kaybı yok
4. **Güvenlik:** TLS/SSL şifreleme ile güvenli iletişim
5. **Düşük Gecikme:** <100ms mesaj gecikmesi

**QoS Kullanımı Ranaliz'de:**

- **Anlık Ölçümler (QoS 0):** Gerçek zamanlı dashboard için
- **Uyarılar (QoS 1):** Sistem uyarıları için
- **Kritik Komutlar (QoS 2):** Uzaktan kontrol komutları için

---

## MQTT Güvenliği: TLS/SSL Şifreleme

MQTT, varsayılan olarak şifrelenmez. Ama **TLS/SSL** ile güvenli hale getirilebilir.

**Güvenlik Katmanları:**

1. **Kimlik Doğrulama:** Username/password veya sertifika tabanlı
2. **Şifreleme:** TLS/SSL ile veri şifreleme
3. **Yetkilendirme:** Topic bazlı erişim kontrolü

**Ranaliz Güvenlik:**

- **TLS 1.3** şifreleme
- **Sertifika tabanlı** kimlik doğrulama
- **Topic bazlı** yetkilendirme
- **Rate limiting** ile DDoS koruması

---

## MQTT vs Alternatif Protokoller

**MQTT vs CoAP:**

CoAP (Constrained Application Protocol), MQTT'ye alternatif. HTTP benzeri ama daha hafif. MQTT, mesajlaşma için; CoAP, REST API benzeri kullanım için.

**MQTT vs Modbus:**

Modbus, endüstriyel otomasyon için. MQTT, IoT ve bulut entegrasyonu için. Ranaliz'de, Modbus sensörlerden veri alır, MQTT ile buluta gönderir.

**Karşılaştırma:**

| Kriter | MQTT | CoAP | Modbus |
|--------|------|------|--------|
| **Kullanım** | IoT, Bulut | REST API | Endüstriyel |
| **Model** | Pub/Sub | Request/Response | Master/Slave |
| **Ağ** | TCP/IP | UDP/IP | TCP/Serial |
| **Güvenlik** | TLS | DTLS | Yok |

---

## Pratik Uygulama: MQTT Topic Tasarımı

**İyi Topic Yapısı:**

```
ranaliz/site/{siteId}/meter/{meterId}/power
ranaliz/site/{siteId}/meter/{meterId}/voltage
ranaliz/site/{siteId}/inverter/{inverterId}/status
```

**Kötü Topic Yapısı:**

```
data123
meter1
site_5_meter_3_power
```

**Neden?**

- **Hiyerarşik yapı:** Kolay filtreleme ve abonelik
- **Anlamlı isimler:** Bakım ve debug kolay
- **Ölçeklenebilirlik:** Yeni cihazlar eklemek kolay

---

## Sonuç: MQTT - IoT Dünyasının Dili

MQTT, IoT enerji izleme sistemlerinin **sessiz kahramanı**. Hafif, hızlı, güvenilir ve ölçeklenebilir. 

**Neden MQTT?**
- %42 daha az bant genişliği
- %60 daha az enerji tüketimi
- Gerçek zamanlı veri akışı
- Binlerce cihazı aynı anda yönetebilme
- Güvenli ve güvenilir

Ranaliz platformu, MQTT'nin gücünü kullanarak binlerce sensörden anlık veri topluyor, analiz ediyor ve size sunuyor. Enerji izleme sisteminizde MQTT kullanmıyorsanız, verimlilik ve maliyet açısından kayıp yaşıyorsunuz demektir.

> **Önemli Not:** MQTT, IoT dünyasının standart dili. Enerji izleme sisteminizde MQTT kullanarak, geleceğe hazır, ölçeklenebilir ve verimli bir altyapı kurun.

---

### Hemen Başlayın

MQTT ve IoT enerji izleme sistemleri hakkında daha fazla bilgi için:

- **Demo Talebi:** [İletişim Sayfası](https://ranaliz.com/tr/contact)
- **Teknik Danışmanlık:** info@ranaliz.com
- **Ürün Bilgileri:** [Ranaliz Platform](https://ranaliz.com/tr/product/energy-monitoring-platform)
- **Blog Yazıları:** [IoT Enerji İzleme](https://ranaliz.com/tr/blog/iot-enerji-izleme)

---

**Kaynaklar ve Referanslar:**

- OASIS MQTT Standard - MQTT Protocol Specification
- Eclipse Mosquitto - Open Source MQTT Broker
- Ranaliz - MQTT Best Practices for Energy Monitoring (2024)
