IoT Eğitimleri

VS Code MQTT Eklentisi: Editörden Çıkmadan Publish ve Subscribe

ConnectMQ eklentisi ve birkaç çalışma alanı göreviyle MQTT'yi VS Code içine taşıyın; yazdığınız firmware veya backend kodunun hemen yanında broker'a bağlanın, topic'leri izleyin ve test payload'ları gönderin.

Firmware kodunun yanında subscribe olunan topic'leri gösteren vs code mqtt eklentisi paneline sahip Visual Studio Code penceresi
Bunu kendi MQTT broker’ınızda çalıştırınFree planla özel, yönetilen bir MQTT broker alın ve hazır kod örnekleriyle başlayın.
Ücretsiz deneyin Kod örnekleri Kart gerekmez

Bir VS Code MQTT eklentisi, IoT geliştirmenin bitmek bilmeyen pencere değiştirme derdini ortadan kaldırır: bir pencerede firmware, diğerinde masaüstü client, ikisinin arkasında bir yerde de terminal. Bu rehberde ConnectMQ eklentisiyle Visual Studio Code içinde MQTT kuracak, test payload'larını deponuzda dosya olarak düzenleyecek ve tekrarlanabilir CLI kontrolleri çalıştıran çalışma alanı görevleri ekleyeceksiniz. Tüm örnekler ücretsiz public broker broker.connectmq.com üzerinde gösterilmektedir.

MQTT'yi Neden Editöre Taşımalı?

Koddaki bir topic adını değiştirdiğinizde etkisini hemen görmek istersiniz. Bir JSON alanını düzelttiğinizde, düzeltmeyi sınayan bir test payload'u göndermek istersiniz. Bunu editör içinde yapmanın somut faydaları vardır:

  • Daha kısa geri bildirim döngüsü. Düzenleyin, firmware'i yükleyin veya yeniden başlatın ve topic'i kodun yanındaki bir panelde izleyin.
  • Payload'lar kodla birlikte yaşar. Test mesajları, ekip arkadaşlarınızın yeniden kullanıp inceleyebileceği sürümlenmiş dosyalara dönüşür.
  • Kurulacak araç sayısı azalır. Ekibe yeni katılanlar eklentiyi ve çalışma alanı görevlerini alır, hemen hazır olur.
  • Tutarlı bağlantı ayarları. Herkes aynı broker ayarlarıyla test eder; bu da "benim makinemde çalışıyor" türü topic hatalarını önler.

ConnectMQ VS Code Eklentisini Kurma

  1. Extensions görünümünü açın (Ctrl+Shift+X, macOS'ta Cmd+Shift+X).
  2. ConnectMQ araması yapın ve resmi eklentiyi kurun.
  3. Eklentiyi simgesinden veya Command Palette (Ctrl+Shift+P) üzerinden adını yazarak açın.

Eklenti, VS Code'dan çıkmadan MQTT broker'larına bağlanmanızı, topic'lere subscribe olmanızı ve test payload'ları publish etmenizi sağlar. Herhangi bir standart MQTT broker ile çalışır. Etiketler sürümler arasında değişebilir; güncel arayüz için eklentinin Marketplace sayfası esas alınmalıdır.

Broker'a Bağlanma

Public test broker için şu değerlerle bir bağlantı oluşturun:

Ayar Public broker Özel broker
Host broker.connectmq.com Portaldaki broker host adresiniz
Port 1883 (TCP) veya 8883 (TLS) 8883 (TLS)
Client ID Benzersiz ve boş olmayan herhangi bir değer, ör. vscode-7hq2 YOUR_CLIENT_ID
Kullanıcı adı / parola Boş bırakın YOUR_USERNAME / YOUR_PASSWORD
Protokol MQTT 5.0 veya 3.1.1 MQTT 5.0 veya 3.1.1

Testleriniz için connectmq/demo/7hq2/ gibi benzersiz bir topic öneki seçin. Public alan herkes tarafından okunabilir; bu yüzden oraya asla gizli bilgi veya gerçek müşteri verisi göndermeyin. Public limitler şunlardır: mesaj başına 64 KB, client başına saniyede 10 mesaj, client başına 10 subscription ve en fazla 8 topic seviyesi.

VS Code MQTT Eklentisinden Subscribe ve Publish

Bağlantı açıkken:

  1. Önekinizin altındaki her şeyi görmek için connectmq/demo/7hq2/# topic'ine subscribe olun.
  2. connectmq/demo/7hq2/device1/cmd topic'ine {"action": "blink", "times": 3} payload'uyla bir test mesajı gönderin.
  3. Mesajın subscription görünümünüze ulaştığını doğrulayın, ardından cihazınızı veya servisinizi aynı topic'lere yönlendirin.

Editör içinde hızlanan tipik hata ayıklama adımları:

  • Topic yazım hatası avı. Üst seviyeye # ile subscribe olun ve gerçekten gelen topic'leri kodunuzdaki string'lerle karşılaştırın.
  • Retained durum kontrolü. Yeniden bağlanın ve hangi topic'lerin hemen bir değer gösterdiğine bakın; bunlar retained'dır.
  • Komut testi. Uygulamanızın göndereceği komutun aynısını publish edin ve cihazın yanıt topic'ini izleyin.

Test Payload'larını Depoda Dosya Olarak Saklayın

Hangi client'tan publish ederseniz edin, referans test mesajlarını depoda saklayın. Basit bir düzen:

mqtt/
  payloads/
    cmd-blink.json
    cmd-reboot.json
    telemetry-normal.json
    telemetry-out-of-range.json
  README.md

Örnek mqtt/payloads/telemetry-out-of-range.json:

{
  "deviceId": "device1",
  "temperature": 142.7,
  "humidity": -3,
  "ts": 1760600000000
}

Bunun gibi uç durum payload'ları (imkânsız değerler, eksik alanlar, yanlış tipler), backend'inizdeki doğrulamayı test ederken ihtiyaç duyacağınız payload'lardır. Bunları dosya olarak tutmak incelenebilir olmalarını sağlar; VS Code da siz yazarken JSON sözdizimini doğrular.

Tekrarlanabilir CLI Kontrolleri için Çalışma Alanı Görevleri Ekleyin

Eklenti etkileşimli çalışma için idealdir. Tekrarlanabilir kontroller içinse mosquitto_pub ve mosquitto_sub komutlarını saran VS Code görevleri onu iyi tamamlar ve entegre terminalde çalışır. .vscode/tasks.json dosyasını oluşturun:

{
  "version": "2.0.0",
  "inputs": [
    {
      "id": "payloadFile",
      "type": "pickString",
      "description": "Payload to publish",
      "options": [
        "mqtt/payloads/cmd-blink.json",
        "mqtt/payloads/telemetry-normal.json",
        "mqtt/payloads/telemetry-out-of-range.json"
      ]
    }
  ],
  "tasks": [
    {
      "label": "MQTT: watch demo topics",
      "type": "shell",
      "command": "mosquitto_sub -h broker.connectmq.com -p 1883 -i vscode-watch-7hq2 -t 'connectmq/demo/7hq2/#' -v",
      "isBackground": true,
      "problemMatcher": []
    },
    {
      "label": "MQTT: publish payload file",
      "type": "shell",
      "command": "mosquitto_pub -h broker.connectmq.com -p 1883 -i vscode-pub-7hq2 -t connectmq/demo/7hq2/device1/telemetry -q 1 -f ${input:payloadFile}",
      "problemMatcher": []
    },
    {
      "label": "MQTT: wait for one telemetry message",
      "type": "shell",
      "command": "mosquitto_sub -h broker.connectmq.com -p 1883 -i vscode-check-7hq2 -t connectmq/demo/7hq2/device1/telemetry -C 1 -W 15",
      "problemMatcher": []
    }
  ]
}

Görevleri Terminal > Run Task menüsünden çalıştırın. pickString girdisi hangi payload dosyasını göndereceğinizi seçmenizi sağlar; -f ise dosya içeriğini mesaj olarak publish eder. Son görev, 15 saniye içinde hiçbir şey gelmezse hatayla sonlanır; bu da firmware yükledikten sonra kullanışlı bir duman testidir. Daha fazla varyasyona ihtiyacınız varsa mosquitto_pub ve mosquitto_sub örneklerine göz atın. Bu görevler için Mosquitto client'larının kurulu olması gerekir; başka bir komut satırı client'ı tercih ediyorsanız MQTT CLI araçları yazısı alternatifleri karşılaştırır.

Pratik Bir Firmware İş Akışı

VS Code'da PlatformIO ile bir ESP32 cihazı geliştirirken her şey şöyle bir araya gelir:

  1. "watch demo topics" görevini başlatın (veya eklentide subscribe olun).
  2. Firmware'i derleyip yükleyin; seri monitörü başka bir panelde açın.
  3. Cihazın ilk telemetrisinin ve retained status mesajının göründüğünü izleyin.
  4. cmd-blink.json dosyasını komut topic'ine publish edin; LED'i ve seri günlüğü izleyin.
  5. Backend'inizin hatalı veriyi nasıl işlediğini görmek için telemetry-out-of-range.json dosyasını telemetri topic'ine publish edin.

Beş adımın tamamı editörden çıkmadan gerçekleşir. Cihaz tarafı için ESP32 MQTT eğitimi, bu topic düzenine uyan bir firmware sunar.

Çalışma Alanında Kimlik Bilgilerini Güvenle Yönetme

Broker parolalarını asla tasks.json veya payload dosyalarına commit etmeyin. Daha güvenli iki yöntem:

  • Görevlerde ortam değişkenleri kullanın: -u $MQTT_USER -P $MQTT_PASS (Windows PowerShell'de $env:MQTT_USER) ve bunları shell profilinizde veya .gitignore ile hariç tutulan yerel bir .env dosyasında tanımlayın.
  • -u ve -P satırlarını içeren bir Mosquitto client yapılandırma dosyasını deponun dışında (~/.config/mosquitto_pub) tutun.

ConnectMQ üzerindeki özel bir broker için portal, broker'ı oluşturduğunuzda kullanıcı adını, parolayı ve client ID'yi üretir; client ID'ler bu kimlik bilgilerine bağlıdır, bu yüzden hem eklentide hem görevlerde size verilen ID'yi kullanın. MQTT güvenliği en iyi uygulamaları yazısı, cihazlar ve ekipler için kimlik bilgisi yönetimini ele alır.

Editör mü, Masaüstü mü, Tarayıcı mı?

İhtiyaç En uygun yer
Kod yazarken test etmek VS Code MQTT eklentisi ve çalışma alanı görevleri
Büyük ve tanımadığınız bir topic ağacını keşfetmek Bir masaüstü explorer; bkz. MQTT explorer masaüstü uygulaması
Kurulum yapmadan herhangi bir makineden kontrol etmek Broker portalındaki tarayıcı içi MQTT client ve canlı topic explorer
CI pipeline'ları -C ve -W seçenekleriyle CLI araçları

Public Broker'ın Ötesine Geçmek

Ücretsiz public MQTT broker eklentiyi denemek için idealdir; ancak ekip geliştirmesi ve gerçek cihazlar özel, kimlik doğrulamalı bir broker gerektirir. Yönetilen bir MQTT broker, sunucu işletmenize gerek kalmadan her geliştiriciye ve cihaza TLS üzerinden kendi kimlik bilgilerini verir. Uygulama kodu yazmaya hazır olduğunuzda MQTT client kütüphanelerine genel bakış yazısı, her büyük dilde karşılık gelen publish ve subscribe çağrılarını gösterir.

ConnectMQ ile Başlayın

ConnectMQ VS Code eklentisini kurun, ardından app.connectmq.com üzerinde ücretsiz Serverless planıyla, kredi kartı gerekmeden özel bir broker oluşturun. Üretilen kimlik bilgilerini yeni bir bağlantıya yapıştırın; dakikalar içinde gerçek cihaz trafiğini editörünüzden test edebilirsiniz.

Sık Sorulan Sorular

VS Code'da yerleşik bir MQTT client var mı?

Hayır. VS Code'da yerleşik MQTT desteği yoktur; bu yüzden onu burada anlatılan gibi bir eklentiyle veya entegre terminalde komut satırı client'larını çalıştıran görevlerle eklersiniz.

ConnectMQ VS Code eklentisi başka broker'larla çalışır mı?

Evet. Standart MQTT broker'larına bağlanır ve portalda oluşturulan broker'lar için de doğal bir seçenektir.

VS Code'dan MQTT testlerini otomatik çalıştırabilir miyim?

Evet. Çalışma alanı görevleri payload dosyalarını publish edebilir ve mosquitto_sub -C 1 -W 15 ile beklenen mesajları bekleyebilir; zamanında hiçbir şey gelmezse görev başarısız olur.

Broker ayarlarını içeren tasks.json dosyasını commit etmeli miyim?

Public broker'ı veya ortam değişkenlerini kullanan görevleri commit edin, ancak parolaları asla commit etmeyin. Özel kimlik bilgilerini ortam değişkenlerinde veya git'ten hariç tutulan yerel yapılandırma dosyalarında saklayın.

İlgili yazılar

Test, Betik ve Hata Ayıklama için En İyi MQTT CLI Araçları

mosquitto_pub/sub, MQTTX CLI, HiveMQ MQTT CLI, MQTT.js CLI, curl ve mqttui'nin uygulamalı karşılaştırması; betik yazma ve hata ayıklama için doğru aracı seçebilmeniz için aynı test broker.connectmq.com üzerinde çalıştırıldı.

7 dk okuma

Tüm yazılar →

Özel MQTT broker’ınız birkaç tık uzağınızda

Hesabınızı oluşturun, broker kimlik bilgilerinizi alın ve ilk cihazınızı bağlayın — kurulacak, yamalanacak ya da ölçeklendirilecek sunucu yok.