Aşama 2: Sistem Mimarisi
İnşa Etmeden Önce Kâğıt Üzerinde Planlayın
Önceki bölüm için tıklayın: Aşama 1
Mimari kararlar vermesi en ucuz, yanlış vermesi en pahalı kararlardır — Aşama 2’nin kâğıt üzerinde yapılmasının nedeni budur. Aşama 1’den elinizde sağlam gereksinimler varken, onları nasıl karşılayacağınızın üst düzey planını burada oluşturursunuz. Sistem mimarisini, herhangi bir ev ya da yol inşa etmeden önce bir şehir tasarlamak gibi düşünün: beton dökmeden önce otoyolların ve köprülerin nereden geçeceğine karar verirsiniz. Bir IoT projesinde bu, herhangi bir lehim ya da kod işine başlamadan önce genel sistemi kâğıda ya da beyaz tahtaya çizmek demek (dijital “kâğıt” da olur). Bu aşama, büyük resmi düşünmekle — tasarımı sonradan şekillendirecek kilit kararları şimdi vermekle — ilgilidir. Aşama 2’nin sonunda IoT ürününüz için net bir planınız olur; ve planları değiştirmek, devre kartlarını değiştirmekten çok daha ucuzdur.
Tüm Sistemi Bir Blok Diyagramla Görselleştirin
İlk adım, tüm sistemin bir blok diyagramını çizmek — IoT cihazınız ve ekosistemi için bir mimarın kat planı. Tüm ana bileşenleri çizin ve nasıl bağlanıp haberleştiklerini gösterin. Basit bir IoT blok diyagramı şöyle görünebilir:
- Sensör → Mikrodenetleyici (MCU/SoC) → Kablosuz Radyo → Cloud Sunucusu → Web/Mobil Uygulama (istemci)
Bu zincir, uçtan uca veri yoludur. Sensör veriyi toplar ve MCU’ya iletir. Mikrodenetleyici biraz işleme yapabilir, ardından veriyi bir cloud sunucusuna göndermek için kablosuz bir radyo (Wi-Fi, Bluetooth, LoRa vb.) kullanır. Sunucu veriyi depolar ya da analiz eder ve bir kullanıcı arayüzüne — bir web panosu ya da mobil uygulama — sunar. Akış ortaya konduğunda, ekipteki herkes tüm parçaları bir bakışta görebilir ve verinin sistemde nasıl ilerlediğini anlayabilir.
Resim yeteneğinizi dert etmeyin — basit kutular ve oklar yeterli. Amaç netlik. Blok diyagramı, IoT “şehrinizin” büyük resim haritasıdır: temel bileşenleri ve nasıl etkileştiklerini gösterir; siz aslında verinin bir cloud API’si üzerinden gitmesini planlarken birinin cihazın doğrudan telefon uygulamasıyla konuştuğunu sanması gibi yanlış anlamaları önler. Herkes aynı haritaya baktığında, ileride kaybolan daha az olur.
Bölümlendirme Kararları: Kim Neyi (ve Nerede) Yapıyor?
Sistem çizildikten sonra sıra bölümlendirmede — mimaride hangi sorumluluğun nerede yaşayacağına karar vermek. Kim ne yapıyor: hangi görevler donanıma/cihaza, hangileri firmware’e, hangileri cloud ya da sunucu tarafına ait? Bu kararlar performansı, maliyeti, karmaşıklığı ve güvenliği etkiler.
Bir IoT sisteminde bölümlendirme kararlarına birkaç örnek:
- Veri İşleme: Ham sensör verisi cihazda mı işlenmeli/filtrelenmeli, yoksa ağır işleme için cloud’a ham olarak mı gönderilmeli? Cihazda işleme bant genişliğini ve cloud yükünü azaltır, ama daha güçlü bir MCU gerektirir ve daha fazla pil tüketebilir. Ham veri göndermek cihazı basitleştirir, ama backend’in sağlam olması ve veri bağlantısının yeterli bant genişliğine sahip olması gerekir.
- Veri Güvenliği: Veriyi göndermeden önce cihazda mı şifreleyecek ya da sıkıştıracaksınız, yoksa bunu cloud’da mı halledeceksiniz? Cihazda şifreleme, veriyi sensörden çıktığı andan itibaren korur, ama MCU’dan daha fazlasını ister. Cloud’da yapmak cihazı basit tutar, ama veri bir süre korumasız yolculuk eder — hassas uygulamalarda kabul edilemez.
- Depolama ve Zekâ: Cloud bağlantısı koparsa cihaz veriyi yalnızca yerel olarak buffer’a mı alıyor — yoksa yerel kararlar da mı veriyor? Cloud olmadan “kısıtlı” bir modda çalışabiliyor mu? Şimdi karar vermek, cihazda ekstra bellek ya da depolamaya, ya da çevrimdışı senaryolar için ekstra mantığa ihtiyacınız olup olmadığını belirler.
Bölümlendirme bir denge işidir: sistemin her parçası en iyi yaptığı işi üstlenmeli. Küçük, pilli bir sensör veri toplamakta ve hafif işleme yapmakta iyidir; ağır hesap işleri, gücü bol bir cloud sunucusuna aittir. Tersine, uygulama çok hızlı yanıt gerektiriyorsa ya da internetsiz çalışmak zorundaysa, zekânın daha fazlası uca taşınır. Herkese uyan tek bir cevap yok — ödünleşimler Aşama 1 gereksinimlerinizden gelir.
Bu seçimler üzerinde yinelemek son derece normaldir. “Cihazımız her şeyi yapacak — ön işleme, şifreleme, karar verme” diye başlayıp seçtiğiniz MCU’nun iş yükünü kaldıramadığını ya da belleğinin küçük kaldığını fark edebilirsiniz. Bu içgörü, görevleri cloud’a kaydırabilir. Ya da tersi: cloud için planlanan işleme, ağ gecikmesi endişesiyle cihaza taşınır. Bu sorunları kâğıt üzerinde yakalamak, kod yazıldıktan ya da firmware’i taşıyamayan bir PCB üretildikten sonra keşfetmekten çok daha ucuzdur. Sorumlulukları iyi paylaştırmak için zaman ayırın.
Teknoloji Seçimi: Her Parça İçin Doğru Aracı Seçmek
Blok diyagramı ve bölümlendirme yerindeyken sıra teknoloji seçiminde: her blok için gerçek teknolojilere ya da bileşenlere karar vermek — ya da en azından seçenekleri daraltmak. Bunu, bir binanın her bölümü için malzeme seçmek gibi düşünün: çelik mi ahşap iskelet mi, tuğla mı beton duvar mı? IoT dilinde kilit başlıklar:
- Sensörler: Hangi sensör(ler)e ihtiyacınız var? Bu, gereksinimlerden gelir. Yüksek hassasiyetli sıcaklık okumaları, I²C arayüzlü dijital bir sıcaklık sensörü gerektirebilir; basit bir eşik algılayıcı için analog bir sensör ve bir ADC yeterli olabilir. Doğruluk, güç tüketimi, maliyet ve MCU ile arayüzleme kolaylığını göz önünde bulundurun.
- Mikrodenetleyici (MCU) ya da System-on-Chip: Cihazın beynini seçin. Ultra düşük güçlü olması mı gerekiyor (bir düğme pille yıllarca çalışmak için)? İşlem gücüne ya da belleğe mi ihtiyacı var (cihaz üzerinde işleme, makine öğrenmesi ya da birden çok sensör için)? Peki ekosistem — tercih edilen bir üretici ya da belirli geliştirme araçları? Şöyle daraltabilirsiniz: “Muhtemelen ARM Cortex-M4 ailesinden bir MCU — sensör hesaplamaları için yeterli CPU ve floating-point, pilli çalışma için düşük güç modları.”
- Bağlantı (Kablosuz Radyo): Cihazın nasıl haberleşeceğini menzil, güç ve veri ihtiyaçlarına göre seçin. Akıllı telefonla konuşan bir giyilebilir için Bluetooth Low Energy (BLE) iyi oturur. Ortamında Wi-Fi bulunan bir ev cihazı için Wi-Fi, cloud bağlantısı için pratiktir. Uzak ya da geniş alan cihazları için hücresel IoT’yi (LTE-M, NB-IoT) ya da düşük bant genişliği, uzun menzil ihtiyaçları için LoRa ya da Sigfox gibi lisanssız bant, uzun menzilli radyoları düşünün. Her birinin ödünleşimleri var: Wi-Fi ve hücresel internet erişimi verir ama daha fazla güç tüketir; BLE düşük güçlüdür ama kısa menzillidir; LoRa uzun menzilli ve düşük güçlüdür ama yalnızca küçük paketler içindir.
- Güç Kaynağı: Cihaz nasıl besleniyor? Pille çalışıyorsa, bu seçim diğer her şeyi şekillendirir. Bir düğme pil, genel olarak ultra düşük güçlü bileşenler ister — MCU, radyo, hatta sensör — ve uyku modları ya da verimli bir haberleşme protokolü gibi güç yönetimi özellikleri. Şebeke beslemesi, güce aç Wi-Fi’ı ya da daha güçlü bir işlemciyi kullanma özgürlüğü verir. Pil tipini de (şarj edilebilir lityum-iyon mu, değiştirilebilir mi) ve gereken şarj devresini de düşünün.
- Diğer Bileşenler: Sisteme bağlı olarak başka seçimler de olabilir: ekran ya da UI donanımı (LED’ler, ekranlar, butonlar), aktüatörler (motorlar, röleler). Henüz her şey için kesin parça numaraları gerekmez, ama her ana bileşen için olası adaylardan oluşan bir kısa listeniz olmalı.
Teknolojileri mimari aşamasında seçmek, parçaların birbiriyle ve gereksinimlerle uyumlu kalmasını sağlar ve kaba maliyet ile fizibilite kontrollerini mümkün kılar. “Muhtemelen” üst segment bir MCU’ya ve belirli bir uzun menzilli radyoya ihtiyacınız varsa, toplam maliyetin bütçeye sığıp sığmadığını ve parçaların birlikte çalışıp çalışamayacağını (doğru arayüzler? sürücü desteği?) sağlamasını yapabilirsiniz. Beğendiğiniz bir radyo modülünün yalnızca belirli bir MCU ailesiyle geldiğini ya da harici bir MCU gerektirdiğini keşfedebilirsiniz — bunu şimdi bilmek iyi.
Ayrıca gücü ve boyutu aklınızdan çıkarmayın. Küçük, pille çalışan bir cihaz (bir giyilebilir, uzak bir sensör), yerden ve güçten tasarruf için MCU + radyoyu entegre eden bir system-on-chip’i zorunlu kılabilir. Maliyeti çok hassas bir cihaz, sensör, MCU ve radyoyu birleştiren hepsi bir arada bir modülü tercih edebilir. Bu seçenekleri kâğıt üzerinde tartıp hangi yığının projeye en iyi oturduğunu görme aşaması burası.
Risk ve Maliyet Analizi: Olası Tuzakları Erken Belirleyin
Bu aşamada bile iyi bir mimar, seçilen tasarıma bağlı riskleri ve maliyetleri listelemeye başlar. Onları şimdi işaretlemek, sonradan keşfetmekten iyidir. Düşünülecekler:
- Bileşen Bulunabilirliği ve Tedarik Süreleri: Tasarım, temini zor olabilecek bir bileşene mi dayanıyor? “Mükemmel” çipi bulup 30 haftalık tedarik süresi olduğunu ya da sürekli stokta olmadığını öğrenmek sık görülür. Son teknoloji bir sensör tüm spesifikasyonları karşılayabilir ama o kadar yenidir ki arzı kısıtlıdır. Bu tür parçaları erken belirleyin ve yedekler ya da tedarik planları hazırlayın. Aynısı tek kaynaklı bileşenler için de geçerli — tek tedarikçi, tek hata noktası.
- Maliyet Sürücüleri: Blok diyagramını ve kaba BOM’u tarayıp pahalı kalemleri bulun. Üst segment bir MCU ya da hücresel modül maliyete hükmedebilir; iş modeli buna izin veriyor mu? Vermiyorsa, şimdi yeniden düşünün. Hacim de önemli: cihaz başına fazladan 2 dolar 10 prototip için sorun değildir ama 100.000 birimde önemlidir. Gerekirse mimariyi ayarlayın — 256KB flash ve biraz daha fazla cloud işleme yetecekse 1MB flash’lı MCU belki gereksizdir.
- Tekil Arıza Noktaları: Güvenilirliği düşünün. Bir bileşen arızalanınca ya da çevrimdışı kalınca tüm sistem mi çöküyor? Cihaz cloud bağlantısını kaybederse işe yaramaz hale mi geliyor? Öyleyse yerel yedek ekleyin — veriyi sonra göndermek üzere saklamak ya da temel bir “çevrimdışı mod” bile olabilir. Sistem tek bir cloud sunucusuna bağlıysa, yedeklilik ya da en azından bir kesinti planı düşünün. Zayıf noktaları şimdi görmek, önlemleri tasarlamanızı sağlar: gerçek zamanlı saat için küçük bir yedek pil, güç ya da ağ kesildiğinde veri kaydetmek için bellek.
- Regülasyon ve Uyumluluk Konuları: Sıkça gözden kaçan bir mimari risk. Belirli bir kablosuz teknoloji, radyo emisyonları için FCC/CE sertifikası gerektirebilir; belirli frekans bantlarının bazı ülkelerde yasal kısıtlamaları olabilir. Sağlık ya da endüstriyel kullanım kendi standartlarını getirir (tıbbi cihaz regülasyonları, güvenlik dereceleri). Bilinen uyumluluk ihtiyaçlarını şimdi vurgulayın ki zaman ve para bütçeleyebilesiniz. Bir hücresel modül, zaman alan operatör sertifikasyonları gerektirebilir; bir bölgede LoRa, duty cycle ve güç limitlerine uymak demektir. Bunları erken görmek, son aşamadaki “sertifikayı hiç almadığımız için sevkiyat yapamıyoruz” durumunu önler.
- Entegrasyon ve Karmaşıklık Riskleri: Teknik olarak riskli olan her şeyi işaretleyin — çok yeni bir IoT platformu, deneysel bir firmware kütüphanesi. Risk olarak kabul edin: test etmek için hızlı bir prototip ya da araştırma denemesi planlayın ve bir yedek tutun. “Ne ters gidebilir?” konusundaki erken farkındalık, sorunu tasarımla ortadan kaldırmanızı ya da B planı hazırlamanızı sağlar.
Aşama 2’de risk ve maliyet analizi yapmak, geliştirmeye gözleri açık girmek demektir. En riskli kısım cihaz üzerindeki özel bir makine öğrenmesi algoritmasıysa, önce onu ele alın ya da yakından izleyin. En pahalı bileşen belirli bir sensörse, bütçede başka yerlerde dikkatli olun. Hiçbir ürün risksiz değildir; ama proaktif planlama, sakin projeleri son dakika telaşlarından ayıran şeydir.
Mimariyi Net Bir Şekilde Belgelemek
Mimari aşamasının sonunda, sistem mimarisini tüm ekip için anlaşılır ve paylaşılabilir biçimde belgeleyin. Bu doküman herkesin başvuracağı plan olur; o yüzden erişilebilir bir yerde yaşamalı — baş mühendisin kafasında kilitli kalmamalı.
Mimariyi yakalamanın ve iletmenin başlıca yolları:
- Görsel Diyagramlar: Sistemi farklı açılardan gösterin. Yukarıdaki gibi basit bir blok diyagram, donanımın ve ana yazılım parçalarının üst düzey bağlamını kapsar. Bazı ekipler SysML ya da C4 modeli gibi resmî notasyonlar kullanır — opsiyonel, ama faydalı. Önemli olan, donanımın, firmware’in, cloud servislerinin ve kullanıcıların nasıl etkileştiğini resmetmek. Yazılım için (cihaz firmware’i ve cloud), bir UML bileşen diyagramı — ya da açıklamalı basit bir eskiz bile — hangi modüllerin cihazda, hangilerinin sunucuda çalıştığını gösterebilir. Kısaltmalar sizi yıldırmasın: herhangi bir araçta etiketli kutular ve oklar iyi iletişim kurar. Ekibinizin en iyi okuduğu tarzı kullanın.
- Yazılı Özet: Diyagramlara her bloğu ve rolünü tanımlayan kısa bir yazı eşlik ettirin: “MCU: sensörü okumaktan ve veriyi şifrelemekten sorumlu”; “Cloud: veri depolama, analitik ve uygulama için REST API sunmaktan sorumlu.” Diyagramın altındaki birkaç paragraf ya da madde, belirsizliği kaldırır.
- Ön Malzeme Listesi (BOM): Kilit bileşenleri (sensör, MCU, radyo modülü) tahmini maliyet, tedarikçi ve tedarik süresi ya da bulunabilirlik notlarıyla listeleyen basit bir BOM tablosu başlatın. Her direnç ve kondansatör değil — onlar detaylı tasarımda gelir — yalnızca ana parçalar; böylece birim maliyet ve tedarik zinciri riskleri görünür olur. BOM, kablosuz modülü 10 dolar, geri kalan her şeyi toplam 2 dolar gösteriyorsa, maliyet optimizasyonunun nerede önemli olduğunu anında görürsünüz. İki ana parça aynı tedarikçiden geliyorsa onu da not edin — pratik, ya da bir risk.
- Notasyon ve Tutarlılık: Birkaç kişi katkı veriyorsa adlandırmada anlaşın. Diyagram “Cihaz CPU’su” diyorsa, diğer dokümanlar rastgele “mikrodenetleyici” ve “CPU” arasında gidip gelmemeli — tutarsızlık kafa karıştırır. Etiketleri tutarlı ve dokümantasyonu sürüm kontrollü tutun (paylaşılan bir doküman ya da wiki sayfası yeterli). Birçok ekip, diyagramları ve notları geri bildirim için dolaştırılan ve geliştirme boyunca referans görevi gören kısa bir Mimari Dokümanında toplar.
Amaç: herhangi bir ekip üyesi — yeni katılan biri dahil — mimariye bakıp hızla hızlanabilsin. Mühendislik dışı paydaşlar için de işe yarar: ürün yöneticileri ya da yöneticiler kodunuzu okumayabilir, ama üst düzey bir diyagramı okuyabilirler. İyi mimari dokümantasyonu, fikirlerle uygulama arasındaki boşluğu köprüler.
“İki Kez Tasarla, Bir Kez İnşa Et”: Erken Planlamayla Zaman Kazanın
Mühendislikte bir düstur vardır: “iki kez tasarla, bir kez inşa et.” Sorunları kâğıt üzerindeki bir tasarımda yakalayıp düzeltmek, inşa edilmiş bir üründe düzeltmekten çok daha ucuzdur — Aşama 2’nin tüm felsefesi budur. Bir diyagramda kutuları ve okları oynatmak, PCB’yi yeniden bastırmaktan ya da orijinal plan kusurlu çıktığı için bir firmware modülünü baştan yazmaktan çok daha az acı verir.
Bu aşamayı, tüm ekibi erkenden aynı sayfada buluşturmak için kullanın. Mimari çok disiplinlidir: donanım mühendisleri, firmware geliştiricileri, cloud/backend mühendisleri, ürün yöneticileri. Gözden geçirmede herkesin söz hakkı olmalı; tartışmayı teşvik edin. Bir cloud mühendisi, “Cihaz her okumayı göndermeden önce bir zaman damgasıyla etiketlese, sunucu tarafım sadeleşirdi” diyebilir — önceden bilirseniz küçük bir istek. Bir donanım tasarımcısı, “Şu an iki sensör kullanıyoruz, ama üçüncüsü hava kalitesini de ölçmemizi sağlar — yer bırakalım mı?” diyebilir. Bu tür içgörüler, ekipler yalıtık çalıştığında asla yüzeye çıkmayacak küçük mimari ayarlamalara ya da en azından gelecekteki genişleme için önlemlere yol açar. Arayüz noktalarını şimdi ütülemek, sonraki “artık bunu değiştiremeyiz” anından iyidir.
Buradaki titizlik güven inşa eder. Aşama 2’nin sonunda net bir planınız olmalı: Aşama 1 gereksinimlerini nasıl karşılamayı planladığınızı gösteren üst düzey bir tasarım. Bir binanın mimari çizimi gibi, henüz boya renklerini ya da kapı kollarını seçmez — ama katlar, kapılar, pencereler ve oda yerleşimi bellidir. IoT dilinde: cihazların ne olduğunu, nasıl bağlandıklarını, hangi verinin nereye aktığını ve işi kabaca hangi teknolojinin yaptığını biliyorsunuz.
Bu plan elinizdeyken, detaylı tasarıma ve gerçekleştirmeye güvenle geçebilirsiniz. IoT yolculuğu için bir harita oluşturdunuz; kaybolma ihtimaliniz çok daha düşük. Aşama 3 ve sonrasında — donanım kurarken, kod yazarken — sürekli bu mimariye döneceksiniz. Ve değişiklikler geldiğinde (hep gelir), mimari dokümanını güncelleyin ki güvenilir bir referans olarak kalsın.
Kısacası: Aşama 2, Sistem Mimarisi, projeyi başarıya kurduğunuz yerdir. Ekibi hizalar, riskleri erken ortaya çıkarır ve net bir plan sunar. Tasarladınız — belki iki kez — artık bir kez, hem de doğru inşa edebilirsiniz. Planı yakınınızda tutun; yolculuğun geri kalanında Kutup Yıldızınız olacak.