NetModule Cihazlarda Uygulama Geliştirmek Çok Kolay

Telista’dan Açık Kaynak Hibrit Mimari ve VS-Code Desteği!
Endüstriyel sahalarda, demiryollarında ve ağır vasıtalarda NetModule yönlendiricilerinin donanımsal sağlamlığı ve güvenilirliği tartışılmaz. Ancak bu cihazların donanımına doğrudan erişim sağlayan tescilli Arena betik diliyle uygulama geliştirmek isteyen mühendisler ve entegratörler için bugüne kadar modern bir IDE desteği bulmak oldukça zordu.
Bu süreci kolaylaştırmak için kolları sıvadık.
1. İlk Adım: VS-Code Arena Eklentisi
Arena dilinde kod yazmayı modern bir geliştirme konforuna taşımak amacıyla Visual Studio Code için Arena Eklentisi geliştirdik.
- Kod renklendirmesi (Syntax Highlighting),
- 400’den fazla yerleşik NetModule SDK fonksiyonu (nb_*) için anlık dokümantasyon, parametre ipuçları ve otomatik tamamlama (IntelliSense) desteğini tek bir pakette topladık.
Böylece Arena ile uygulama geliştirirken kılavuzlar arasında kaybolma devrini kapattık.
2. Örnek Senaryo: Filo Yönetimi ve Telemetri
Geliştiricilere somut bir zemin sunmak adına referans uygulama olarak bir Filo Yönetimi / Araç Telemetrisi senaryosunu ele aldık.
Denemek ve kendi projelerine uyarlamak isteyen ekipler için donanım maliyetini en erişilebilir kılmak adına, serinin en kompakt ve ekonomik üyesi olan NetModule NB800'ü tercih ettik.
3. Hibrit Mimari: Arena ve Bağımsız Konteyner Katmanı
NB800’ün donanımsal güçlerini sonuna kadar açığa çıkarmak için sistemi iki katmanda kurguladık:
- Arena Betikleri (Metale Yakın Katman): Cihazın işletim sistemi (NRSW) çekirdeğinde çalışan mikro betikler; GPS, 4G bağlantısı ve sayısal giriş/çıkışlar (DIO) gibi donanım olaylarını sıfır gecikmeyle yakalayıp yerel MQTT broker'a basıyor.
- LXC Konteyner Katmanı (Alpine Linux): NB800’ün konteyner barındırma yeteneği sayesinde cihazın içine hafif bir Alpine Linux ortamı konuşlandırdık.
Önemli Not: Biz bu referans projede uygulama geliştirmesi kolay, hızlı ve esnek olsun diye Python 3 seçtik; ancak siz kesinlikle Python ile sınırlı değilsiniz! Dilediğiniz programlama dilinde (Go, C, C++, Rust, Node.js vb.) kendi uygulamanızı geliştirebilir, cihazın mimarisine uygun (ARMv7 / armhf) derleyip LXC içindeki Alpine konteynerine atabilirsiniz. Uygulamanız hangi dilde yazılmış olursa olsun, dahili MQTT omurgası üzerinden Arena katmanıyla kesintisiz haberleşecektir. Bizim Python örneğimizde; araç tünele veya kapsama dışı bir alana girdiğinde verilerin kaybolmaması için yerel bir SQLite tamponu (Store & Forward) kurduk ve saha teknisyeninin kabin içinden internetsiz teşhis yapabileceği yerel bir web paneli (:8080) sunduk.
4. Siber Güvenlik Önceliğimiz: Sadece VPN Üzerinden İletişim
Endüstriyel projelerde güvenlik taviz verilemez bir başlıktır. Bu mimaride telemetri verilerinin genel internete doğrudan çıkmasını bilinçli olarak engelledik. Cihaz içindeki telemetri motorunu, yalnızca güvenli bir VPN tüneli (OpenVPN/IPsec) kurulduğunda merkezdeki IoT broker'ına bağlanacak ve tamponlanan verileri boşaltacak şekilde yapılandırdık.
GitHub’a Girin, İnceleyin, Kendi Uygulamanızı Geliştirin!
VS-Code eklentisinden Arena betiklerine, konteyner servisinden paketleme araçlarına ve saha notlarına kadar hazırladığımız tüm kaynak kodları GitHub'da açık kaynak olarak paylaşıyoruz.
Siz de kendi endüstriyel IoT, telemetri veya otomasyon uygulamanızı geliştirmek istiyorsanız:
- GitHub repomuzu bilgisayarınıza indirin ve mimariyi inceleyin.
- Telista’dan bir adet NetModule NB800 temin edin.
- Kodları cihaza yükleyin, test edin ve kendi dilinizde kendi özel uygulamanızı hızla hayata geçirin!