İçeriğe geç
ETEmir Tonkal

IoT & Endüstriyel Teknoloji

IoT sensör verisini yönetilebilir bir arayüze çevirmek

Sensörden saniyede akan veri, ancak bir insanın bakıp karar verebileceği hale geldiğinde değer üretir. Zor olan kısım toplamak değil, göstermek.

Müşteri
Skysens
Sektör
IoT & Endüstriyel Teknoloji
Yıl
2019
Rolüm
Yazılım geliştirici, ön yüz mimarisi ve devreye alma

Bağlam

Kariyerimin erken döneminde, bir IoT şirketinin ana ürünü olan platformun ön yüz mimarisini kurdum, geliştirdim ve devreye aldım. Bu vaka analizini burada tutuyorum çünkü bugün danışmanlıkta kullandığım birkaç ilkeyi ilk defa orada öğrendim.

Problem

IoT sistemlerinde veri sorunu değil, veri fazlası sorunu vardır. Sahadaki sensörler durmadan ölçüm gönderir. Ham haliyle bu veri kimseye bir şey söylemez; birisinin bakıp “burada bir sorun var” diyebilmesi gerekir.

Ön yüzün işi bu yüzden grafik çizmek değil, sürekli akan bir veri akışını insanın karar verebileceği bir şekle sokmaktır.

Yaklaşım

Akan veriyi arayüzden ayırmak

Gerçek zamanlı veri akışını doğrudan arayüz bileşenlerine bağlamak, çalışan ama kısa sürede yönetilemez hale gelen bir yapı üretir. Veri akışını ayrı bir katmanda topladık; arayüz o katmandan okur. Yeni bir sensör tipi eklendiğinde arayüzün tamamına dokunmak gerekmez.

Kuyruk, arayüzü korur

Sensörden gelen yükün doğrudan panele vurması, yoğun anda arayüzü kilitler. RabbitMQ ile araya kuyruk konması, sistemin yük altında yavaşlamasını sağladı, çökmesini değil. Bu ikisi arasındaki fark, üretimde çalışan sistemle demo arasındaki farktır.

Sıcak veriyi ayrı tutmak

Anlık gösterilecek son değerler Redis üzerinde tutuldu, tarihsel veri MongoDB’de. Kullanıcı panele girdiğinde bekleyeceği yer, veritabanının geçmiş kayıtları taraması değil.

Öğrenilenler

Mimari kararı erken vermek gerekir. Gerçek zamanlı veri akışının nasıl yönetileceği, ilk ekran çizilmeden önce kararlaştırılmalı. Sonradan düzeltmek, yazılanın büyük kısmını atmak demek.

Devreye almak, geliştirmenin yarısıdır. Projeyi yazmak kadar sunucuya kurmak, çalışır halde tutmak ve bozulduğunda görebilmek de işin parçası. Bunu erken öğrenmiş olmam, sonraki bütün projelerde işime yaradı.

Kullanıcı grafiği değil, cevabı arar. “Sıcaklık eğrisi” değil “bu makinede sorun var mı” sorusunun cevabı gösterilmeli. İyi arayüz, veriyi değil kararı sunar.


Bu proje 2019 yılında Skysens bünyesinde yazılım geliştirici olarak yürütülmüştür.

Kullanılan teknolojiler

  • React.js
  • Node.js
  • Express.js
  • MongoDB
  • Redis
  • RabbitMQ

Projenizi 30 dakikada netleştirelim

Ön görüşme ücretsizdir ve satış görüşmesi değildir. Sürecinizi dinler, size en dürüst cevabı veririm — bazen bu cevap “şu an yaptırmayın” olur.