Azure Sphere uygulaması geliştirmek için Visual Studio ya da VSCode kullanabilirsiniz. Bu kaynakta Visual Studio ile high-level uygulama geliştirmek üzerinde duracağız.

Azure Sphere üzerinde high-level ve real-time capable uygulamalar çalıştırılabilir. Çoğu IoT senaryolarında high-level uygulamalar yeterli olacaktır. Real-time capable uygulamalar ise anlık tepki verilmesi gereken sistemlerde tercih edilmelidir. Azure Sphere modülü üzerinde çalışan high-level ve real-time capable uygulamalar birbirleriyle haberleşebilirler.

Tüm Azure Sphere donanımları üzerinde bir high-level uygulama çalışır. Bu uygulama, application library'lerini kullanır. High-level uygulamalar aşağıdaki özelliklere sahiptir:

  • Donanımsal özelliklere erişim (GPIO, UART, SPI, I2C, ADC ve PWM gibi.)
  • RTApps (Real Time Capable uygulamalar) ile haberleşebilir.
  • Internet ve bulut servisleriyle haberleşebilir.
  • Diğer cihaz ve servislerle broker trust bağlantısı kurabilir.

High-level uygulamalar, Azure Sphere OS'de, konteyner içinde Normal World kullanıcı modunda çalışırlar. Platformun güvenliğini korumak için belli yetkileri sınırlandırılmıştır. Bu uygulamaların sürekli çalışıyor olması beklenir. Uygulama herhangi bir sebepten kapanırsa, otomatik olarak yeniden başlatılır.

Ön Gereksinimler

Visual Studio ile Azure Sphere uygulaması geliştirmek için aşağıdaki adımları sağladığınızdan emin olmalısınız.

  • Azure Sphere cihazınızın USB ile bilgisayarınıza bağlı olması gerekir.
  • Azure Sphere cihazınızın İnternet'e bağlı olması gerekir.
  • Bilgisayarınıza Azure Sphere Dev Kit Kurulumu yazısında belirtilen bileşenleri kurmuş olmanız gerekir.
  • Bilgisayarınızda Azure Sphere SDK'in kurulu olması gerekir.

Donanım Hazırlığı

Azıre Sphere cihazları varsayılan yapılandırmalarında geliştirme aşamasındaki uygulamaların kendilerine yüklenmesine izin vermez. Cihaz üzerinde uygulama geliştirmek için development modunu aktive etmeniz gerekmektedir. Bunun için;

  • Başlat menüzünden Azure Sphere Developer Command Prompt'u açın.
  • "azsphere device enable-development" komutunu çalıştırın.
  • Çalıştırdığınız komut birkaç saniyede İnternet'ten device capability configuration'ı indirecek, cihazınızın uygulama güncelleme özelliğini kapatacak ve cihazınızı yeniden başlatarak geliştirme amaçlı kullanıma hazır hale getirecektir.
  • Cihazı geliştirme amaçlı kullanmanız tamamlandığında "azsphere device enable-cloud-test" komutuyla debug özelliğini kapatıp uygulama güncellemelerini açarak orijinal ayarlarına döndürebilirsiniz.

Örnek Uygulama

  • Visual Studio "Create a New Project" ekranından project types olarak IoT'yi seçin, ve aşağıdaki listeden "Azure Sphere Blink" template'ini açın. Deneyeceğimiz uygulama geliştirme kartınızın LED'ini yakıp söndürerek uygulama geliştirme ve yükleme ayarlarınızın çalıştığını doğrulayacak.
  • Geliştirme kartlarında LED bağlantıları farklı pinlerde yeralabilir. Örneğin, Avnet Sphere Starter Kit'te LED pini GPIO 9, Seeed Mini Dev Board'da GPIO 7'dir.
    "app_manifest.json" Dosyasını açın ve "Gpio": [ 9 ] kodundaki 9'u geliştirme kartınızın LED piniyle değiştirin.
    "main.c" Dosyasındaki "GPIO_OpenAsOutput" da belirtilen GPIO numarasını güncelleyin: int fd = GPIO_OpenAsOutput(9, GPIO_OutputMode_PushPull, GPIO_Value_High);
  • Visual Studio'nun Output Window'unu açın. (View -> Output)
  • Geliştirme kartınızı bilgisayarınıza USB kablosuyla bağlayın.
  • Debug menüsünden "GDB Debugger (HLCore)" u seçin.
  • F5 ile projeyi derleyin. Bu aşamada Visual Studio projeyi derler, image package oluşturur, cihaza yükler (sideload) ve debug modunda çalıştırır. (Sideload, uygulamanın cihaza bulut yerine bilgisayarınızdan yüklenmesi anlamına gelir.)
  • Uygulama yüklendiğinde Output Window'da debugger'dan mesajları göreceksiniz. Aynı zamanda, geliştirme kartınızın LED'i yanıp sönerek uygulamanın çalıştığını gösterecek.
  • Uygulamayı durdurmak için Stop Debugging (Shift + F5) butonunu kullanabilirsiniz.