Raspberry Pi

IoT Projelerinde Raspberry Pi vs ESP32: MQTT için Doğru Kartı Seçmek

IoT geliştiricileri için pratik bir Raspberry Pi vs ESP32 karşılaştırması: Linux tek kart bilgisayar ile Wi-Fi mikrodenetleyicinin güç, maliyet, güvenilirlik ve MQTT araçları açısından farkları ve ikisinin birlikte ne zaman kullanılacağı.

Raspberry pi vs esp32 karşılaştırmasını gösteren, buluta MQTT mesajları gönderen yan yana bir Raspberry Pi ve bir ESP32 geliştirme kartı
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

Raspberry Pi vs ESP32 sorusu neredeyse her IoT projesinde gündeme gelir ve dürüst cevap şudur: ikisi farklı sorunları çözer. Bu rehber bir Linux tek kart bilgisayarı bir Wi-Fi mikrodenetleyiciyle, bir kurulumu gerçekten belirleyen konularda karşılaştırıyor: güç, maliyet, güvenilirlik, geliştirme eforu ve MQTT istemci seçenekleri. Sonunda hangi kartı nereye koyacağınızı ve ikisini aynı broker'la nasıl konuşturacağınızı bileceksiniz.

İki Farklı Cihaz Sınıfı

Raspberry Pi tam bir bilgisayardır. Linux'u SD karttan veya SSD'den başlatır; paket yöneticisi, birden fazla süreç, Python, Node.js, Docker, bir web sunucusu ve bir veritabanını aynı anda çalıştırır. ESP32 ise bir mikrodenetleyicidir: birkaç yüz kilobayt RAM'e, dahili Wi-Fi ve Bluetooth'a sahip, USB üzerinden yüklediğiniz tek bir firmware imajını çalıştıran çift çekirdekli bir yonga. Masaüstü anlamında bir işletim sistemi yoktur; Arduino veya ESP-IDF kodunuzun altında yalnızca FreeRTOS bulunur.

Bu sınıf farkı diğer her şeyi şekillendirir. Pi esneklik ve devasa bir yazılım ekosistemi sunar; ESP32 ise determinizm, düşük güç tüketimi ve bir kutuya konup unutulabilme yeteneği sunar. Soyut olarak hiçbiri "daha iyi" değildir.

Bir Bakışta Raspberry Pi vs ESP32

Kriter Raspberry Pi (4, 5, Zero 2 W) ESP32 (klasik, S3, C6)
Tür Linux tek kart bilgisayar Wi-Fi/Bluetooth mikrodenetleyici
Açılış süresi Onlarca saniye Bir saniyenin çok altında
Tipik boşta güç Watt düzeyinde Miliwatt; derin uykuda mikroamper
Pille çalışma Uzun süreler için pratik değil Derin uyku ile bunun için tasarlanmış
Depolama Dosya sistemli SD kart veya SSD Dahili flash, dosya sistemi gerekmez
Ani güç kesintisi SD kartı bozabilir Genellikle zararsız
Diller Python, Node.js, Go, C#, Java, Linux'ta çalışan her şey C/C++ (Arduino, ESP-IDF), MicroPython
MQTT istemcileri paho-mqtt, MQTT.js, Mosquitto araçları, Node-RED PubSubClient, AsyncMqttClient, ESP-MQTT, umqtt
TLS Tam OpenSSL, etkinleştirmesi çok kolay Destekleniyor, ancak sertifikalar ve RAM dikkat ister
Kamera, ML, USB cihazlar Kolay Sınırlı (ESP32-CAM, TinyML)
Uzaktan güncelleme apt, git pull, container'lar OTA firmware imajları
Birim maliyet Daha yüksek Daha düşük

Güç ve Pil Ömrü

Karşılaştırmanın en dengesiz olduğu yer güçtür. Raspberry Pi hiçbir zaman gerçekten uyumaz; Zero 2 W bile açık olduğu sürece sabit bir akım çeker ve çevre birimleriyle bir Pi 5 düzgün bir USB-C adaptöre ihtiyaç duyar. Bir Pi'yi powerbank ile çalıştırmak hafta sonu demosu için işe yarar, tarladaki bir sensör için değil.

ESP32 ise uyanıp bir sensörü okuyabilir, Wi-Fi'ye bağlanabilir, tek bir MQTT mesajı yayınlayıp birkaç saniye içinde yeniden derin uykuya dönebilir. Uyanmalar arasında aktif akımının çok küçük bir kısmını çeker; madeni para boyutundaki kartların tek bir pille aylarca çalışmasının sebebi budur. Cihazınızın şebeke elektriği yoksa karar fiilen verilmiştir: ESP32 kullanın ve yayınla-uyu kalıbı için MQTT ile ESP32 derin uyku rehberimizi okuyun.

Sahada Güvenilirlik

Mikrodenetleyicileri bozmak zordur. Bir ESP32 yazma sırasında gücünü kaybederse aynı firmware ile yeniden başlar. Döngünüz takılırsa bir watchdog zamanlayıcısı onu sıfırlar ve bozulacak bir dosya sistemi yoktur.

Raspberry Pi ise gözetimsiz kurulumlarda daha hassastır. Yaygın arıza türleri şunlardır:

  1. Tekrarlanan sert güç kesintileri veya yoğun loglama sonrasında SD kart bozulması.
  2. Zayıf bir güç kaynağından kaynaklanan, rastgele çökmelere ve Wi-Fi kopmalarına yol açan düşük voltaj.
  3. Bir istisna yüzünden kapanan ve kimsenin yeniden başlatmadığı bir Python betiği.
  4. Aylar içinde loglarla dolan disk.

Dördü de düzeltilebilir: kaliteli bir adaptör kullanın, RAM'e loglayın veya loglamayı azaltın, Pi 4 ya da Pi 5'te SSD'den açın ve MQTT betiğinizi Restart=always ile bir systemd servisi olarak çalıştırın. Python MQTT betiğini açılışta çalıştırma rehberimiz servis dosyasını adım adım anlatır. Sağlamlaştırıldıktan sonra bir Pi uzun süre ilgi gerektirmeden çalışır; ancak ESP32'nin ihtiyaç duymadığı bu sağlamlaştırma adımına ihtiyaç duyar.

Geliştirme Hızı ve Hata Ayıklama

Pi'de SSH ile bağlanır, bir Python dosyasını düzenler, çalıştırır, traceback'i okur ve saniyeler içinde yineleme yaparsınız. mosquitto-clients kurup trafiği aynı cihazda izleyebilir, belleği kontrol etmek için htop kullanabilir ve kartta tam bir git kopyası tutabilirsiniz. Veri işleme, görüntü işleme veya veritabanı içeren her iş için bu, gömülü geliştirmeden çok daha hızlıdır.

ESP32'de her değişiklik derleme ve yükleme demektir; hata ayıklama da çoğunlukla seri çıktılarla yapılır. Karşılığında bitmiş firmware küçüktür, anında başlar ve her seferinde aynı şekilde davranır. Birçok ekip mantığı Pi üzerinde Python ile prototipler, ardından kararlı kısmı ESP32'ye taşır.

MQTT İstemci Seçeneklerinin Karşılaştırması

Her iki platform da birinci sınıf MQTT istemcileridir, ancak deneyim farklıdır.

Raspberry Pi'de bir sunucudakiyle aynı kütüphanelere sahip olursunuz. Python'un paho-mqtt 2.x sürümü MQTT 3.1.1 ve 5.0, TLS, websocket ve otomatik yeniden bağlanmayı destekler. MQTT.js Node.js'i kapsar, Node-RED yerel olarak çalışır ve Mosquitto komut satırı araçları tek bir apt install uzaklığındadır. Bir Pi ayrıca gateway görevi görebilir: Modbus, BLE veya seri cihazları okuyup MQTT üzerinden iletebilir.

ESP32'de PubSubClient, QoS 0 yayınla MQTT 3.1.1 için en basit seçimdir; AsyncMqttClient ve ESP-IDF esp-mqtt bileşeni QoS 1 ve 2 ile bloklamayan çalışma ekler. MicroPython umqtt.simple sunar. Mikrodenetleyicilerde MQTT 5 desteği daha zayıftır ve TLS RAM'in ciddi bir kısmını tüketir; bu yüzden tampon boyutlarını planlamanız gerekir. PubSubClient ve WiFiClientSecure kullanan bir ESP32 MQTT rehberi, TLS'e hazır eksiksiz bir sketch gösterir.

Her iki kartın da hat üzerinde aynı davrandığını görmenin hızlı bir yolu, ikisini aynı broker'a yönlendirip dizüstü bilgisayarınızdan izlemektir:

# Watch everything your devices publish under your own prefix
mosquitto_sub -h broker.connectmq.com -p 1883 -i watcher-7f3a91 \
  -t 'connectmq/demo/7f3a91/#' -v

Pi'de tek satırlık bir yayın ağ yolunu doğrular:

mosquitto_pub -h broker.connectmq.com -p 1883 -i rpi-7f3a91 \
  -t 'connectmq/demo/7f3a91/rpi/status' -m 'online'

broker.connectmq.com adresindeki genel test broker'ı anonimdir ve herkes tarafından okunabilir; bu yüzden rastgele bir önek kullanın ve asla hassas veri göndermeyin.

Kart Fiyatının Ötesindeki Maliyet

ESP32 birim başına daha ucuzdur, ancak toplam maliyet yongadan fazlasını içerir. Bir Pi'nin bir güç adaptörüne, bir SD karta veya SSD'ye ve çoğu zaman bir kasaya ihtiyacı vardır. Bir ESP32'nin bir regülatöre, muhtemelen bir pil ve şarj devresine ve bir muhafazaya ihtiyacı vardır. Öte yandan küçük kurulumlarda en büyük maliyet genellikle mühendislik zamanıdır ve tek seferlik kurulumlarda Pi üzerinde Python günlerce firmware çalışmasından tasarruf ettirebilir. Onlarca veya yüzlerce özdeş sensör düğümü içinse ESP32'nin düşük birim maliyeti ve güç bütçesi açıkça kazanır.

Hangi Kart Ne Zaman Seçilmeli

Cihazın şunları yapması gerekiyorsa Raspberry Pi seçin:

  • Node-RED, yerel bir veritabanı ve bir dashboard gibi birkaç servisi çalıştırmak.
  • Kamera görüntülerini, sesi veya makine öğrenimi modellerini işlemek.
  • USB, seri, Modbus veya Bluetooth cihazlar için gateway görevi görmek.
  • Python veya Node.js ile hızlıca geliştirilmek ve değiştirilmek.

Cihazın şunları yapması gerekiyorsa ESP32 seçin:

  • Pille veya enerji hasadıyla çalışmak.
  • Anında başlamak ve güç kesintilerinden özen gerektirmeden kurtulmak.
  • Büyük sayılarda dağıtılacak kadar ucuz olmak.
  • Tek bir iş yapmak: sensör okumak, çıkışları anahtarlamak, yayınlamak ve abone olmak.

İkisini Birlikte Kullanmak

En sağlam mimariler ikisini birleştirir. ESP32 düğümleri sensörlerin ve aktüatörlerin yanında durur ve küçük JSON payload'ları yayınlar. Bir veya daha fazla Raspberry Pi bu topic'lere abone olarak yerel mantığı, Node-RED akışlarını, bir Grafana yığınını veya bir kamerayı çalıştırır. İki cihaz birbiriyle doğrudan konuşmaz; ikisi de onları tamamen birbirinden ayıran bir MQTT broker ile konuşur. Topic ve payload sözleşmesi aynı kaldığı sürece bir ESP32'yi bir Pi ile veya tersini, sistemin geri kalanına dokunmadan değiştirebilirsiniz.

Proje masanızdan çıktığında bu broker'ın nerede çalıştığı önem kazanır. Mosquitto'yu Pi'nin kendisinde çalıştırmak bir laboratuvar için uygundur, ancak Pi'yi tek bir arıza noktası yapar ve TLS, kimlik doğrulama ve uzaktan erişimi yönetmeyi size bırakır. ConnectMQ gibi bir yönetilen MQTT broker, her iki karta da 8883 portunda sabit bir TLS uç noktası, cihaz başına oluşturulan kimlik bilgileri ve trafiği ayıklamak için canlı bir topic gezgini sunar; ev veya fabrika router'ınızda port yönlendirme gerekmez.

Pi tarafında daha derinlemesine okuma için Raspberry Pi MQTT rehberiyle başlayın, ardından MQTT ile bir röle kartını kontrol etmek gibi uygulamalı bir projeyi deneyin. Daha küçük mikrodenetleyicileri de değerlendiriyorsanız ESP32 vs Raspberry Pi Pico W karşılaştırması bu seçimi ele alır.

Karar Kontrol Listesi

Donanım sipariş etmeden önce bu soruları gözden geçirin:

  1. Kurulum yerinde şebeke elektriği var mı? Yoksa ESP32 seçin.
  2. Cihazın bir kameraya, yerel depolamaya veya birkaç servise ihtiyacı var mı? Varsa Pi seçin.
  3. Birkaç taneden fazla özdeş düğüm mü dağıtacaksınız? ESP32'ye yönelin.
  4. Geliştirme hızı birim maliyetten daha mı önemli? Pi'ye yönelin.
  5. Cihaz bakım gerektirmeden sık güç kesintilerine dayanmalı mı? ESP32'ye yönelin veya Pi'yi sağlamlaştırın.
  6. Cihazın kendisinde mesaj süresi dolumu (message expiry) veya response topic gibi MQTT 5 özelliklerine ihtiyacınız var mı? Pi'de daha kolay.

ConnectMQ ile Başlayın

Hangi kartı seçerseniz seçin, her yerden ulaşabileceği bir broker'a ihtiyacı vardır. ConnectMQ; MQTT 3.1.1 ve 5.0, 8883 portunda TLS ve dashboard'lar için 8084 portunda güvenli WebSocket sunan bir bulut MQTT broker'ı sağlar. Kredi kartı olmadan ücretsiz bir Serverless broker oluşturun, oluşturulan kullanıcı adını, parolayı ve client ID'yi Pi betiğinize veya ESP32 sketch'inize kopyalayın ve her iki cihazın portaldaki topic gezgininde belirmesini izleyin. Daha fazla bağlantıya veya QoS 2'ye ihtiyaç duyduğunuzda kodunuzu değiştirmeden ücretli bir Serverless veya Dedicated plana geçebilirsiniz; bulut MQTT broker rehberi artıları ve eksileri açıklar.

Sık Sorulan Sorular

ESP32, Raspberry Pi'den daha mı güvenilirdir?

Basit, gözetimsiz sensör işleri için genellikle evet; çünkü bozulacak bir dosya sistemi yoktur ve bir saniyenin altında yeniden başlar. İyi bir güç kaynağı ve bir systemd servisiyle düzgün sağlamlaştırılmış bir Pi de güvenilirdir, ancak daha fazla özen gerektirir.

Bir Raspberry Pi ve bir ESP32 aynı MQTT broker'ı kullanabilir mi?

Evet. MQTT platformdan bağımsızdır; bu yüzden ikisi de aynı broker'a bağlanır, üzerinde anlaşılmış topic'lere yayın yapar ve birbirlerinden haberdar olmaları hiç gerekmez.

Pille çalışan sensörler için hangisi daha iyi?

Açık ara ESP32. Derin uyku modu, bir ölçümü yayınlayıp ölçümler arasında kapanmasına olanak tanır; Raspberry Pi bunu yapamaz.

MQTT broker'ı Raspberry Pi'mde çalıştırmalı mıyım?

Öğrenmek için işe yarar, ancak her cihazı tek bir SD karta ve tek bir ev ağına bağlar. Barındırılan bir broker bu tek arıza noktasını ortadan kaldırır ve router değişikliği yapmadan TLS ile uzaktan erişim sağlar.

İlgili yazılar

RC522 Okuyucu ile Raspberry Pi RFID MQTT Erişim Kaydı

Bir RC522 RFID okuyucuyu Raspberry Pi'ye bağlayın, etiketleri Python ile okuyun, yerel bir izin listesiyle karşılaştırın ve her erişim denemesini kayıt araçlarının, panellerin ve uyarı araçlarının tüketebileceği bir MQTT olayı olarak yayınlayın.

6 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.