IoT

Arduino NINA Kartlarda Eş Zamanlı Wi-Fi ve Bluetooth LE Artık Mümkün!

Arduino NINA Kartlarda Eş Zamanlı Wi-Fi ve Bluetooth LE Artık Mümkün!

Arduino NINA tabanlı kartlar için yayınlanan firmware güncellemesiyle, MKR WiFi 1010, Nano RP2040 Connect ve Nano 33 IoT gibi kartlarda Wi-Fi ile Bluetooth Low Energy artık aynı anda kullanılabiliyor. Önemli ayrıntı şu: bu bir donanım değişikliği değil. Yetenek zaten çipte vardı; önceki firmware onu kısıtlıyordu. Güncelleme, mevcut kartlarınıza yeni bir özellik satın almadan bu kapıyı açıyor.

Neyin Değiştiği: Yazılım mı, Donanım mı

Karışıklığı baştan gidermek gerekir. Kartınızın üzerindeki fiziksel parça değişmedi. Değişen tek şey, NINA modülünün içinde çalışan firmware. Önceki sürümler aynı anda yalnızca Wi-Fi ya da yalnızca BLE'nin aktif olmasına izin veriyordu. Yeni firmware bu kısıtı kaldırıyor, böylece iki protokol bir arada çalışabiliyor.

Bu yüzden elinizdeki eski bir Nano 33 IoT bile, sadece firmware güncellemesiyle bu yeteneğe kavuşuyor. Yeni kart almanıza gerek yok; işlem tamamen yazılımsal.

Bu ayrım önemli çünkü kablosuz yeteneklerin çoğunlukla donanıma bağlı olduğu düşünülür. Oysa modern kablosuz çipler, desteklenen protokollerin büyük bölümünü yazılımla, yani firmware ile yönetir. Aynı fiziksel radyo, farklı firmware ile farklı yeteneklere açılabilir. NINA örneğinde donanım baştan beri yeterliydi; eksik olan, o donanımı tam kapasite kullanan yazılımdı. Güncelleme bu boşluğu kapatıyor.

NINA Modülünün İçinde Ne Var

NINA, u-blox'un ürettiği bir kablosuz modül ailesidir; Arduino kartlarında çoğunlukla NINA-W102 kullanılır. Bu modülün kalbinde bir ESP32 yonga seti bulunur. ESP32'nin en bilinen özelliklerinden biri, tek bir çipte hem Wi-Fi hem Bluetooth radyosunu barındırmasıdır.

ESP32; 2,4 GHz bandında 802.11 b/g/n Wi-Fi ile Bluetooth 4.2 (BLE dahil) desteği sunar. Yani eş zamanlı çalışma yeteneği donanımın doğasında zaten mevcuttu. Arduino'nun önceki firmware'i, bu iki protokolü aynı anda açık tutmaya izin vermeyerek çipin bu yönünü perdeliyordu.

Burada mimariyi netleştirmek gerekir. NINA modülü, kartın ana işlemcisinden ayrı bir birimdir. MKR WiFi 1010 ve Nano 33 IoT'de ana işlemci SAMD21, Nano RP2040 Connect'te ise RP2040'tır. Bu ana işlemci uygulama kodunuzu çalıştırır ve kablosuz işleri, aralarındaki seri bir bağlantı üzerinden NINA modülüne (yani ESP32'ye) devreder. Dolayısıyla firmware güncellemesi, ana işlemcinin değil, yalnızca bu yardımcı kablosuz modülün yazılımını değiştirir.

Tek Radyo, İki Protokol: Eş Zamanlılık Nasıl İşler

Burada dikkat edilmesi gereken teknik bir nokta var. ESP32, Wi-Fi ve Bluetooth için 2,4 GHz bandında büyük ölçüde ortak bir radyo kullanır. "Aynı anda" derken kastedilen, iki protokolün radyoyu zaman paylaşımıyla (time-division) sırayla kullanmasıdır. Çip, radyo zamanını çok hızlı biçimde iki protokol arasında bölüştürür; kullanıcı açısından bu, kesintisiz bir eş zamanlılık gibi görünür.

Bu ayrıntı, ilerideki performans davranışını anlamak için kritik. İki protokol de yoğun trafik ürettiğinde radyo zamanı bölündüğü için her birinin efektif bant genişliği düşer. Hafif IoT trafiğinde bu neredeyse fark edilmez; yüksek hızlı sürekli veri akışında ise kendini gösterir.

Çipin yazılımı, iki protokol arasında bu zaman paylaşımını yöneten bir eş var oluş (coexistence) katmanı içerir. Bu katman, hangi protokolün ne zaman radyoya erişeceğini önceliklendirir. Örneğin bir BLE bağlantısının belirli aralıklarla gönderdiği paketler kaçırılmaması gereken zaman pencerelerine sahiptir; katman bu pencereleri korurken Wi-Fi trafiğini araya sıkıştırır. Firmware güncellemesinin yaptığı iş, tam olarak bu koordinasyon mantığını devreye almaktır.

Önceki firmware neden bu özelliği kısıtlıyordu sorusunun pratik yanıtı, kararlılık ve kaynak yönetimidir. İki yığını (stack) aynı anda ayakta tutmak modülde daha fazla bellek ve daha karmaşık zamanlama gerektirir. Yeni sürüm bu yükü güvenli biçimde taşıyacak olgunluğa erişince kısıt kaldırıldı.

Firmware Güncellemesi Adım Adım

Güncelleme, Arduino IDE içindeki hazır bir araçla yapılır ve ek donanım gerektirmez:

  • Arduino IDE'nin güncel bir sürümünü kurun.
  • Kartı USB ile bilgisayara bağlayın.
  • Tools > WiFiNINA Firmware Updater aracını açın.
  • Doğru kartı ve portu seçip güncellemeyi başlatın; araç NINA modülünün firmware'ini en son sürüme taşır.

İşlem kısa sürer, ancak güncelleme sırasında kartın bağlantısını kesmeyin. Aracın yüklediği firmware, kart üzerindeki uygulama kodunuzdan ayrı bir katmandır; yani eskiz (sketch) kodunuz silinmez, yalnızca modülün kablosuz yazılımı yenilenir.

Güncellemeden önce mevcut firmware sürümünü kontrol etmek iyi bir alışkanlıktır. Arduino IDE'nin WiFiNINA örnekleri arasında yer alan "CheckFirmwareVersion" eskizi, kartın hangi sürümde olduğunu seri monitöre yazar. Böylece güncellemenin gerçekten gerekli olup olmadığını ve işlem sonrası sürümün beklenen numaraya yükselip yükselmediğini doğrulayabilirsiniz. Güncelleme sırasında bazı kartlarda, modülü programlama moduna alan bir yardımcı eskizin önce yüklenmesi gerekebilir; araç bu adımı yönlendirir.

Kullanılan Kütüphaneler

Eş zamanlı çalışmayı kodda yönetmek için iki kütüphane birlikte kullanılır. Wi-Fi tarafı için WiFiNINA, Bluetooth LE tarafı için ArduinoBLE. Güncellenmiş firmware ile bu iki kütüphane çakışmadan birlikte çalışabiliyor.

Pratikte bir eskizde hem WiFiNINA.h hem ArduinoBLE.h dahil edilir; Wi-Fi ile bir ağa bağlanırken aynı kod BLE üzerinden bir cihazı dinleyebilir. Önceki firmware'de bu iki kütüphaneyi bir arada çalıştırmak sorun çıkarıyordu.

Kod tarafındaki akış tanıdıktır. setup() içinde önce WiFi.begin() ile ağa bağlanılır, ardından BLE.begin() ile Bluetooth yığını başlatılır. loop() içinde ise Wi-Fi üzerinden gelen istekler işlenirken, BLE.poll() çağrısıyla BLE olayları düzenli olarak yoklanır. Önemli olan, tek bir döngüde her iki tarafın da düzenli aralıklarla hizmet görmesidir; uzun süren bloklayıcı işlemler bir protokolü aç bırakabilir.

Bu yüzden eş zamanlı kullanımda kodun tıkanmayan (non-blocking) yapıda tutulması önerilir. delay() gibi uzun beklemeler yerine zamanlayıcı temelli bir akış, hem Wi-Fi hem BLE'nin kesintisiz hizmet almasını sağlar. Bu, aslında eş zamanlı iki radyoyu iyi yönetmenin donanımdan çok yazılım tarafındaki inceliğidir.

Özetle: donanım aynı, kütüphaneler aynı isimde. Değişen tek şey, modülün firmware'inin artık iki protokolü aynı anda ayakta tutmasına izin vermesi.

Performans: Eş Zamanlı Kullanımın Bedeli

Ücretsiz öğle yemeği yok. İki protokolün ortak radyoyu paylaşması, yoğun senaryolarda ölçülebilir bir maliyet getirir. Sürekli yüksek hızlı Wi-Fi veri aktarımı yaparken aynı anda yoğun BLE trafiği de üretiyorsanız, her ikisinin gecikmesi ve verimi bir miktar düşebilir.

Buna karşılık tipik IoT kullanımında bu etki genellikle önemsizdir. Bir sensör verisini periyodik olarak buluta göndermek ve arada bir telefonla BLE üzerinden yapılandırma yapmak gibi senaryolar, radyoyu aynı anda doyurmadığından sorun yaratmaz. Kararı, projenizin gerçek trafik profiline göre vermek doğru olur.

Her iki protokol de 2,4 GHz bandında çalıştığından, ortamdaki diğer Wi-Fi ağları, mikrodalga fırınlar ve yoğun BLE trafiği de girişim yaratabilir. Bu, eş zamanlı kullanıma özgü bir sorun değil, 2,4 GHz bandının genel bir gerçeğidir; ancak iki protokolü aynı anda çalıştırırken sağlam bir kanal ve iyi bir anten konumu daha da önem kazanır.

Örnek Bir Akış: Sensör Köprüsü

Somut bir örnek, özelliğin değerini netleştirir. Diyelim ki odaya dağılmış birkaç BLE sıcaklık sensörünüz ve verileri toplayıp buluta gönderecek tek bir NINA kartınız var. Kart, BLE tarafında bu sensörlere abone olup periyodik ölçümleri toplar. Aynı anda Wi-Fi tarafından bir buluta bağlı kalır ve topladığı özet veriyi düzenli aralıklarla oraya iletir.

Güncelleme öncesinde bu iş için ya iki ayrı modül gerekiyordu ya da kart, BLE ile toplama ile Wi-Fi ile gönderme arasında sürekli mod değiştirerek çalışmak zorundaydı; bu da veri kaybına ve gecikmeye yol açardı. Eş zamanlı çalışmayla artık toplama ve iletme kesintisiz sürebilir. Bu köprü senaryosu, özelliğin en doğal kullanım biçimlerinden biridir.

Hangi Kartlar Destekliyor

Bu özellik, NINA modülü taşıyan Arduino kartlarını kapsar. Aşağıdaki tablo, desteklenen başlıca kartları ve gerçek teknik değerlerini gösterir:

Kart Ana işlemci Kablosuz modül Bluetooth
MKR WiFi 1010 SAMD21 (Cortex-M0+, 48 MHz) NINA-W102 (ESP32) 4.2 / BLE
Nano RP2040 Connect RP2040 (çift Cortex-M0+, 133 MHz) NINA-W102 (ESP32) 4.2 / BLE
Nano 33 IoT SAMD21 (Cortex-M0+, 48 MHz) NINA-W102 (ESP32) 4.2 / BLE

Tablodaki değerler kartların bilinen gerçek özellikleridir. Üç kartta da kablosuz işi ESP32 tabanlı NINA modülü yürütür; ana işlemci (SAMD21 veya RP2040) uygulama kodunu çalıştırır ve modülle haberleşir. Arduino Nano serisindeki bu kartlar, kompakt boyutlarıyla yerden tasarruf gereken projeler için uygundur.

Pratik Kullanım Senaryoları

Eş zamanlı Wi-Fi + BLE, tek kartla hibrit iletişim kurmayı mümkün kılar. Öne çıkan birkaç senaryo:

  • Topla-ilet köprüsü: Çevredeki BLE sensörlerden veri toplarken, bu veriyi aynı anda Wi-Fi üzerinden bir buluta gönderme. Daha önce bu iş için genellikle iki ayrı modül gerekiyordu.
  • Yerel yapılandırma + sürekli bağlantı: Cihaz Wi-Fi ile internete bağlı kalırken, kullanıcı bir telefon uygulamasından BLE üzerinden hızlı ayar yapabilir. İnternet bağlantısı bu sırada kopmaz.
  • Alan ve maliyet tasarrufu: Tek NINA modülü iki işi de gördüğünden, minyatür projeler için kart üzerinde daha az yer harcanır.
  • Giyilebilir ve izleme sistemleri: Akıllı ev otomasyonundan giyilebilir teknoloji ve uzaktan izleme projelerine kadar geniş bir alan.

Bu senaryolarda dikkat edilecek bir tasarım kararı, hangi işin hangi protokole verileceğidir. Genel kural olarak, sürekli ve yüksek hacimli veri Wi-Fi'a, düşük güçlü ve aralıklı iletişim ise BLE'ye yakışır. BLE, adından da anlaşılacağı gibi düşük enerji için tasarlanmıştır; pille çalışan küçük sensörler ölçümlerini seyrek aralıklarla yollayarak aylarca dayanabilir. Wi-Fi ise internete erişim ve daha büyük veri blokları için doğru araçtır. Eş zamanlı destek, bu iş bölümünü tek kart üzerinde kurmayı mümkün kılar.

Güncelleme öncesinde önemli projelerinizin bir yedeğini almak iyi bir alışkanlık. İşlem güvenli olsa da, firmware yazma sırasında beklenmedik bir kesinti riskini böylece ortadan kaldırırsınız.

Sık Sorulan Sorular

Hangi kartlar bu özelliği destekliyor?

Başta MKR WiFi 1010, Nano RP2040 Connect ve Nano 33 IoT olmak üzere NINA-W102 modülü taşıyan kartlar. Bu modüllerin tümü ESP32 tabanlıdır.

Güncelleme zor mu, ne gerekiyor?

Zor değil. Arduino IDE içindeki WiFiNINA Firmware Updater aracıyla, yalnızca USB bağlantısı üzerinden yapılır. Ek donanım veya özel yazılım gerekmez.

Wi-Fi ve Bluetooth'u aynı anda kullanmak performansı düşürür mü?

ESP32 iki protokolü ortak radyoyu zaman paylaşımıyla kullanarak yönetir. Yoğun ve sürekli veri akışı olan uygulamalarda hafif bir verim ve gecikme artışı görülebilir; tipik IoT trafiğinde bu etki genellikle fark edilmez.

Bu güncellemenin en pratik yanı, yeni bir kart gerektirmeden mevcut donanımın gizli bir yeteneğini açması. Projeniz aynı anda hem internete hem yakındaki BLE cihazlarına bağlı kalmayı gerektiriyorsa, elinizdeki NINA kartını güncellemek tek başına yeterli olabilir. Karar verirken tek soru şudur: iki protokol de yoğun trafik üretecek mi, yoksa biri arada bir mi çalışacak? İkinci durum, ki tipik IoT projelerinin çoğu böyledir, bu özellikten sorunsuz faydalanır. Eş zamanlı destek, yıllardır elinizde olan bir kartı yeni bir sınıf projeye açan, maliyetsiz bir yükseltme olarak düşünülebilir.

Mertcan Aydemir
Yazar

Mertcan Aydemir

Mertcan, elektrik-elektronik, robotik sistemler ve Arduino tabanlı projeler üzerine içerikler üreten bir teknoloji yazarı. Gömülü sistemler, sensör entegrasyonları ve otomasyon çözümleri üzerine pratik anlatımlarıyla öne çıkıyor. Karmaşık teknik konuları anlaşılır ve uygulanabilir hale getirmeyi amaçlamakta. Site üzerinde hem yeni başlayanlara hem de ileri seviye kullanıcılara yönelik haberler ve rehberler paylaşmakta.

Yorumlar 0

Yorum Bırakın