Raspberry Pi – Windows IoT Core; Merhaba Dünya

   Windows IoT Core’u Raspberry Pi 2’ye kurduysanız şimdi sıra geldi ilk adımlarımızı atmaya. Herşeyden önce, Raspberry Pi 2’ye uzaktan nasıl bağlanacağımızı öğrenmekte fayda var. Windows IoT Core bir masaüstüne arayüzüne sahip olmadığı için yapılandırma işlerimizi uzaktan bağlanarak yapabiliriz. Bu konudaki yardımcımız da PowerShell’in uzaktan oturumları olacak.

   Varsayılan güvenlik ayarları nedeniyle PowerShell’den uzaktaki bir bilgisayarda oturum başlatabilmeniz için öncelikle uzak bilgisayarı güvenilir sunucular arasına eklemelisiniz. Bunu için PowerShell oturumunda aşağıdaki komutları sırasıyla çalıştırmalısınız (192.168.1.27 yerine kendi cihazınızın IP’sini yazmayı unutmayın);

net start WinRM
Set-Item WSMan:\localhost\Client\TrustedHosts -Value 192.168.1.27
remove-module psreadline -force
Enter-PsSession -ComputerName 192.168.1.27 -Credential 192.168.1.27\Administrator

Raspberry Pi 2 cihazında uzak oturum açma

   Paylaştığım komutlardan ilki (net start WinRM), uzaktaki bilgisayarlara bağlanarak PowerShell oturumu üzerinden çalışabilmemizi sağlayan Windows Remote Management servisini başlatacaktır. PowerShell’in uzak bilgisayara bağlanması için öncelikle bu bilgisayara güvenmesi gerekir. Domain ortamında bu güven en başından sağlanmış durumdadır. Öte yandan, bizim örneğimizde olduğu gibi bir domain söz konusu değilse bu güveni bizim belirtmemiz gerekir. Bunun için paylaştığım ikinci komutu kullanıyoruz. Bu komutla 192.168.1.27 IP’li bilgisayara güveneceğimizi belirtiyoruz. Uzak PowerShell oturumlarında StackOverflowException almanıza sebep olan bir hatayı gidermek adına “remove-module psreadline -force” komutunu çalıştırmanızda fayda var. Son komutumuzda da bu bilgisayara Administrator kullanıcısı olarak bağlanıyoruz. Bu komutun çalışması ile birlike kullanıcı bilgilerini soran bir dialogla karşılaşacaksınız. Kullanıcı bilgilerini belirtmeniz ardından kısa bir süre bekledikten sonra Raspberry Pi cihazınızda bir PowerShell oturumu başlayacak. Varsayılan olarak Windows IoT Core için oluşturulan kullanıcı bilgileri şu şekilde;

Kullanıcı Adı : [Cihazın IP adresi ya da Adı]\Administrator

Şifre : p@ssw0rd

   Örneğimizde, güven ilişkisi IP adresi üzerinden olduğu için Raspberry Pi cihazımızın IP adresi değiştiğinde bu güveni yeniden sağlamamız gerekecektir. Alternatif olarak hostname üzerinden güven verilebilir. Bu daha tutarlı bir deneyim sunacaktır.

   Geliştirme ortamında yolunuza bu şekilde devam edebilmekle birlikte üretim ortamında güvenlik için varsayılan şifre’yi değiştirmenizi tavsiye ediyorum. Bunun için aşağıdaki komutu kullanabilirsiniz;

net user Administrator [YENİ ŞİFRENİZ]

   Varsayılan şifreyi ilk değiştirdiğinizde aşağıdaki komutu bir defa çalıştırarak Başlangıç işini de silmeniz gerekecektir;

schtasks /Delete /TN Microsoft\Windows\IoT\Startup /F

   Bu komutlar dışında kullanabileceğiniz diğer komutları ayrı bir yazı ile paylaşmayı planladığım için daha fazla detayına girmiyorum.

   Buraya kadar ki paylaşımımda Raspberry Pi 2’nizi HDMI kablosu yardımıyla bir ekrana bağladığınızı düşünerek ilerledim. Öte yandan her zaman elinizin altında bir ekran bulunmayabilir. Bu durumda da IP adresini öğrenmek bir sorun olabilir. Şanslıyız ki bu senaryo Microsoft tarafından göz önüne alınarak bir çözüm geliştirilmiş; Windows IoT Core Watcher. Windows IoT Core Watcher’ın geliştirme sırasında kullanımı zorunlu bir uygulama olmadığının altını çizmek gerekir; öte yandan elimizin altında böyle bir aracın olmasında çok büyük fayda var.

   Network’ü tarayarak Windows IoT Core cihazlarını bulan Windows IoT Core Watcher uygulamasını, daha önceden indirmiş olduğunuz “Windows 10 IoT Core Insider Preview Image for Raspberry Pi 2” zip’i içerisinde yer alan WindowsDeveloperProgramForIoT.msi dosyasını yardımıyla bilgisayarınıza kurabilirsiniz.

Windows IoT Core Watcher uygulaması başlatıldığında ağ üzerindeki Windows IoT Core cihazlarını listeleyecektir

   Eğer Windows 10 x64 yüklü bir sistem üzerinde geliştirme yapıyorsanız kurulum sonrasında Windows IoT Core Watcher uygulamasını çalıştıramayacaksınız. Bu problemi aşmak için takip edeceğiniz adımları şu makalemde bulabilirsiniz.

   Bu adımlar ardından sıra geldi “Merhaba Dünya!” uygulamamıza. Bunun için Visual Studio’yu açarak yeni bir Windows Universal Platform uygulaması oluşturalım;

Yeni bir Windows Universal App projesi oluşturulması

   Projenin açılmasından sonra MainPage.xaml dosyasını tasarım modunda açarak içerisine bir buton ve bir textBlock ekleyelim;

MainPage.xaml sayfasının tasarım modunda açılarak buton ve textblock eklenmesi

   Butona çift tıklayarak click olay kodunu oluşturalım;

Ekranda bulunan butona tıklama olay kodlarının eklenmesi

   Tıklama olayını dinlediğimiz fonksiyon içerisine aşağıdaki kodu ekleyerek text bloğunda “Merhaba Dünya!” yazmasını sağlayalım. Sonrasında yerel makinemizde hata ayıklama modunda uygulamamızı başlatalım;

Hazırlanan uygulamanın yerel makinede test edilmesi

   Açılan uygulama ekranında “Buraya Tıkla” yazılı butonumuza bastığımızda “Merhaba Dünya!” yazısının geldiğini göreceksiniz.

   Şimdi sıra geldi bu uygulamamızı Raspberry Pi 2 üzerinde çalıştırmaya. Bunun için, standart araç çubuğunda yer alan hata ayıklama bölümünde hedef işlemci mimarisi olarak ARM seçmeliyiz. Bu seçim ardından hedef platform otomatik olarak cihaz (Device) olacaktır;

Hedef işlemci mimarisi olarak ARM seçilmesi

   Uygulamamızı Raspberry Pi 2 cihazımızda çalıştırmak için hedef platformu uzak makine (Remote Machine) yapmalıyız;

Hedef platform olarak uzak makine seçilmesi

   Hedef platformunu uzak makine seçmemizle birlikte karşımıza uzak makine bağlantı bilgilerini gireceğimiz ekran çıkacaktır;

Uzak bağlantıların ayarlanması

   Bu ekranda address bölümüne Raspberry Pi 2 cihazımızın ip bilgisini vererek ve yetkilendirme yöntemi olarak da “hiçbiri” (None) seçerek “select” butonu ile bağlantı tanımlamasını gerçekleştirebiliriz.

   Artık uygulamamızı Raspberry Pi 2 üzerinde çalıştırmaya hazırız. Uygulamamızı başlatır gibi F5 ile hata ayıklama oturumunu başlattığımızda uygulamamız derlenecek, ardından da cihazımıza deploy edilecektir. Aynı masaüstünde yaptığımız gibi Raspberry Pi’ye bağlı bir fare yardımıyla butona tıklayabilir, mesajımızın ekranda yer aldığını görebiliriz…

Uygulamanın cihaza ve bağlı LCD ekran üzerinde çalışması

Fatih Boy

Ankara'da yaşayan Fatih, bir kamu kurumunda danışman olarak çalışmaktadır. ALM süreçleri, kurumsal veri yolu sistemleri, kurumsal altyapı ve yazılım geliştirme konularında destek vermektedir. Boş zamanlarında açık kaynak kodlu projeler geliştirmeyi ve bilgisini yazdığı makalelerle paylaşmayı seven Fatih, aynı zamanda Visual C# ve Visual Studio teknolojileri konusundan Microsoft tarafından altı yıl üst üste MVP (En Değerli Profesyonel) ödülüne layık görülmüştür. İş hayatı boyunca masaüstü uygulamaları, web teknolojileri, akıllı istemciler gibi konularda Asp.Net, Php, C#, Java programlama dilleri ve MySql, MsSql ve Oracle gibi veritabanı yönetim yazılımları ile çalışmıştır. İngilizce ve Türkçe olarak yayınlanan makalelerini gerek İngilizce bloğunda, gerekse de Türkçe bloğunda bulabileceğiniz gibi web sitesinden de açık kaynak kodlu geliştirdiği yazılımlarına ulaşabilirsiniz. vCard - Twitter - Facebook - Google+

4 yorum

  1. Gökhan Akgöl   •  

    Hocam Merhaba,

    Bu adımları daha önce yapmıştım ama şöyle bir engel ile karşılaşıyorum.

    http://isolutiontr.com/Hata3.png

    Yazıda bahsettiğiniz gibi ayarları yaparak 1 kere cihaza bağlandım şifreyi değiştirdim ama daha sonra ki yazmam gereken satırı yazmadan kapatmıştım

    schtasks /Delete /TN Microsoft\Windows\IoT\Startup /F

    Bu satırı çalıştırmamıştım. Şimdi aynı adımları izleyerek tekrar cihaza bağlanamıyorum. “Access is denied” diyerek engelliyor.

    Şifreyi sıfırlamak veya başka nasıl bir yol izlemem gerekir.

    İyi çalışmalar

    • Fatih Boy   •     Yazar

      Merhaba Gökhan, başlangıç işini silmediğin için şifren sıfırlanmıştır. Varsayılan şifre (p@ssw0rd) ile giriş yapabilirsin.

  2. umut   •  

    Hocam merhaba,
    şuan grafiksel bir arayüze sahip olmadığı için internet tarayıcısı da yok lakin ileri sürümlerinde silverlight destekleme ihtimali var mıdır? (ARM tabanlı işlemci diyeceksiniz. ben yinede şansımı deneyeyim). Daha genelleme sorayım . Raspberry’de silverlihgt çalıştırmamızın bi yöntemi var mı?

    İyi çalışmalar. Teşekkürler.

    • Fatih Boy   •     Yazar

      Merhaba Umut,
      Maalesef bildiğim kadarıyla Raspberry Pi için desteklenen bir Silverlight sürümü bulunmuyor. Microsoft’un Silverlight desteğini kestiğini de hesaba katarsak ilerleyen zamanlarda da desteğin geleceğini söylemek zor.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir