📌 Bir Bakışta: Raspberry Pi Üzerinde Modern .NET Geliştirme
| Hedef Donanım | Raspberry Pi 3B+, 4B, 5 veya Pi Zero 2 W (ARM32 / ARM64) |
|---|---|
| Yazılım Çatısı | .NET 8 / .NET 9 LTS (Linux ARM Runtimes) |
| İşletim Sistemi | Raspberry Pi OS (64-bit Debian Bookworm önerilir) |
| Dağıtım Seçenekleri | Framework-dependent veya Self-contained (Tek Dosya Çıktısı) |
| Donanım Erişimi | System.Device.Gpio ve I2C/SPI Kütüphaneleri |
| Geliştirme Araçları | Visual Studio 2022 / VS Code ile SSH Uzaktan Hata Ayıklama (Remote Debug) |
Microsoft’un .NET platformunu tamamen açık kaynaklı ve platformlar arası hale getirmesiyle birlikte, güçlü C# dilini ve modern .NET kütüphanelerini Raspberry Pi üzerinde çalıştırmak son derece kolay ve yüksek performanslı hale geldi. Bu adım adım rehberde kurulumdan GPIO yönetimine kadar tüm süreci ele alıyoruz.
Giriş: IoT ve Kenar Bilişimde .NET Gücü
Eski Windows IoT Core günlerinin geride kalmasıyla, modern .NET (Core, 6, 7, 8 ve sonrası) doğrudan standart Linux dağıtımları üzerinde yerel performansla çalışabilmektedir. C# geliştiricileri artık bildikleri modern dil özelliklerini (async/await, LINQ, pattern matching) doğrudan gömülü sistem projelerine taşıyabilmektedir [1].
1. Raspberry Pi Üzerine .NET Runtime Kurulumu
En pratik kurulum yöntemi, Microsoft’un resmi kurulum betiğini kullanmaktır. Raspberry Pi terminalinde şu komutları çalıştırın:
# Kurulum betiğini indirme ve .NET 8 LTS kurma
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel 8.0 --runtime dotnet
# Ortam değişkenlerini kalıcı hale getirme
echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$HOME/.dotnet' >> ~/.bashrc
source ~/.bashrc
# Kurulumu doğrulama
dotnet --info
2. Uygulamayı Derleme ve Pi’ye Dağıtma
Geliştirici bilgisayarınızda (Windows veya macOS) hazırladığınız uygulamayı Raspberry Pi’de ek bir runtime kurmadan çalıştırmak istiyorsanız “Self-contained” olarak derleyebilirsiniz [2]:
dotnet publish -c Release -r linux-arm64 --self-contained true -p:PublishSingleFile=true
Oluşan tek çalıştırılabilir dosyayı SCP veya FileZilla ile Pi’ye aktarıp chmod +x appname yetkisi verdikten sonra doğrudan ./appname komutuyla çalıştırabilirsiniz.
3. GPIO Pinlerine C# ile Müdahale
Resmi System.Device.Gpio NuGet paketi sayesinde LED yakıp söndürme, röle kontrolü veya sensör okuma işlemleri sadece birkaç satır C# koduyla gerçekleştirilebilir:
using System.Device.Gpio;
int pin = 18;
using var controller = new GpioController();
controller.OpenPin(pin, PinMode.Output);
controller.Write(pin, PinValue.High); // LED yandı!
Bağımsız Kaynaklar ve Referanslar
[1] Microsoft Learn: .NET IoT Libraries Documentation & Hardware Programming
[2] Raspberry Pi Foundation: Raspberry Pi OS Documentation & ARM64 Linux Architecture