Ekinlikler
17 Mar 21 - 21 Mar 10
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Hemen kaydolunBu tarayıcı artık desteklenmiyor.
En son özelliklerden, güvenlik güncelleştirmelerinden ve teknik destekten faydalanmak için Microsoft Edge’e yükseltin.
IoT cihazları için en yaygın senaryolardan biri, ortam koşullarının algılanmasıdır. Sıcaklığı, nemi, barometrik basıncı ve daha fazlasını izlemek için çeşitli algılayıcılar mevcuttur.
Bu konu başlığında bir algılayıcıdan ortam koşullarını okumak için .NET kullanacaksınız.
Not
Bu öğretici, hedef cihazın Raspberry Pi olduğu varsayılarak yazılmıştır. Ancak bu öğretici Orange Pi, ODROID ve daha fazlası gibi .NET'i destekleyen linux tabanlı SBC'ler için kullanılabilir.
Önemli
BME280 tartışmalarının birçok üreticisi vardır. Çoğu tasarım benzerdir ve üreticinin işlevsellik açısından hiçbir fark oluşturmaması gerekir. Bu öğretici, varyasyonları hesaba eklemeye çalışır. BME280 tartışmanızın bir Inter-Integrated Bağlantı Hattı (I2C) arabirimi içerdiğinden emin olun.
BME280 tartışmaları gibi bileşenler genellikle çözülmemiş pin üst bilgileriyle satılır. Lehimleme konusunda rahatsızsanız, ön lehimli üst bilgi veya farklı bir bağlayıcı içeren BME280 tartışma panosu arayın. İstersen, lehim yapmayı öğrenin! İşte lehimleme için iyi bir başlangıç kılavuzu.
SBC'nizin aşağıdaki hizmetleri destekleyecek şekilde yapılandırıldığından emin olun:
Birçok cihaz için ek yapılandırma gerekmez. Raspberry Pi için komutunu kullanın raspi-config
. hakkında raspi-config
daha fazla bilgi için Raspberry Pi belgelerine bakın.
Aşağıdaki diyagramda gösterildiği gibi bağlantı hattını oluşturmak için donanım bileşenlerini kullanın:
Raspberry Pi'den BME280 tartışmasına bağlantılar aşağıdadır. Raptiye etiketlerinin çeşitli BME280 tartışmalarında farklılık gösterdiğini unutmayın.
Raspberry Pi | BME280 Tartışması | Renk |
---|---|---|
3.3V | VIN/3V3 | red |
Zemin | GND | siyah |
SDA (GPIO 2) | SDI/SDA | mavi |
SCL (GPIO 3) | SCK/SCL | turuncu |
Gerektiğinde aşağıdaki sabitleme diyagramına bakın:
Görüntü, Raspberry Pi Foundation'ın izniyle.
İpucu
GPIO üst bilgisine bağlantıları kolaylaştırmak için bir içerik panosuyla birlikte GPIO tartışma panosu önerilir.
Tercih ettiğiniz geliştirme ortamında aşağıdaki adımları tamamlayın:
.NET CLI veya Visual Studio kullanarak yeni bir .NET Konsol Uygulaması oluşturun. Ona SensorTutorial adını verin.
dotnet new console -o SensorTutorial
cd SensorTutorial
Iot.Device.Bindings paketini projeye ekleyin. Proje dizininden veya Visual Studio'dan.NET CLI kullanın.
dotnet add package Iot.Device.Bindings --version 2.2.0-*
Program.cs dosyasının içeriğini aşağıdaki kodla değiştirin:
using System;
using System.Device.I2c;
using System.Threading;
using Iot.Device.Bmxx80;
using Iot.Device.Bmxx80.PowerMode;
var i2cSettings = new I2cConnectionSettings(1, Bme280.DefaultI2cAddress);
using I2cDevice i2cDevice = I2cDevice.Create(i2cSettings);
using var bme280 = new Bme280(i2cDevice);
int measurementTime = bme280.GetMeasurementDuration();
while (true)
{
Console.Clear();
bme280.SetPowerMode(Bmx280PowerMode.Forced);
Thread.Sleep(measurementTime);
bme280.TryReadTemperature(out var tempValue);
bme280.TryReadPressure(out var preValue);
bme280.TryReadHumidity(out var humValue);
bme280.TryReadAltitude(out var altValue);
Console.WriteLine($"Temperature: {tempValue.DegreesCelsius:0.#}\u00B0C");
Console.WriteLine($"Pressure: {preValue.Hectopascals:#.##} hPa");
Console.WriteLine($"Relative humidity: {humValue.Percent:#.##}%");
Console.WriteLine($"Estimated altitude: {altValue.Meters:#} m");
Thread.Sleep(1000);
}
Yukarıdaki kodda:
i2cSettings
yeni bir örneğine I2cConnectionSettings
ayarlanır. Oluşturucu parametresini busId
1, parametresini deviceAddress
ise olarak Bme280.DefaultI2cAddress
ayarlar.
Önemli
Bazı BME280 tartışma üreticileri ikincil adres değerini kullanır. Bu cihazlar için kullanın Bme280.SecondaryI2cAddress
.
Using bildirimi çağrısı I2cDevice.Create
yaparak ve geçirerek i2cSettings
bir örneğini I2cDevice
oluşturur. Bu I2cDevice
, I2C veri yolunu temsil eder. Bildirimi, using
nesnenin atılmasını ve donanım kaynaklarının düzgün bir şekilde serbest bırakılmasını sağlar.
Başka bir using
bildirim, algılayıcıyı temsil etmek için bir örneği Bme280
oluşturur.
I2cDevice
oluşturucuda geçirilir.
Yonganın geçerli (varsayılan) ayarlarıyla ölçüm alması için gereken süre çağrılarak GetMeasurementDuration
alınır.
Döngü while
süresiz olarak çalışır. Her yineleme:
Konsolu temizler.
Güç modunu olarak Bmx280PowerMode.Forced
ayarlar. Bu, yongayı tek bir ölçüm gerçekleştirmeye, sonuçları depolamaya ve sonra uyumaya zorlar.
Sıcaklık, basınç, nem ve yükseklik değerlerini okur.
Not
Yükseklik, cihaz bağlaması tarafından hesaplanır. Bu aşırı yükleme TryReadAltitude
, tahmin oluşturmak için ortalama deniz seviyesi basıncını kullanır.
Geçerli ortam koşullarını konsola yazar.
1000 ms uyuyor.
Uygulamayı oluşturun. .NET CLI kullanıyorsanız komutunu çalıştırın dotnet build
. Visual Studio'da derlemek için Ctrl+ ShiftBtuşlarına+ basın.
Uygulamayı SBC'ye bağımsız bir uygulama olarak dağıtın. Yönergeler için bkz. Raspberry Pi'ye .NET uygulamaları dağıtma. kullanarak chmod +x
yürütülebilir yürütme izni verdiğinizden emin olun.
Raspberry Pi'de uygulamayı çalıştırmak için dağıtım dizinine geçin ve yürütülebilir dosyayı çalıştırın.
./SensorTutorial
Konsoldaki algılayıcı çıkışını gözlemleyin.
Ctrl+C tuşlarına basarak programı sonlandırın.
Tebrikler! Sıcaklık/nem/barometrik basınç sensöründeki değerleri okumak için I2C kullandınız!
Bu öğreticinin kaynağı GitHub'da kullanılabilir.
.NET geri bildirimi
.NET, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin:
Ekinlikler
17 Mar 21 - 21 Mar 10
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Hemen kaydolunBelgeler
LCD üzerinde metin görüntüleme - .NET
.NET IoT Kitaplıkları ile sıvı kristal ekranda karakterleri görüntülemeyi öğrenin.
Analogdan dijitale dönüştürücüdeki değerleri okuma - .NET
Analog-dijital dönüştürücü kullanarak değişken voltaj değerlerini okumayı öğrenin.
.NET IoT Kitaplıkları ile LED yanıp sönmeyi öğrenin.