IoT central için cihaz uygulaması ve en iyi yöntemler
Bu makalede, IoT central uygulamanıza bağlanan cihazların nasıl uygulandığı hakkında bilgi sağlanır. Ayrıca bazı en iyi yöntemleri de içerir. Genel bağlantı işlemi hakkında daha fazla bilgi edinmek için bkz . Cihaz bağlama.
Örnek cihaz uygulama kodu için bkz . Öğretici: İstemci uygulaması oluşturma ve Azure IoT Central uygulamanıza bağlama.
Cihazı uygulama
IoT Central'a bağlanan cihazların IoT Tak Çalıştır kurallarına uyması gerekir. Bu kurallardan biri, bir cihazın bağlandığında uyguladığı cihaz modelinin model kimliğini göndermesi gerektiğidir. Model kimliği, IoT Central uygulamasının cihazı doğru cihaz şablonuna atamasını sağlar.
IoT Central cihaz şablonu, bu türdeki bir cihazın uygulaması gereken davranışları belirten bir model içerir. Davranışlar telemetriyi, özellikleri ve komutları içerir.
Her modelin gibi dtmi:com:example:Thermostat;1
benzersiz bir dijital ikiz modeli tanımlayıcısı (DTMI) vardır. Bir cihaz IoT Central'a bağlandığında, uyguladığı modelin DTMI'sini gönderir. IoT Central daha sonra cihaza doğru cihaz şablonunu atayabilir.
IoT Tak Çalıştır, bir cihazın Dijital İkiz Tanım Dili (DTDL) modeli uyguladığında izlemesi gereken bir dizi kural tanımlar.
Azure IoT cihaz SDK'ları IoT Tak Çalıştır kuralları için destek içerir.
Cihaz modeli
IoT Central için bir cihaz modeli, DTDL v2 modelleme dili kullanılarak tanımlanır. Bu dil şunları tanımlamanızı sağlar:
- Cihazın gönderdiği telemetri. Tanım, telemetrinin adını ve veri türünü içerir. Örneğin, bir cihaz sıcaklık telemetrisini çift olarak gönderir.
- Cihazın IoT Central'a rapor verdiği özellikler. Özellik tanımı adını ve veri türünü içerir. Örneğin, bir cihaz bir vananın durumunu Boole olarak bildirir.
- Cihazın IoT Central'dan alabileceği özellikler. İsteğe bağlı olarak, bir özelliği yazılabilir olarak işaretleyebilirsiniz. Örneğin IoT Central, hedef sıcaklığı bir cihaza çift olarak gönderir.
- Bir cihazın yanıt verdiği komutlar. Tanım, komutun adını ve herhangi bir parametrenin adlarını ve veri türlerini içerir. Örneğin, bir cihaz yeniden başlatmadan önce kaç saniye beklendiğini belirten bir yeniden başlatma komutuna yanıt verir.
Not
IoT Central, DTDL v2 dilinin bazı uzantılarını tanımlar. Daha fazla bilgi edinmek için bkz . IoT Central uzantısı.
DTDL modeli bileşensiz veya çok bileşenli bir model olabilir:
- Bileşensiz model: Basit bir model katıştırılmış veya basamaklı bileşenler kullanmaz. Tüm telemetri, özellikler ve komutlar tek bir kök bileşen olarak tanımlanır. Bir örnek için bkz . Thermostat modeli.
- Çok bileşenli model. İki veya daha fazla bileşen içeren daha karmaşık bir model. Bu bileşenler tek bir kök bileşeni ve bir veya daha fazla iç içe bileşen içerir. Bir örnek için bkz . Sıcaklık Denetleyicisi modeli.
İpucu
IoT Central cihaz şablonundaki tam bir cihaz modelini veya tek bir arabirimi DTDL v2 dosyası olarak içeri ve dışarı aktarabilirsiniz.
Cihaz modelleri hakkında daha fazla bilgi edinmek için IoT Tak Çalıştır modelleme kılavuzuna bakın
Kurallar
Bir cihaz, IoT Central ile veri alışverişi yaparken IoT Tak Çalıştır kurallarını izlemelidir. Kurallar şunlardır:
- IoT Central'a bağlandığında DTMI'yi gönderin.
- Doğru biçimlendirilmiş JSON yüklerini ve meta verilerini IoT Central'a gönderin.
- IoT Central'dan yazılabilir özelliklere ve komutlara doğru yanıt verin.
- Bileşen komutları için adlandırma kurallarını izleyin.
Not
IoT Central şu anda DTDL Dizisini ve Jeo-uzamsal veri türlerini tam olarak desteklememektedir.
IoT Tak Çalıştır kuralları hakkında daha fazla bilgi edinmek için bkz. IoT Tak Çalıştır kuralları.
Bir cihazın IoT Central ile yaptığı JSON iletilerinin biçimi hakkında daha fazla bilgi edinmek için bkz . Telemetri, özellik ve komut yükleri.
Cihaz SDK'ları
Cihazınızın davranışını uygulamak için Azure IoT cihaz SDK'larından birini kullanın. Kod şu şekilde olmalıdır:
- Cihazı DPS'ye kaydedin ve IoT Central uygulamanızdaki iç IoT hub'ına bağlanmak için DPS'deki bilgileri kullanın.
- Cihazın uyguladığı modelin DTMI'sini duyurun.
- Telemetri verilerini cihaz modelinin belirttiği biçimde gönderin. IoT Central, görselleştirmeler ve analiz için telemetrinin nasıl kullanılacağını belirlemek için cihaz şablonundaki modeli kullanır.
- Cihaz ile IoT Central arasında özellik değerlerini eşitleyin. Model, IoT Central'ın bilgileri görüntüleyebilmesi için özellik adlarını ve veri türlerini belirtir.
- Modelde belirtilen komutlar için komut işleyicileri uygulayın. Model, cihazın kullanması gereken komut adlarını ve parametreleri belirtir.
Cihaz şablonlarının rolü hakkında daha fazla bilgi için bkz . Cihaz şablonları nedir?.
Aşağıdaki tabloda Azure IoT Central cihaz özelliklerinin IoT Hub özelliklerine nasıl eş olduğu özetlenmiştir:
Azure IoT Central | Azure IoT Hub |
---|---|
Telemetri | Cihazdan buluta mesajlaşma |
Çevrimdışı komutlar | Buluttan cihaza mesajlaşma |
Özellik | Cihaz ikizi bildirilen özellikleri |
Özellik (yazılabilir) | cihaz ikizi istenen ve bildirilen özellikler |
Command | Doğrudan yöntemler |
İletişim protokolleri
Bir cihazın IoT Central'a bağlanmak için kullanabileceği iletişim protokolleri MQTT, AMQP ve HTTPS'yi içerir. IoT Central, cihaz bağlantısını etkinleştirmek için dahili olarak bir IoT hub'ı kullanır. IoT Hub'ın cihaz bağlantısı için desteklediği iletişim protokolleri hakkında daha fazla bilgi için bkz . İletişim protokolü seçme.
Cihazınız desteklenen protokollerden hiçbirini kullanamıyorsa protokol dönüştürme işlemi yapmak için Azure IoT Edge'i kullanın. IoT Edge, Azure IoT Central uygulamasından işlemeyi boşaltmak için diğer uç zeka senaryolarını destekler.
Telemetri zaman damgaları
Varsayılan olarak, IoT Central panolarda ve grafiklerde telemetri görüntülerken iletinin sıralandığı zamanı kullanır. IoT Central iletiyi cihazdan aldığında iletinin sıralandığı süre dahili olarak ayarlanır.
Cihaz, IoT Central'a iothub-creation-time-utc
gönderilecek bir ileti oluşturduğunda özelliğini ayarlayabilir. Bu özellik varsa, IoT Central panolarda ve grafiklerde telemetri görüntülerken bunu kullanır.
IoT Central uygulamanızdan telemetriyi iothub-creation-time-utc
dışarı aktarırken hem sıralanan zamanı hem de özelliği dışarı aktarabilirsiniz.
İleti özellikleri hakkında daha fazla bilgi edinmek için bkz . Cihazdan buluta IoT Hub iletilerinin Sistem Özellikleri.
En iyi yöntemler
Bu öneriler, IoT Central'da yerleşik yüksek kullanılabilirlik, olağanüstü durum kurtarma ve otomatik ölçeklendirmeden yararlanmak için cihazların nasıl uygulaneceğini gösterir.
Cihaz sağlama
Uygulamanızdaki IoT hub'larının sayısı değiştikçe, bir cihazın farklı bir hub'a bağlanması gerekebilir.
Bir cihaz IoT Central'a bağlanmadan önce, cihazın temel alınan hizmetlere kaydedilmesi ve sağlanması gerekir. IoT Central uygulamasına cihaz eklediğinizde, IoT Central bir DPS kayıt grubuna bir girdi ekler. Kayıt grubundaki kimlik kapsamı, cihaz kimliği ve anahtarlar gibi bilgiler IoT Central kullanıcı arabiriminde gösterilir.
Bir cihaz IoT Central uygulamanıza ilk kez bağlandığında DPS, cihazı kayıt grubunun bağlı IoT hub'larından birinde sağlar. Cihaz daha sonra bu IoT hub'ı ile ilişkilendirilir. DPS, uygulamadaki IoT hub'larında sağlamayı yük dengelemek için bir ayırma ilkesi kullanır. Bu işlem, her IoT hub'ının benzer sayıda sağlanan cihaza sahip olmasını sağlar.
IoT Central'da kayıt ve sağlama hakkında daha fazla bilgi edinmek için bkz . IoT Central cihaz bağlantı kılavuzu.
Bağlantı hatalarını işleme
Ölçeklendirme veya olağanüstü durum kurtarma amacıyla IoT Central, temel ioT hub'larını güncelleştirebilir. Bağlantının korunması için cihaz kodunuz yeni bir IoT Hub uç noktasına bağlantı kurarak belirli bağlantı hatalarını işlemelidir.
Cihaz bağlandığında aşağıdaki hatalardan herhangi birini alıyorsa, yeni bir bağlantı dizesi almak için cihazı DPS ile yeniden sağlamalıdır. Bu hatalar, bağlantı dizesi artık geçerli olmadığı anlamına gelir:
- Ulaşılamıyor IoT Hub uç noktası.
- Süresi dolmuş güvenlik belirteci.
- IoT Hub'da cihaz devre dışı bırakıldı.
Cihaz bağlandığında aşağıdaki hatalardan herhangi birini alıyorsa bağlantıyı yeniden denemek için bir geri alma stratejisi kullanmalıdır. Bu hatalar, bağlantı dizesi hala geçerli olduğu, ancak geçici koşulların cihazın bağlanmasını durdurduğu anlamına gelir:
- Operatör engellenen cihaz.
- Hizmetten 500 iç hatası.
Cihaz hata kodları hakkında daha fazla bilgi edinmek için bkz . Cihaz bağlantılarında sorun giderme.
Otomatik yeniden bağlantıları uygulama hakkında daha fazla bilgi edinmek için bkz . Dayanıklı uygulamalar oluşturmak için cihaz yeniden bağlantılarını yönetme.
Şu anda IoT Edge cihazları IoT hub'ları arasında geçiş yapamaz.
Yük devretme özelliklerini test edin
Azure CLI, cihaz kodunuzun yük devretme özelliklerini test etmenizi sağlar. CLI komutu, cihaz kaydını geçici olarak farklı bir iç IoT hub'ına geçirerek çalışır. Cihaz yük devretmesinin çalıştığını doğrulamak için cihazın telemetri göndermeye ve komutlara yanıt vermeye devam edip etmediğini denetleyin.
Cihazınız için yük devretme testini çalıştırmak için aşağıdaki komutu çalıştırın:
az iot central device manual-failover \
--app-id {Application ID of your IoT Central application} \
--device-id {Device ID of the device you're testing} \
--ttl-minutes {How to wait before moving the device back to it's original IoT hub}
İpucu
Uygulama Kimliğini bulmak için IoT Central uygulamanızda Uygulama > Yönetimi'ne gidin.
Komut başarılı olursa aşağıdaki örneğe benzer bir çıkış görürsünüz:
Command group 'iot central device' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
{
"hubIdentifier": "6bd4...bafa",
"message": "Success! This device is now being failed over. You can check your device'’'s status using 'iot central device registration-info' command. The device will revert to its original hub at Tue, 18 May 2021 11:03:45 GMT. You can choose to failback earlier using device-manual-failback command. Learn more: https://aka.ms/iotc-device-test"
}
CLI komutu hakkında daha fazla bilgi edinmek için bkz . az iot central device manual-failover.
Artık cihazdan telemetrinin IoT Central uygulamanıza erişmeye devam ettiğini de de kontrol edebilirsiniz.
İpucu
Çeşitli programlama dillerinde yük devretme işlemlerini işleyen örnek cihaz kodunu görmek için bkz . IoT Central yüksek kullanılabilirlik istemcileri.
Sonraki adımlar
Önerilen bazı sonraki adımlar şunlardır:
- İstemci uygulaması oluşturma ve Azure IoT Central uygulamanıza bağlama öğreticisini tamamlayın
- IoT Central'da Cihaz kimlik doğrulaması kavramlarını gözden geçirme
- Azure CLI kullanarak cihaz bağlantısını izleme hakkında bilgi edinin
- Azure IoT Edge cihazları ve Azure IoT Central hakkında bilgi edinin