Azure IoT ile beyin dağıtma Bonsai
- Toplam tamamlanma süresi: 40 dakika
- Azure hazırlık süresi: 30 dakika
- Etkin süre: 10 dakika
Azure IoT Central'ı kullanarak eğitilen Bonsai beyinleri bulut hizmeti modülleri olarak yayımlayın ve uç cihazlarda ve moby
altyapıyla iotedge
yapay zeka çalıştırın.
Not
Bonsai dışarı aktarma aşağıdaki işlemci mimarilerini destekler:
- x64: 64 bit veya 32 bit donanım üzerinde AMD ve Intel sistemleri (genel amaçlı Linux sistemleri)
- arm64 (v8): 64 bit RISC sistemleri (Raspberry Pi 3+, Linux, daha yeni endüstriyel sistemler)
- arm32 (v7): 32 bit RISC sistemleri (Raspberry Pi 1, Raspberry Pi 2, Linux, eski endüstriyel sistemler)
Başlamadan önce
- Tamamlanmış, tamamen eğitilmiş Bonsai bir beynin olmalı.
- Azure Container Registry Kimlik Bilgilerinizi bilmeniz gerekir. ACR kimlik bilgilerinizi bilmiyorsanız, bunları bulmak için Azure CLI kılavuzunu izleyin.
- Bir Azure IoT Central uygulamanız olmalıdır. IoT uygulamanızın URL'sini not edin. IoT uygulamanız yoksa IoT Central hızlı başlangıcını izleyerek "Özel uygulama" şablonunu kullanarak yeni bir dağıtım oluşturun.
- Azure Edge cihazınız için bir şablonunuzun olması gerekir. Azure IoT Central ile kapsayıcıları dağıtmak için, beyni dağıtacağınız Bonsai donanım için yapılandırılmış bir cihaz şablonunuz olmalıdır. Bir şablon yoksa yeni bir uç cihaz şablonu oluşturmak için IoT şablonu kurulum kılavuzunu izleyin.
- Cihazınızı IoT Central uygulamanıza eklemeniz gerekir.
- Azure IoT Central uygulamanızı ve Bonsai çalışma alanınızı bağlamanız gerekir. IoT Central uygulama URL'sinin Azure portal çalışma alanınızın Bonsai hizmet sayfasında düzgün ayarlandığını onaylayabilirsiniz.
Screenshot of the service page in the Azure portal for a Bonsai workspace. The "Azure IoT Central Application URL" setting is circled in blue to show where the IoT app URL is configured.
1. Adım: Beyni dışarı aktarma ve Azure IoT dağıtımı JSON'unu alma
Önemli
Raspberry Pi 3+ 64 bit donanım üzerinde çalışırken Azure IoT yalnızca Raspberry Pi OS Stretch kapsayıcı dağıtımı için arm32 (v7) sürümünü destekler. Ek ayrıntılar için bkz. Azure IoT Edge desteklenen sistemler.
- Kullanıcı arabirimindeBonsai oturum açın.
- Çalışmak istediğiniz beyni ve sürümü seçin.
- Eğitma paneline gidin.
- Beyni dışarı aktar düğmesine tıklayın.
- Açılan iletişim kutusunda:
- Dışarı aktarılan beyin için bir ad verin.
- Beynin üzerinde çalıştıracağı işlemci mimarisini seçin.
- Export (Dışarı aktar) öğesini seçin.
Dışarı aktarma açılır penceresinde Azure IoT Dağıtımı sekmesini seçin ve sağlanan JSON bloğunu kopyalayın.
Bonsai"Azure IoT Dağıtımı" sekmesinin seçili olduğu beyin başarısını dışarı aktarma panelinin ekran görüntüsü.
İpucu
Dışarı aktarılan beyin için bağlam menüsünü (üç nokta) ve "Dağıtım yönergelerini görüntüle" seçeneğini belirleyerek kullanıcı arabiriminde IoT JSON'a Bonsai yeniden erişebilirsiniz.
2. Adım: IoT dağıtım bildiriminizi güncelleştirme
İpucu
Azure IoT Central portalını doğrudan kullanıcı arabirimindeki Bonsai dağıtım yönergeleri açılan penceresinden "Azure IoT Portalı" bağlantısına tıklayarak açabilirsiniz. VS Code yüklediyseniz doğrudan Azure portal çalışmak yerine IoT projenizi oluşturmak için VS Code kullanabilirsiniz.
- Yeni bir IoT Edge dağıtım bildirimi oluşturun veya beyinlerle Bonsai kullanmak istediğiniz mevcut bir bildirimi açın. NOT: Bir dağıtım için Bonsai bildiriminizde yol oluşturma veya yapılandırma konusunda endişelenmeniz gerekmez.
modules
Cihaz şablonundaki bloğunu sağlanan JSON bloğuyla Bonsaideğiştirin. Örnek:"modules": { "Bonsai": { "version": "1.0", "type": "docker", "status": "running", "restartPolicy": "always", "settings": { "image":"bonsaidocs.azurecr.io/7a4e3c73-0eaf-47e6-9ad1-ffa98d492a4f/balancer:1-linux-amd64", "createOptions": "{\"HostConfig\":{\"PortBindings\":{\"5000/tcp\":[{\"HostPort\":\"5005\"}]}},\"ExposedPorts\":{\"5000/tcp\":{}}}" } } }
- Varsayılan
HostPort
() veyaPortBindings
()5005
5000
dışında bir şey kullanmak istiyorsanız, girdiyicreateOptions
tercih ettiğiniz bağlantı noktalarını kullanacak şekilde güncelleştirin. - ACR kayıt defteri kimlik bilgilerinizi şablonun
registryCredentials
bölümüne ekleyin. Örnek:"registryCredentials": { "bonsaidocs": { "username": "ACR_USERNAME", "password": "ACR_PASSWORD", "address": "bonsaidocs.azurecr.io" } }
- Yeni bildirim bilgilerini kaydedin.
3. Adım: IoT telemetrisini etkinleştirme
- Dağıtım bildiriminizdeki modüle
Bonsai
adlıBONSAI\_TELEMETRY
bir ortam değişkeni ekleyin ve değerini olarakIOT
ayarlayın:"modules": { "Bonsai": { "version": "1.0", "type": "docker", "status": "running", "restartPolicy": "always", "settings": { "image":"bonsaidocs.azurecr.io/7a4e3c73-0eaf-47e6-9ad1-ffa98d492a4f/balancer:1-linux-amd64", "createOptions": "{\"HostConfig\":{\"PortBindings\":{\"5000/tcp\":[{\"HostPort\":\"5005\"}]}},\"ExposedPorts\":{\"5000/tcp\":{}}}" }, "env": { "BONSAI_TELEMETRY": { "value": "IOT" } } } }
- Cihazınızı IoT Central uygulamanıza günlük verileri gönderecek şekilde yapılandırmak için edgeHub modülüne bir telemetri yolu
properties.desired
ekleyin:"$edgeHub": { "properties.desired": { "schemaVersion": "1.1", "routes": { "telemetry": "FROM /messages/modules/Bonsai/outputs/* INTO $upstream" } "storeAndForwardConfiguration": { "timeToLiveSecs": 7200 } } }
- Yeni bildirim bilgilerini kaydedin.
Önemli
Bonsai varsayılan olarak dışarı aktarılan beyinler için telemetriyi etkinleştirir. IoT cihazınız için telemetriyi devre dışı bırakmak istiyorsanız cihaz bildiriminizde olarak ayarlamanız ENABLE\_TELEMETRY
FALSE
gerekir.
4. Adım: Dışarı aktarılan beyni dağıtma
Dışarı aktarılan beyni dağıtmak için cihaz şablonunuzu yayımlamanız gerekir. Cihaz şablonu, telemetri desteği de dahil olmak üzere Azure IoT Central uygulamanıza bağlı uç cihazların özelliklerini ve davranışlarını tanımlar.
- Dağıtım bildiriminden yeni bir cihaz şablonu oluşturun.
- Yeni cihaz şablonunu uç donanımınıza göndermek için yeni şablonu yayımlayın.
- Yeni bildirimi cihaza uygulayın.
5. Adım: IoT uygulamanızın telemetri verileri toplayabileceğini doğrulayın
- IoT Central uygulamanızda cihaz panosunu açın. Çoğu IoT Central uygulamasında IoT Central uygulamanızın adı gibi
APP_NAME
URL'lerhttps://APP_NAME.azureiotcentral.com
bulunur. - IoT cihazınızın ayrıntılar sayfasına gidin.
- IoT cihazını kullanarak beyne bir tahmin isteği gönderin.
- Ham veriler sekmesinde telemetri verilerini görmeniz gerekir.Moab örneğini ioT cihazına dağıtmak için kullanılan ve "Ham veriler" sekmesinin vurgulandığı IoT Central uygulamasının ekran görüntüsü. Gelen telemetri verileri, seçilen sekmede JSON verileri olarak görünür.
İpucu
Telemetri verileri, yinelemenin başlamasından itibaren bir dakika içinde görünmelidir. Bazen kullanıcı arabiriminin yenilenmesi daha erken görünmesine neden olur.
İsteğE BAĞLI: Telemetriyi Azure Veri Gezgini kaydetme
Telemetri verilerinizi KQL ile sorgulamak istiyorsanız, verileri depolamak için bir Azure Veri Gezgini (ADX) kümeniz ve Telemetri verilerinizi IoT Central'dan Azure Veri Gezgini'e yöneltmek için bir Azure Olay Hub'ınız olmalıdır.
- Azure Portal gidin.
- BIR ADX kümesi sağlayın. Not: ADX kümesinin sağlanması 20 dakika kadar sürebilir.
- Azure Olay Hub'ı oluşturma.
- IoT cihazınızdan ADX kümenize telemetri verilerini çekmek için verileri IoT Hub Azure'a alma Veri Gezgini kılavuzunu izleyin.
Örnek dağıtım bildirimi
{
"modulesContent": {
"$edgeAgent": {
"properties.desired": {
"schemaVersion": "1.1",
"runtime": {
"type": "docker",
"settings": {
"minDockerVersion": "v1.25",
"loggingOptions": "",
"registryCredentials": {
"ACR_REGISTRY_NAME": {
"username": "ACR_USERNAME",
"password": "ACR_PASSWORD",
"address": "ACR_URL"
}
}
}
},
"systemModules": {
"edgeAgent": {
"type": "docker",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-agent:1.1",
"createOptions": "{}"
}
},
"edgeHub": {
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.1",
"createOptions": "{\"HostConfig\":{\"PortBindings\":{\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}],\"443/tcp\":[{\"HostPort\":\"443\"}]}}}"
}
}
},
"modules": {
"Bonsai": {
"version": "1.0",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "EXPORTED_BRAIN_ACR_URL",
"createOptions": "{\"HostConfig\":{\"PortBindings\":{\"5000/tcp\":[{\"HostPort\":\"5005\"}]}},\"ExposedPorts\":{\"5000/tcp\":{}}}"
},
"env": {
"ENABLE_TELEMETRY": {
"value": "TRUE"
}
}
}
}
}
},
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.1",
"routes": {
"telemetry": "FROM /messages/modules/Bonsai/outputs/* INTO $upstream"
},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
}
}
}