IoT Central için verileri harici olarak dönüştürme

IoT cihazları verileri çeşitli biçimlerde gönderir. Cihaz verilerini IoT Central uygulamanızla kullanmak için aşağıdakiler için bir dönüştürme kullanmanız gerekebilir:

  • Verilerin biçimini IoT Central uygulamanızla uyumlu hale getirin.
  • Birimleri dönüştürün.
  • Yeni ölçümleri hesaplama.
  • Diğer kaynaklardan gelen verileri zenginleştirin.

Bu makalede, girişte veya çıkışta IoT Central dışında cihaz verilerinin nasıl dönüştürüldüğü gösterilir.

Not

IoT Central ayrıca verileri dahili olarak da dönüştürebilir. Daha fazla bilgi edinmek için bkz . IoT Central'a girişte telemetriyi eşleme ve Dışarı aktarma için IoT Central uygulamanızın içinde verileri dönüştürme.

Aşağıdaki diyagramda, dönüştürmeleri içeren veriler için üç yol gösterilmektedir:

Veri dönüştürme yollarının hem giriş hem de çıkış özeti

Aşağıdaki tabloda üç örnek dönüştürme türü gösterilmektedir:

Dönüşüm Açıklama Örnek Notlar
İleti Biçimi JSON iletilerine dönüştürme veya iletileri işleme. CSV'yi JSON'a Girişte. IoT Central yalnızca değer JSON iletilerini kabul eder. Daha fazla bilgi için bkz . Telemetri, özellik ve komut yükleri.
Hesaplama Azure İşlevleri yürütebilen matematik işlevleri. Fahrenheit'ten Santigrat'a birim dönüştürme. IoT Central'a doğrudan bağlantı yoluyla ölçeklenebilir cihaz girişlerinden yararlanmak için çıkış desenini kullanarak dönüştürün. Verileri dönüştürmek görselleştirmeler ve işler gibi IoT Central özelliklerini kullanmanıza olanak tanır.
İleti Zenginleştirme Cihaz özelliklerinde veya telemetride bulunmayan dış veri kaynaklarından zenginleştirmeler. İç zenginleştirmeler hakkında daha fazla bilgi edinmek için bkz. Blob Depolama kullanarak IoT verilerini bulut hedeflerine aktarma. Cihazlardan alınan konum verilerini kullanarak iletilere hava durumu bilgileri ekleyin. IoT Central'a doğrudan bağlantı yoluyla ölçeklenebilir cihaz girişlerinden yararlanmak için çıkış desenini kullanarak dönüştürün.

Önkoşullar

Bu nasıl yapılır kılavuzundaki adımları tamamlamak için şunları yapmanız gerekir:

Girişte veri dönüştürme

Girişte cihaz verilerini dönüştürmek için iki seçenek vardır:

  • IoT Edge: Verileri IoT Central uygulamanıza göndermeden önce aşağı akış cihazlarından verileri dönüştürmek için IoT Edge modülü kullanın.

  • IoT Central cihaz köprüsü: IoT Central cihaz köprüsü , Sigfox, Parçacık ve Nesnelerin Ağı gibi diğer IoT cihaz bulutlarını IoT Central'a bağlar. Cihaz köprüsü, verileri iletmek için bir Azure işlevi kullanır ve işlevi özelleştirerek cihaz verilerini dönüştürebilirsiniz.

Cihaz verilerini dönüştürmek için IoT Edge kullanma

IoT Edge kullanarak girişte veri dönüştürme

Bu senaryoda IoT Edge modülü, ioT Central uygulamanıza iletmeden önce aşağı akış cihazlarından verileri dönüştürür. Üst düzeyde, bu senaryoyu yapılandırma adımları şunlardır:

  1. IoT Edge cihazı ayarlama: IoT Edge cihazını ağ geçidi olarak yükleyip sağlayın ve ağ geçidini IoT Central uygulamanıza bağlayın.

  2. Aşağı akış cihazını IoT Edge cihazına Bağlan: Aşağı akış cihazlarını IoT Edge cihazına Bağlan ve IoT Central uygulamanıza sağlayın.

  3. IoT Edge'de cihaz verilerini dönüştürme: Verileri dönüştürmek için bir IoT Edge modülü oluşturun. Modülü, dönüştürülen cihaz verilerini IoT Central uygulamanıza ileden IoT Edge ağ geçidi cihazına dağıtın.

  4. Doğrulama: Aşağı akış cihazından ağ geçidine veri gönderin ve dönüştürülen cihaz verilerinin IoT Central uygulamanıza ulaştığını doğrulayın.

Aşağıdaki bölümlerde açıklanan örnekte aşağı akış cihazı JSON verilerini IoT Edge ağ geçidi cihazına aşağıdaki biçimde gönderir:

{
  "device": {
      "deviceId": "<downstream-deviceid>"
  },
  "measurements": {
    "temp": <temperature>,
    "pressure": <pressure>,
    "humidity": <humidity>,
    "scale": "celsius",
  }
}

Verileri dönüştürmek ve sıcaklık değerini Celsius IoT Central'a göndermeden önce değerine dönüştürmek için Fahrenheit bir IoT Edge modülü kullanırsınız:

{
  "device": {
      "deviceId": "<downstream-deviceid>"
  },
  "measurements": {
    "temp": <temperature>,
    "pressure": <pressure>,
    "humidity": <humidity>,
    "scale": "fahrenheit"
  }
}

Koda göz atın

Aşağıdaki adımlar, bu senaryoyu nasıl ayarlayıp yapılandırabileceğinizi gösterir:

Özel modülü oluşturma

Bu senaryoda IoT Edge cihazı, verileri aşağı akış cihazından dönüştüren özel bir modül çalıştırır. IoT Edge cihazını dağıtmadan ve yapılandırmadan önce şunları yapmanız gerekir:

  • Özel modülü oluşturun.
  • Özel modülü kapsayıcı kayıt defterine ekleyin.

IoT Edge çalışma zamanı, Azure kapsayıcı kayıt defteri veya Docker Hub gibi bir kapsayıcı kayıt defterinden özel modüller indirir. Azure Cloud Shell kapsayıcı kayıt defteri oluşturmak, modülü derlemek ve modülü kayıt defterine yüklemek için ihtiyacınız olan tüm araçlara sahiptir:

Kapsayıcı kayıt defteri oluşturmak için:

  1. Azure Cloud Shell'i açın ve Azure aboneliğinizde oturum açın.

  2. Bash kabuğunu seçin.

  3. Azure kapsayıcı kayıt defteri oluşturmak için aşağıdaki komutları çalıştırın:

    REGISTRY_NAME="{your unique container registry name}"
    az group create --name ingress-scenario --location eastus
    az acr create -n $REGISTRY_NAME -g ingress-scenario --sku Standard --admin-enabled true
    az acr credential show -n $REGISTRY_NAME
    

    ve password değerlerini not username edin, bunları daha sonra kullanırsınız. Komut çıkışında gösterilen parolalardan yalnızca birine ihtiyacınız vardır.

Azure Cloud Shell'de özel modülü oluşturmak için:

  1. Azure Cloud Shell'de modül kaynak kodunu içeren GitHub deposunu kopyalayın:

    git clone https://github.com/iot-for-all/iot-central-transform-with-iot-edge
    
  2. Özel modülü oluşturmak için Azure Cloud Shell'de aşağıdaki komutları çalıştırın:

    cd iot-central-transform-with-iot-edge/custommodule/transformmodule
    az acr build --registry $REGISTRY_NAME --image transformmodule:0.0.1-amd64 -f Dockerfile.amd64 .
    

    Önceki komutların çalıştırılması birkaç dakika sürebilir.

IoT Edge cihazı ayarlama

Bu senaryoda, herhangi bir aşağı akış cihazından verileri dönüştürmek için bir IoT Edge ağ geçidi cihazı kullanılır. Bu bölümde, IoT Central uygulamanızda ağ geçidi cihazı için IoT Central cihaz şablonunun nasıl oluşturulacağı açıklanmaktadır. IoT Edge cihazları modüllerini yapılandırmak için bir dağıtım bildirimi kullanır.

Bu örnekte aşağı akış cihazının bir cihaz şablonuna ihtiyacı yoktur. Aşağı akış cihazı IoT Central'a kaydedilir, böylece IoT Edge cihazına bağlanmak için gereken kimlik bilgilerini oluşturabilirsiniz. IoT Edge modülü verileri dönüştürdüğünden, tüm aşağı akış cihaz telemetrisi IoT Edge cihazı göndermiş gibi IoT Central'a ulaşır.

IoT Edge ağ geçidi cihazı için bir cihaz şablonu oluşturmak için:

  1. Dağıtım bildiriminin bir kopyasını yerel geliştirme makinenize kaydedin: moduledeployment.json.

  2. moduledeployment.json bildirim dosyasının yerel kopyasını bir metin düzenleyicisinde açın.

  3. registryCredentials bölümünü bulun ve yer tutucuları, Azure kapsayıcı kayıt defterini oluştururken not ettiğiniz değerlerle değiştirin. address değeri gibi {your username}.azurecr.iogörünür.

  4. settings için transformmodulebölümünü bulun. değerini önceki adımda kullandığınız değerle değiştirin {your username} . Değişiklikleri kaydedin.

  5. IoT Central uygulamanızda Edge bildirimleri sayfasına gidin.

  6. + Yeni'yi seçin. Dağıtım bildiriminiz için Transformer gibi bir ad girin ve daha önce indirdiğiniz moduledeployment.json dosyasını karşıya yükleyin. Dağıtım bildirimi transformmodule adlı özel bir modül içerir.

  7. İleri'yi ve ardından Oluştur'u seçin.

  8. IoT Central uygulamanızda Cihaz şablonları sayfasına gidin.

  9. + Yeni'yi, Azure IoT Edge'i ve ardından İleri: Özelleştir'i seçin.

  10. Cihaz şablonu adı olarak IoT Edge ağ geçidi cihazını girin. Bu bir ağ geçidi cihazıdır'ı seçin.

  11. İleri: Gözden Geçir'i ve ardından Oluştur'u seçin.

  12. Model oluştur sayfasında Özel model'i seçin.

  13. Modelde Modüller'i ve ardından Bildirimden modülleri içeri aktar'ı seçin. Transformer dağıtım bildirimini ve ardından İçeri Aktar'ı seçin.

Dağıtım bildirimi modülün gönderdiği telemetriyi belirtmez. Telemetri tanımlarını cihaz şablonuna eklemek için:

  1. IoT Edge ağ geçidi cihaz şablonunun Modüller bölümünde Modül dönüştürme modülünü seçin.

  2. Yetenek ekle'yi seçin ve yeni bir telemetri türü eklemek için aşağıdaki tablolardaki bilgileri kullanın:

    Ayar Value
    Görünen ad Cihaz
    Veri Akışı Adı device
    Yetenek türü Telemetri
    Anlam türü Hiçbiri
    Şema Object

    Nesne tanımı:

    Görünen ad Veri Akışı Adı Şema
    Cihaz Kimliği deviceId String

    Değişikliklerinizi kaydedin.

  3. Yetenek ekle'yi seçin ve yeni bir telemetri türü eklemek için aşağıdaki tablolardaki bilgileri kullanın:

    Ayar Value
    Görünen ad Ölçümler
    Veri Akışı Adı Ölçüm
    Yetenek türü Telemetri
    Anlam türü Hiçbiri
    Şema Object

    Nesne tanımı:

    Görünen ad Veri Akışı Adı Şema
    Sıcaklık sıcaklık Çift
    Basınç basınç Çift
    Nem Nem oranı Çift
    Ölçek scale String

    Değişikliklerinizi kaydedin.

  4. Modelde İlişkiler'i seçin. transformmodule modülünde İlişkiler'i seçmeyin.

  5. İlişki ekle'yi seçin.

  6. Görünen ad olarak Aşağı Akış Algılayıcısı, ad olarak algılayıcı girin ve hedef olarak Herhangi biri'ni seçin. Kaydet'i seçin.

  7. Cihaz şablonunu yayımlamak için Yayımla'yı seçin.

IoT Central'a bir ağ geçidi cihazı kaydetmek için:

  1. IoT Central uygulamanızda Cihazlar sayfasına gidin.

  2. IoT Edge ağ geçidi cihazı'nın ardından + Yeni'yi seçin. Cihaz adı olarak IoT Edge ağ geçidi cihazını girin, cihaz kimliği olarak gateway-01 girin, cihaz şablonu olarak IoT Edge ağ geçidi cihazının seçildiğinden ve Bu cihazın simülasyonu yap olarak Hayır'ın seçildiğinden emin olun. Kenar bildirimi olarak Transformer'ı seçin. Oluştur'u belirleyin.

  3. Cihaz listesinde IoT Edge ağ geçidi cihazına tıklayın ve ardından Bağlan'ı seçin.

  4. IoT Edge ağ geçidi cihazının Kimlik kapsamı, Cihaz Kimliği ve Birincil anahtar değerlerini not edin. Bunları daha sonra kullanacaksınız.

IoT Central'a aşağı akış cihazı kaydetmek için:

  1. IoT Central uygulamanızda Cihazlar sayfasına gidin.

  2. Cihaz şablonu seçmeyin. + Yeni'yi seçin. Cihaz adı olarak Aşağı Akış 01 yazın, cihaz kimliği olarak aşağı akış-01 girin, cihaz şablonunun Atanmamış olduğundan ve Bu cihazın benzetimi yapılsın mı? olarak Hayır'ın seçildiğinden emin olun. Oluştur'u belirleyin.

  3. Cihaz listesinde Aşağı akış 01 cihazına tıklayın ve ardından Cihazı > ağ geçidine ekle'yi seçin.

  4. Ağ geçidine ekle iletişim kutusunda IoT Edge ağ geçidi cihaz şablonunu ve IoT Edge ağ geçidi cihaz örneği'ni seçin. İliştir'i seçin.

  5. Aşağı akış 01 cihazında Bağlan'ı seçin.

  6. Aşağı Akış 01 cihazının Kimlik kapsamı, Cihaz Kimliği ve Birincil anahtar değerlerini not edin. Bunları daha sonra kullanacaksınız.

Ağ geçidi ve aşağı akış cihazlarını dağıtma

Kolaylık olması için bu makalede ağ geçidi ve aşağı akış cihazlarını çalıştırmak için Azure sanal makineleri kullanılmaktadır. İki Azure sanal makinesini oluşturmak için aşağıdaki tablodan sonra gösterilen Azure'a Dağıt düğmesini seçin. Özel dağıtım formunu tamamlamak için tablodaki bilgileri kullanın:

Alan Değer
Kaynak grubu ingress-scenario
DNS Etiketi Ön Ek Ağ Geçidi Bu makine için benzersiz bir DNS adı, örneğin <your name>edgegateway
DNS Etiket Ön Eki Aşağı Akışı Bu makine için benzersiz bir DNS adı, örneğin <your name>downstream
Kapsam Kimliği Daha önce not aldığınız kimlik kapsamı
Cihaz Kimliği IoT Edge Ağ Geçidi gateway-01
Cihaz Anahtarı IoT Edge Ağ Geçidi Daha önce not aldığınız birincil anahtar değeri
Kimlik Doğrulaması Türü Parola
Yönetici Parolası Veya Anahtarı Her iki sanal makinede de AzureUser hesabı için seçtiğiniz parola.

Azure'a Dağıtma Düğmesi

Gözden Geçir + Oluştur'u ve ardından Oluştur'u seçin. Giriş senaryosu kaynak grubunda sanal makinelerin oluşturulması birkaç dakika sürer.

IoT Edge ağ geçidi cihazının doğru çalışıp çalışmadığını denetlemek için:

  1. IoT Central uygulamanızı açın. Ardından Cihazlar sayfasındaki cihaz listesinde IoT Edge Ağ Geçidi cihazına gidin.

  2. Modüller sekmesini seçin ve üç modülün durumunu denetleyin. IoT Edge çalışma zamanının sanal makinede başlatılması birkaç dakika sürer. Sanal makine çalışırken, üç modülün durumu Çalışıyor şeklindedir. IoT Edge çalışma zamanı başlatılmazsa bkz . IoT Edge cihazınızda sorun giderme.

IoT Edge cihazınızın ağ geçidi işlevi görmesi için, aşağı akış cihazlarına kimliğini kanıtlamak için bazı sertifikalara ihtiyacı vardır. Bu makalede tanıtım sertifikaları kullanılır. Üretim ortamında, sertifika yetkilinizin sertifikalarını kullanın.

Tanıtım sertifikalarını oluşturmak ve ağ geçidi cihazınıza yüklemek için:

  1. Ağ geçidi cihazı sanal makinenize bağlanmak ve bu makinede oturum açmak için SSH kullanın. Bu sanal makinenin DNS adını Azure portalında bulabilirsiniz. Giriş senaryosu kaynak grubunda edgegateway sanal makinesine gidin.

    İpucu

    Yerel makinenizden veya Azure Cloud Shell'den bağlanmak üzere SSH kullanabilmeniz için önce her iki sanal makinenizde de SSH erişimi için 22 numaralı bağlantı noktasını açmanız gerekebilir.

  2. IoT Edge deposunu kopyalamak ve tanıtım sertifikalarınızı oluşturmak için aşağıdaki komutları çalıştırın:

    # Clone the repo
    cd ~
    git clone https://github.com/Azure/iotedge.git
    
    # Generate the demo certificates
    mkdir certs
    cd certs
    cp ~/iotedge/tools/CACertificates/*.cnf .
    cp ~/iotedge/tools/CACertificates/certGen.sh .
    ./certGen.sh create_root_and_intermediate
    ./certGen.sh create_edge_device_ca_certificate "mycacert"
    

    Önceki komutları çalıştırdıktan sonra, aşağıdaki dosyalar sonraki adımlarda kullanılmaya hazırdır:

    • ~/certs/certs/azure-iot-test-only.root.ca.cert.pem - IoT Edge senaryolarını test etmek için diğer tüm tanıtım sertifikalarını yapmak için kullanılan kök CA sertifikası.
    • ~/certs/certs/iot-edge-device-mycacert-full-chain.cert.pem - config.yaml dosyasından başvuruda bulunan bir cihaz CA sertifikası. Bir ağ geçidi senaryosunda bu CA sertifikası, IoT Edge cihazının aşağı akış cihazlarına kimliğini nasıl doğrular?
    • ~/certs/private/iot-edge-device-mycacert.key.pem - Cihaz CA sertifikasıyla ilişkili özel anahtar.

    Bu tanıtım sertifikaları hakkında daha fazla bilgi edinmek için bkz . IoT Edge cihaz özelliklerini test etmek için tanıtım sertifikaları oluşturma.

  3. config.toml dosyasını bir metin düzenleyicisinde açın. Örneğin:

    sudo nano /etc/aziot/config.toml
    
  4. Sertifika ayarlarını şu şekilde açıklamayı kaldırın ve değiştirin:

    trust_bundle_cert = "file:///home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem"
    
    ...
    
    [edge_ca]
    cert = "file:///home/AzureUser/certs/certs/iot-edge-device-ca-mycacert-full-chain.cert.pem"
    pk = "file:///home/AzureUser/certs/private/iot-edge-device-ca-mycacert.key.pem"
    

    Önceki örnekte AzureUser olarak oturum açtığınız ve "mycacert" adlı sertifikalı bir cihaz CA'sı oluşturduğunuz varsayılır.

  5. Değişiklikleri kaydedin ve config.toml dosyasının doğru olduğunu doğrulamak için aşağıdaki komutu çalıştırın:

    sudo iotedge check
    
  6. IoT Edge çalışma zamanını yeniden başlatın:

    sudo iotedge config apply
    

Değişikliklerinizden sonra IoT Edge çalışma zamanı başarıyla başlatılırsa, $edgeAgent ve $edgeHub modüllerinin durumu Çalışıyor olarak değişir. Bu durum değerlerini IoT Central'daki ağ geçidi cihazınızın Modüller sayfasında görebilirsiniz.

Çalışma zamanı başlatılmazsa config.toml dosyasında yaptığınız değişiklikleri denetleyin ve bkz. IoT Edge cihazınızda sorun giderme.

Aşağı akış cihazını IoT Edge cihazına Bağlan

Aşağı akış cihazını IoT Edge ağ geçidi cihazına bağlamak için:

  1. Aşağı akış cihazı sanal makinenize bağlanmak ve bu makinede oturum açmak için SSH kullanın. Bu sanal makinenin DNS adını Azure portalında bulabilirsiniz. Giriş senaryosu kaynak grubunda leafdevice sanal makinesine gidin.

    İpucu

    Yerel makinenizden veya Azure Cloud Shell'den bağlanmak üzere SSH kullanabilmeniz için önce her iki sanal makinenizde de SSH erişimi için 22 numaralı bağlantı noktasını açmanız gerekebilir.

  2. GitHub deposunu örnek aşağı akış cihazının kaynak koduyla kopyalamak için aşağıdaki komutu çalıştırın:

    cd ~
    git clone https://github.com/iot-for-all/iot-central-transform-with-iot-edge
    
  3. Gerekli sertifikayı ağ geçidi cihazından kopyalamak için aşağıdaki scp komutları çalıştırın. Bu scp komut, ağ geçidi sanal makinesini tanımlamak için konak adını edgegateway kullanır. Parolanız istenir:

    cd ~/iot-central-transform-with-iot-edge
    scp AzureUser@edgegateway:/home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem leafdevice/certs
    
  4. leafdevice klasörüne gidin ve gerekli paketleri yükleyin. Ardından cihazı sağlamak ve ağ geçidine bağlamak için ve start betiklerini çalıştırınbuild:

    cd ~/iot-central-transform-with-iot-edge/leafdevice
    sudo apt update
    curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
    sudo apt-get install nodejs
    npm install
    npm run-script build
    npm run-script start
    

    Komutlar sırasında sudo apt-get install nodejs yüklemelere izin vermeniz istenebilir: istenirse basın Y .

  5. Daha önce oluşturduğunuz aşağı akış cihazının cihaz kimliğini, kapsam kimliğini ve SAS anahtarını girin. Konak adı olarak girin edgegateway. Komutun çıkışı şöyle görünür:

    Registering device downstream-01 with scope 0ne00284FD9
    Registered device downstream-01.
    Connecting device downstream-01
    Connected device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    Sent telemetry for device downstream-01
    

Kolaylık olması için aşağı akış cihazının kodu cihazı IoT Central'da sağlar. Aşağı akış cihazları genellikle İnternet'e bağlanamadığından ve Cihaz Sağlama Hizmeti uç noktasına bağlanamadığından ağ geçidi üzerinden bağlanır. Daha fazla bilgi edinmek için bkz . IoT Edge saydam ağ geçidi aracılığıyla cihazları bağlama.

Doğrulama

Senaryonun çalıştığını doğrulamak için IoT Central'da IoT Edge ağ geçidi cihazınıza gidin:

Cihazlar sayfasındaki dönüştürülmüş verileri gösteren ekran görüntüsü.

  • Modüller'i seçin. $edgeHub ve transformmodule $edgeAgent üç IoT Edge modülünün çalıştığını doğrulayın.

  • Ham veriler'i seçin. Cihaz sütunundaki telemetri verileri şöyle görünür:

    {"deviceId":"downstream-01"}
    

    Ölçümler sütunundaki telemetri verileri şöyle görünür:

    {"temperature":85.21208,"pressure":59.97321,"humidity":77.718124,"scale":"farenheit"}
    

Sıcaklık Fahrenheit cinsinden gönderilir. IoT Edge cihazı aşağı akış cihazından verileri dönüştürdüğünden, telemetri IoT Central'daki ağ geçidi cihazıyla ilişkilendirilir. Dönüştürülmüş telemetriyi görselleştirmek için IoT Edge ağ geçidi cihaz şablonunda bir görünüm oluşturun ve yeniden yayımlayın.

Çıkışta veri dönüştürme

Cihazlarınızı IoT Central'a bağlayabilir, cihaz verilerini dönüştürmek üzere bir işlem altyapısına aktarabilir ve ardından dönüştürülen verileri cihaz yönetimi ve analizi için IoT Central'a geri gönderebilirsiniz. Örneğin:

  • Cihazlarınız konum verilerini IoT Central'a gönderir.
  • IoT Central, verileri konum verilerini hava durumu bilgileriyle geliştiren bir işlem altyapısına aktarır.
  • İşlem altyapısı, gelişmiş verileri IoT Central'a geri gönderir.

IoT Central'dan dışarı aktarılan verileri dönüştürmek için işlem altyapısı olarak IoT Central cihaz köprüsünü kullanabilirsiniz.

Çıkışta verileri dönüştürmenin bir avantajı, cihazlarınızın doğrudan IoT Central'a bağlanmasıdır ve bu da cihazlara komut göndermeyi veya cihaz özelliklerini güncelleştirmeyi kolaylaştırır. Ancak bu yöntemle aylık servis biriminizden daha fazla ileti kullanabilir ve Azure IoT Central'ı kullanma maliyetini artırabilirsiniz.

Cihaz verilerini dönüştürmek için IoT Central cihaz köprüsünü kullanma

IoT Edge kullanarak çıkışta veri dönüştürme

Bu senaryoda işlem altyapısı IoT Central'dan dışarı aktarılan cihaz verilerini IoT Central uygulamanıza geri göndermeden önce dönüştürür. Üst düzeyde, bu senaryoyu yapılandırma adımları şunlardır:

  1. İşlem altyapısını ayarlama: Veri dönüştürme için işlem altyapısı görevi görmesi için bir IoT Central cihaz köprüsü oluşturun.

  2. Cihaz köprüsündeki cihaz verilerini dönüştürme: Veri dönüştürme kullanım örneğinin cihaz köprüsü işlev kodunu değiştirerek cihaz köprüsündeki verileri dönüştürün.

  3. IoT Central'dan cihaz köprüsüne veri akışını etkinleştirme: Verileri dönüştürme için IoT Central'dan cihaz köprüsüne aktarın. Ardından, dönüştürülen verileri IoT Central'a geri iletin. Veri dışarı aktarmayı oluşturduğunuzda ileti özelliği filtrelerini kullanarak yalnızca aktarılmamış verileri dışarı aktarın.

  4. Doğrulama: Cihazınızı IoT Central uygulamasına Bağlan ve IoT Central'da hem ham cihaz verilerini hem de dönüştürülmüş verileri denetleyin.

Aşağıdaki bölümlerde açıklanan örnekte, cihaz AŞAĞıDAKI biçimdeki CSV verilerini IoT Edge ağ geçidi cihazına gönderir:

"<temperature in degrees C>, <humidity>, <latitude>, <longitude>"

Cihaz verilerini şu şekilde dönüştürmek için cihaz köprüsünü kullanırsınız:

  • Sıcaklık birimini centigrad'dan fahrenheit'e değiştirme.
  • Enlem ve boylam değerleri için Açık Hava Durumu hizmetinden alınan hava durumu verileriyle cihaz verilerini zenginleştirme.

Ardından cihaz köprüsü, dönüştürülen verileri aşağıdaki biçimde IoT Central'a gönderir:

{
  "temp": <temperature in degrees F>,
  "humidity": <humidity>,
  "lat": <latitude>,
  "lon": <logitude>,
  "weather": {
    "weather_temp": <temperature at lat/lon>,
    "weather_humidity": <humidity at lat/lon>,
    "weather_pressure": <pressure at lat/lon>,
    "weather_windspeed": <wind speed at lat/lon>,
    "weather_clouds": <cloud cover at lat/lon>,
    "weather_uvi": <UVI at lat/lon>
  }
}

Aşağıdaki adımlar, bu senaryoyu nasıl ayarlayıp yapılandırabileceğinizi gösterir:

IoT Central bağlantı ayarlarınızı alma

Bu senaryosunu ayarlamadan önce IoT Central uygulamanızdan bazı bağlantı ayarları almanız gerekir:

  1. IoT Central uygulamanızda oturum açın.

  2. İzinler > Cihaz bağlantı grupları'na gidin.

  3. Kimlik kapsamını not edin. Bu değeri daha sonra kullanacaksınız.

  4. SaS-IoT-Devices kayıt grubunu seçin. Paylaşılan erişim imzası birincil anahtarını not edin. Bu değeri daha sonra kullanacaksınız.

İşlem altyapısı ayarlama

Bu senaryoda IoT Central cihaz köprüsüyle aynı Azure İşlevleri dağıtımı kullanılır. Cihaz köprüsünü dağıtmak için aşağıdaki tablodan sonra gösterilen Azure'a Dağıt düğmesini seçin. Özel dağıtım formunu tamamlamak için tablodaki bilgileri kullanın:

Alan Değer
Kaynak grubu adlı yeni bir kaynak grubu oluşturma egress-scenario
Bölge Size en yakın bölgeyi seçin.
Kapsam Kimliği Daha önce not aldığınız kimlik kapsamını kullanın.
IoT Central SAS Anahtarı SaS-IoT-Devices kayıt grubu için paylaşılan erişim imzası birincil anahtarını kullanın. Bu değeri daha önce not edinmiştiniz.

Azure’a dağıtın.

Gözden Geçir + Oluştur'u ve ardından Oluştur'u seçin. Çıkış senaryosu kaynak grubunda Azure işlevinin ve ilgili kaynakların oluşturulması birkaç dakika sürer.

Cihaz köprüsündeki cihaz verilerini dönüştürme

Dışarı aktarılan cihaz verilerini dönüştürmek üzere cihaz köprüsünü yapılandırmak için:

  1. Open Weather hizmetinden bir uygulama API anahtarı alın. Bir hesap, hizmetin sınırlı kullanımıyla ücretsizdir. Uygulama API anahtarı oluşturmak için Açık Hava Durumu hizmeti portalında bir hesap oluşturun ve yönergeleri izleyin. Daha sonra Açık Hava Durumu API'nizi kullanacaksınız.

  2. Azure portalında çıkış senaryosu kaynak grubunda İşlev Uygulaması'na gidin.

  3. Sol gezinti bölmesindeki Geliştirme Araçları'nda App Service Düzenleyicisi (Önizleme) öğesini seçin.

  4. App Service Düzenleyicisi sayfasını açmak için → git'i seçin. Aşağıdaki değişiklikleri yapın:

    1. wwwroot/IoTCIntegration/index.js dosyasını açın. Bu dosyadaki tüm kodu index.js koduyla değiştirin.

    2. Yeni index.js değişken dosyasını daha önce aldığınız Açık Hava Durumu API anahtarıyla güncelleştirin openWeatherAppId .

      const openWeatherAppId = '<Your Open Weather API Key>'
      
    3. İşlev tarafından IoT Central'a gönderilen verilere bir ileti özelliği ekleyin. IoT Central, dönüştürülen verilerin dışarı aktarılmasını önlemek için bu özelliği kullanır. Bu değişikliği yapmak için wwwroot/IoTCIntegration/lib/engine.js dosyasını açın. Şu kodu bulun:

      if (timestamp) {
        message.properties.add('iothub-creation-time-utc', timestamp);
      }
      

      Önceki kod parçacığındaki kodun hemen arkasına aşağıdaki kodu ekleyin:

      // add a message property that we can look for in data export to not re-compute computed telemetry
      message.properties.add('computed', true);
      

      Başvuru için, engine.js dosyasının tamamlanmış bir örneğini görüntüleyebilirsiniz.

  5. App Service Düzenleyicisi'nde sol gezinti bölmesinde Konsol'a tıklayın. Gerekli paketleri yüklemek için aşağıdaki komutları çalıştırın:

    cd IoTCIntegration
    npm install
    

    Bu komutun çalıştırılması birkaç dakika sürebilir.

  6. Azure İşlevine Genel Bakış sayfasına dönün ve işlevi yeniden başlatın:

    İşlevi yeniden başlatın

  7. Sol gezinti bölmesinde İşlevler'i seçin. Ardından IoTCIntegration'ı seçin. Kod + Test'i seçin.

  8. İşlev URL'sini not edin, daha sonra bu değere ihtiyacınız vardır:

    İşlev URL'sini alma

IoT Central'dan cihaz köprüsüne veri akışını etkinleştirme

Bu bölümde Azure IoT Central uygulamasının nasıl ayarlanacağı açıklanmaktadır.

İlk olarak, cihaz modeli dosyasını yerel makinenize kaydedin.

IoT Central uygulamanıza cihaz şablonu eklemek için IoT Central uygulamanıza gidin ve ardından:

  1. IoT Central uygulamanızda oturum açın ve Cihaz şablonları sayfasına gidin.

  2. + Yeni'yi seçin, IoT Cihazı'nı seçin, İleri: Özelleştir'i seçin, şablon adı olarak İşlem modeli girin. İleri: Gözden Geçir'i seçin. Daha sonra, Oluştur'u seçin.

  3. Modeli içeri aktar'ı seçin ve daha önce indirdiğiniz model.json dosyasına göz atın.

  4. Model içeri aktarıldıktan sonra Yayımla'yı seçerek İşlem modeli cihaz şablonunu yayımlayın.

Cihaz köprünüze veri göndermek için veri dışarı aktarmayı ayarlayın:

  1. IoT Central uygulamanızda Veri dışarı aktarma'yı seçin.

  2. Cihaz köprüsüyle kullanılacak bir hedef oluşturmak için + Yeni hedef'i seçin. Hedef İşlem işlevini çağırın, Hedef türü için Web kancası'nı seçin. Geri Arama URL'si için, daha önce not aldığınız işlev URL'sini yapıştır'ı seçin. Yetkilendirmeyi Kimlik Doğrulaması Yok olarak bırakın.

  3. Değişiklikleri kaydedin.

  4. + Yeni dışarı aktarma'ya tıklayın ve İşlem dışarı aktarma adlı bir veri dışarı aktarma oluşturun.

  5. Yalnızca kullandığınız cihaz şablonunun cihaz verilerini dışarı aktarmak için bir filtre ekleyin. + Filtre'yi seçin, Cihaz şablonu öğesini seçin, Eşittir işlecini seçin ve oluşturduğunuz İşlem modeli cihaz şablonunu seçin.

  6. Dönüştürülen ve dönüştürülmeyen veriler arasında ayrım yapmak için bir ileti filtresi ekleyin. Bu filtre, dönüştürülmüş değerlerin cihaz köprüsüne geri gönderilmesini engeller. + İleti özellik filtresi'ni seçin ve hesaplanan ad değerini girin ve ardından Yok işlecini seçin. Dize computed , cihaz köprüsü örnek kodunda anahtar sözcük olarak kullanılır.

  7. Hedef için daha önce oluşturduğunuz İşlem işlevi hedefini seçin.

  8. Değişiklikleri kaydedin. Bir dakika kadar sonra Dışarı Aktarma durumu Sağlıklı olarak gösterilir.

Doğrulama

Senaryoyu test etmek için kullandığınız örnek cihaz Node.js yazılır. Yerel makinenizde Node.js ve npm'nin yüklü olduğundan emin olun. Bu önkoşulları yüklemek istemiyorsanız, önceden yüklenmiş oldukları Azure Cloud Shell'i kullanın.

Senaryoyu test eden bir örnek cihaz çalıştırmak için:

  1. Örnek kodu içeren GitHub deposunu kopyalayın, aşağıdaki komutu çalıştırın:

    git clone https://github.com/Azure/iot-central-compute
    
  2. Örnek cihazı IoT Central uygulamanıza bağlamak için iot-central-compute/device/device.js dosyasındaki bağlantı ayarlarını düzenleyin. Kapsam kimliği ve grup SAS anahtarını daha önce not aldığınız değerlerle değiştirin:

    // These values need to be filled in from your Azure IoT Central application
    //
    const scopeId = "<IoT Central Scope Id value>";
    const groupSasKey = "<IoT Central Group SAS key>";
    //
    

    Değişiklikleri kaydedin.

  3. Gerekli paketleri yüklemek ve cihazı çalıştırmak için aşağıdaki komutları kullanın:

    cd ~/iot-central-compute/device
    npm install
    node device.js
    
  4. Bu komutun sonucu aşağıdaki çıktıya benzer:

    registration succeeded
    assigned hub=iotc-2bd611b0....azure-devices.net
    deviceId=computeDevice
    Client connected
    send status: MessageEnqueued [{"data":"33.23, 69.09, 30.7213, -61.1192"}]
    send status: MessageEnqueued [{"data":"2.43, 75.86, -2.6358, 162.935"}]
    send status: MessageEnqueued [{"data":"6.19, 76.55, -14.3538, -82.314"}]
    send status: MessageEnqueued [{"data":"33.26, 48.01, 71.9172, 48.6606"}]
    send status: MessageEnqueued [{"data":"40.5, 36.41, 14.6043, 14.079"}]
    
  5. IoT Central uygulamanızda computeDevice adlı cihaza gidin. Ham veri görünümünde, yaklaşık beş saniyede bir gösterilen iki farklı telemetri akışı vardır. Modellenmemiş veri içeren akış özgün telemetridir, modellenmiş veri içeren akış işlevin dönüştürdüğü verilerdir:

    Özgün ve dönüştürülmüş ham verileri gösteren ekran görüntüsü.

Kaynakları temizleme

Bu kılavuzdaki adımları izlerken oluşturduğunuz Azure kaynaklarına artık ihtiyacınız yoksa Azure portalındaki kaynak gruplarını silin.

Bu kılavuzda kullandığınız iki kaynak grubu giriş senaryosu ve çıkış senaryosudur.

Sonraki adımlar

Bu makalede hem giriş hem de çıkışta IoT Central için cihaz verilerini dönüştürmeye yönelik farklı seçenekler hakkında bilgi edinmişsinizdir. Makale, iki özel senaryo için izlenecek yollar içerir:

  • Veriler IoT Central uygulamanıza gönderilmeden önce aşağı akış cihazlarından verileri dönüştürmek için IoT Edge modülü kullanın.
  • IoT Central dışındaki verileri dönüştürmek için Azure İşlevleri kullanın. Bu senaryoda IoT Central, dönüştürülecek bir Azure işlevine gelen verileri göndermek için bir veri dışarı aktarma kullanır. İşlev, dönüştürülen verileri IoT Central uygulamanıza geri gönderir.

Cihaz verilerini Azure IoT Central uygulamanızın dışında dönüştürmeyi öğrendiğinize göre, IoT Central'da cihaz verilerini analiz etmek için veri gezginini kullanma hakkında bilgi edinebilirsiniz.