Öğretici: Linux veya Windows üzerinde çalışan örnek bir IoT Tak Çalıştır cihaz uygulamasını IoT Hub'a Bağlan

Bu öğreticide örnek bir IoT Tak Çalıştır cihaz uygulaması oluşturma, ioT hub'ınıza bağlama ve gönderdiği telemetri verilerini görüntülemek için Azure IoT gezgini aracını kullanma adımları gösterilmektedir. Örnek uygulama C dilinde yazılır ve C için Azure IoT cihaz SDK'sında bulunur. Çözüm oluşturucu, herhangi bir cihaz kodunu görüntülemeye gerek kalmadan bir IoT Tak Çalıştır cihazın özelliklerini anlamak için Azure IoT gezgini aracını kullanabilir.

Koda göz atın

Önkoşullar

Devam etmeden önce IoT hub'ınız da dahil olmak üzere ortamınızı ayarladığınızdan emin olun.

Bu öğreticiyi Linux veya Windows üzerinde çalıştırabilirsiniz. Bu öğreticideki kabuk komutları, '/' yol ayırıcıları için Linux kuralını izler. Windows'da takip ediyorsanız bu ayırıcıları '\' ile değiştirdiğinizden emin olun.

Önkoşullar işletim sistemine göre farklılık gösterir:

Linux

Bu öğreticide Ubuntu Linux kullandığınız varsayılır. Bu öğreticideki adımlar Ubuntu 18.04 kullanılarak test edilmiştir.

Linux'ta bu öğreticiyi tamamlamak için yerel Linux ortamınıza aşağıdaki yazılımı yükleyin:

komutunu kullanarak apt-get GCC, Git, cmake ve gerekli tüm bağımlılıkları yükleyin:

sudo apt-get update
sudo apt-get install -y git cmake build-essential curl libcurl4-openssl-dev libssl-dev uuid-dev

sürümünün cmake2.8.12 ve GCC sürümünün 4.4.7'nin üzerinde olduğunu doğrulayın.

cmake --version
gcc --version

Windows

Bu öğreticiyi Windows'da tamamlamak için yerel Windows ortamınıza aşağıdaki yazılımı yükleyin:

Kodu indirme

Bu öğreticide, Azure IoT Hub Cihazı C SDK'sını kopyalayıp derlemek için kullanabileceğiniz bir geliştirme ortamı hazırlamış olacaksınız.

Seçtiğiniz dizinde bir komut istemi açın. Aşağıdaki komutu yürüterek Azure IoT C SDK'larını ve Kitaplıkları GitHub deposunu bu konuma kopyalayın:

git clone https://github.com/Azure/azure-iot-sdk-c.git
cd azure-iot-sdk-c
git submodule update --init

Bu işlemin tamamlanmasının birkaç dakika sürmesini bekleyin.

Kodu oluşturma

Visual Studio'yu kullanarak veya cmake komut satırında kodu derleyebilir ve çalıştırabilirsiniz.

Visual Studio'yu kullanma

  1. Kopyalanan deponun kök klasörünü açın. Birkaç saniye sonra Visual Studio'daki CMake desteği, projede çalıştırmak ve hata ayıklamak için ihtiyacınız olan her şeyi oluşturur.

  2. Visual Studio hazır olduğunda, Çözüm Gezgini örnek iothub_client/samples/pnp/pnp_simple_thermostat/ adresine gidin.

  3. pnp_simple_thermostat.c dosyasına sağ tıklayın ve Hata Ayıklama Yapılandırması Ekle'yi seçin. Varsayılan'ı seçin.

  4. Visual Studio launch.vs.json dosyasını açar. Gerekli ortam değişkenlerini ayarlamak için bu dosyayı aşağıdaki kod parçacığında gösterildiği gibi düzenleyin. IoT Tak Çalıştır hızlı başlangıçları ve öğreticileri için ortamınızı ayarlamayı tamamladığınızda kapsam kimliğini ve kayıt birincil anahtarını not edinmişsiniz:

    {
      "version": "0.2.1",
      "defaults": {},
      "configurations": [
        {
          "type": "default",
          "project": "iothub_client\\samples\\pnp\\pnp_simple_thermostat\\pnp_pnp_simple_thermostat.c",
          "projectTarget": "",
          "name": "pnp_simple_thermostat.c",
          "env": {
            "IOTHUB_DEVICE_SECURITY_TYPE": "DPS",
            "IOTHUB_DEVICE_DPS_ID_SCOPE": "<Your ID scope>",
            "IOTHUB_DEVICE_DPS_DEVICE_ID": "my-pnp-device",
            "IOTHUB_DEVICE_DPS_DEVICE_KEY": "<Your enrollment primary key>"
          }
        }
      ]
    }
    
  5. pnp_simple_thermostat.c dosyasına sağ tıklayın ve Başlangıç Öğesi Olarak Ayarla'yı seçin.

  6. Visual Studio'da kod yürütmeyi izlemek için pnp_simple_thermostat.c dosyasında işleve mainbir kesme noktası ekleyin.

  7. Artık Hata Ayıkla menüsünden örneği çalıştırabilir ve hatalarını ayıklayabilirsiniz.

Cihaz artık komutları ve özellik güncelleştirmelerini almaya hazırdır ve telemetri verilerini hub'a göndermeye başlamıştır. Sonraki adımları tamamladığınızda örneği çalışır durumda tutun.

Kodu oluşturmak için cmake kullanma

Kodu oluşturmak için cmake komut satırı yardımcı programını kullanırsınız:

  1. Cihaz SDK'sının kök klasöründe bir cmake alt dizini oluşturun ve bu klasöre gidin:

    cd azure-iot-sdk-c
    mkdir cmake
    cd cmake
    
  2. SDK'yi ve örnekleri oluşturmak için aşağıdaki komutları çalıştırın:

    cmake -Duse_prov_client=ON -Dhsm_type_symm_key=ON -Drun_e2e_tests=OFF ..
    cmake --build .
    

Cihaz örneğini çalıştırma

Ortamınızı ayarlama bölümünde, IoT hub'ınıza bağlanmak için Örneği Cihaz Sağlama Hizmeti'ni (DPS) kullanacak şekilde yapılandırmak için dört ortam değişkeni oluşturdunuz:

  • değeriyle IOTHUB_DEVICE_SECURITY_TYPEDPS
  • DPS kimliği kapsamıyla IOTHUB_DEVICE_DPS_ID_SCOPE.
  • değeriyle my-pnp-deviceIOTHUB_DEVICE_DPS_DEVICE_ID.
  • Kayıt birincil anahtarıyla IOTHUB_DEVICE_DPS_DEVICE_KEY.
  • değeriyle global.azure-devices-provisioning.netIOTHUB_DEVICE_DPS_ENDPOINT.

Örnek yapılandırma hakkında daha fazla bilgi edinmek için bkz . örnek benioku.

IoT hub'ınıza telemetri gönderen bir IoT Tak Çalıştır cihazının simülasyonunu oluşturan örnek uygulamayı SDK'da çalıştırmak için:

cmake klasöründen yürütülebilir dosyayı içeren klasöre gidin ve çalıştırın:

# Bash
cd iothub_client/samples/pnp/pnp_simple_thermostat/
./pnp_simple_thermostat
REM Windows
cd iothub_client\samples\pnp\pnp_simple_thermostat\Debug
.\pnp_simple_thermostat.exe

İpucu

Windows üzerinde Visual Studio'da kod yürütmeyi izlemek için pnp_simple_thermostat.c dosyasındaki işleve main bir kesme noktası ekleyin.

Cihaz artık komutları ve özellik güncelleştirmelerini almaya hazırdır ve telemetri verilerini hub'a göndermeye başlamıştır. Sonraki adımları tamamladığınızda örneği çalışır durumda tutun.

Kodu doğrulamak için Azure IoT gezginini kullanma

Cihaz istemci örneği başlatıldıktan sonra Azure IoT gezgini aracını kullanarak çalıştığını doğrulayın.

  1. Azure IoT gezginini açın.

  2. IoT hub'ları sayfasında, IoT hub'ınıza henüz bir bağlantı eklemediyseniz + Bağlantı ekle'yi seçin. Daha önce oluşturduğunuz IoT hub'ına ilişkin bağlantı dizesi girin ve Kaydet'i seçin.

  3. IoT Tak Çalıştır Ayarlar sayfasında + Yerel klasör ekle'yi > seçin ve model dosyalarınızı kaydettiğiniz yerel modeller klasörünü seçin.

  4. IoT hub'ları sayfasında, çalışmak istediğiniz hub'ın adına tıklayın. IoT hub'ına kayıtlı cihazların listesini görürsünüz.

  5. Daha önce oluşturduğunuz cihazın Cihaz Kimliği'ne tıklayın.

  6. Soldaki menüde cihaz için kullanılabilen farklı bilgi türleri gösterilir.

  7. Cihazınızın model bilgilerini görüntülemek için IoT Tak Çalıştır bileşenleri seçin.

  8. Cihazın farklı bileşenlerini görüntüleyebilirsiniz. Varsayılan bileşen ve ek bileşenler. Çalışmak için bir bileşen seçin.

  9. Cihazın bu bileşen için gönderdiği telemetri verilerini görüntülemek için Telemetri sayfasını ve ardından Başlat'ı seçin.

  10. Bu bileşen için bildirilen salt okunur özellikleri görüntülemek için Özellikler (salt okunur) sayfasını seçin.

  11. Bu bileşen için güncelleştirebileceğiniz yazılabilir özellikleri görüntülemek için Özellikler (yazılabilir) sayfasını seçin.

  12. Adına göre bir özellik seçin, bunun için yeni bir değer girin ve İstenen değeri güncelleştir'i seçin.

  13. Yeni değerin gösterilmesi için Yenile düğmesini seçin.

  14. Bu bileşenin tüm komutlarını görüntülemek için Komutlar sayfasını seçin.

  15. Varsa parametresini ayarlamak için test etmek istediğiniz komutu seçin. Komutu cihazda çağırmak için Komut gönder'i seçin. Cihazınızın, örnek kodun çalıştığı komut istemi penceresinde komutu yanıtladığını görebilirsiniz.

Kodu gözden geçirin

Bu örnek basit bir IoT Tak Çalıştır termostat cihazı uygular. Termostat modeli IoT Tak Çalıştır bileşenleri kullanmaz. Termostat cihazının DTDL model dosyası, cihazın uyguladığı telemetriyi, özellikleri ve komutları tanımlar.

Cihaz kodu, IoT hub'ınıza bağlanmak için standart işlevi kullanır:

deviceHandle = IoTHubDeviceClient_CreateFromConnectionString(connectionString, MQTT_Protocol)

Cihaz, bağlantı isteğinde uyguladığı DTDL modelinin model kimliğini gönderir. Model kimliği gönderen cihaz, IoT Tak Çalıştır bir cihazdır:

static const char g_ModelId[] = "dtmi:com:example:Thermostat;1";

...

IoTHubDeviceClient_SetOption(deviceHandle, OPTION_MODEL_ID, modelId)

Özellikleri güncelleştiren, komutları işleyen ve telemetri gönderen kod, IoT Tak Çalıştır kurallarını kullanmayan bir cihazın koduyla aynıdır.

Kod, IoT hub'ınızdan gönderilen yüklerdeki JSON nesnelerini ayrıştırmak için Parson kitaplığını kullanır:

// JSON parser
#include "parson.h"

Kaynakları temizleme

Hızlı başlangıçları ve öğreticileri tamamladıysanız bkz . Kaynakları temizleme.

Bu öğreticide örnek bir IoT Tak Çalıştır cihaz uygulaması oluşturma, ioT hub'ınıza bağlama ve gönderdiği telemetri verilerini görüntülemek için Azure IoT gezgini aracını kullanma adımları gösterilmektedir. Örnek uygulama C# dilinde yazılır ve C# için Azure IoT SDK'sında bulunur. Çözüm oluşturucu, herhangi bir cihaz kodunu görüntülemeye gerek kalmadan bir IoT Tak Çalıştır cihazın özelliklerini anlamak için Azure IoT gezgini aracını kullanabilir.

Koda göz atın

Önkoşullar

Devam etmeden önce IoT hub'ınız da dahil olmak üzere ortamınızı ayarladığınızdan emin olun.

Bu öğreticiyi Linux veya Windows üzerinde çalıştırabilirsiniz. Bu öğreticideki kabuk komutları, '/' yol ayırıcıları için Linux kuralını izler. Windows'da takip ediyorsanız bu ayırıcıları '\' ile değiştirdiğinizden emin olun.

Kodu indirme

Bu öğreticide, C# deposu için Azure IoT SDK'sını kopyalayıp derlemek için kullanabileceğiniz bir geliştirme ortamı hazırlayacaksınız.

Seçtiğiniz bir klasörde bir komut istemi açın. C# (.NET) için Microsoft Azure IoT SDK'sı GitHub deposunu bu konuma kopyalamak için aşağıdaki komutu çalıştırın:

git clone  https://github.com/Azure/azure-iot-sdk-csharp

Kodu oluşturma

Artık örneği derleyip çalıştırabilirsiniz. Örneği oluşturmak için aşağıdaki komutları çalıştırın:

cd azure-iot-sdk-csharp/iothub/device/samples/solutions/PnpDeviceSamples/Thermostat
dotnet build

Cihaz örneğini çalıştırma

Örneği çalıştırmak için aşağıdaki komutu çalıştırın:

dotnet run

Cihaz artık komutları ve özellik güncelleştirmelerini almaya hazırdır ve telemetri verilerini hub'a göndermeye başlamıştır. Sonraki adımları tamamladığınızda örneği çalışır durumda tutun.

Kodu doğrulamak için Azure IoT gezginini kullanma

Cihaz istemci örneği başlatıldıktan sonra Azure IoT gezgini aracını kullanarak çalıştığını doğrulayın.

  1. Azure IoT gezginini açın.

  2. IoT hub'ları sayfasında, IoT hub'ınıza henüz bir bağlantı eklemediyseniz + Bağlantı ekle'yi seçin. Daha önce oluşturduğunuz IoT hub'ına ilişkin bağlantı dizesi girin ve Kaydet'i seçin.

  3. IoT Tak Çalıştır Ayarlar sayfasında + Yerel klasör ekle'yi > seçin ve model dosyalarınızı kaydettiğiniz yerel modeller klasörünü seçin.

  4. IoT hub'ları sayfasında, çalışmak istediğiniz hub'ın adına tıklayın. IoT hub'ına kayıtlı cihazların listesini görürsünüz.

  5. Daha önce oluşturduğunuz cihazın Cihaz Kimliği'ne tıklayın.

  6. Soldaki menüde cihaz için kullanılabilen farklı bilgi türleri gösterilir.

  7. Cihazınızın model bilgilerini görüntülemek için IoT Tak Çalıştır bileşenleri seçin.

  8. Cihazın farklı bileşenlerini görüntüleyebilirsiniz. Varsayılan bileşen ve ek bileşenler. Çalışmak için bir bileşen seçin.

  9. Cihazın bu bileşen için gönderdiği telemetri verilerini görüntülemek için Telemetri sayfasını ve ardından Başlat'ı seçin.

  10. Bu bileşen için bildirilen salt okunur özellikleri görüntülemek için Özellikler (salt okunur) sayfasını seçin.

  11. Bu bileşen için güncelleştirebileceğiniz yazılabilir özellikleri görüntülemek için Özellikler (yazılabilir) sayfasını seçin.

  12. Adına göre bir özellik seçin, bunun için yeni bir değer girin ve İstenen değeri güncelleştir'i seçin.

  13. Yeni değerin gösterilmesi için Yenile düğmesini seçin.

  14. Bu bileşenin tüm komutlarını görüntülemek için Komutlar sayfasını seçin.

  15. Varsa parametresini ayarlamak için test etmek istediğiniz komutu seçin. Komutu cihazda çağırmak için Komut gönder'i seçin. Cihazınızın, örnek kodun çalıştığı komut istemi penceresinde komutu yanıtladığını görebilirsiniz.

Kodu gözden geçirin

Bu örnek basit bir IoT Tak Çalıştır termostat cihazı uygular. Bu örneğin uyguladığı model IoT Tak Çalıştır bileşenleri kullanmaz. Termostat cihazının Digital Twins tanım dili (DTDL) model dosyası, cihazın uyguladığı telemetriyi, özellikleri ve komutları tanımlar.

Cihaz kodu, standart CreateFromConnectionString yöntemi kullanarak IoT hub'ınıza bağlanır. Cihaz, bağlantı isteğinde uyguladığı DTDL modelinin model kimliğini gönderir. Model kimliği gönderen cihaz, IoT Tak Çalıştır bir cihazdır:

private static void InitializeDeviceClientAsync()
{
  var options = new ClientOptions
  {
    ModelId = ModelId,
  };
  s_deviceClient = DeviceClient.CreateFromConnectionString(s_deviceConnectionString, TransportType.Mqtt, options);
  s_deviceClient.SetConnectionStatusChangesHandler((status, reason) =>
  {
     s_logger.LogDebug($"Connection status change registered - status={status}, reason={reason}.");
  });
}

Model kimliği aşağıdaki kod parçacığında gösterildiği gibi kodda depolanır:

private const string ModelId = "dtmi:com:example:Thermostat;1";

Özellikleri güncelleştiren, komutları işleyen ve telemetri gönderen kod, IoT Tak Çalıştır kurallarını kullanmayan bir cihazın koduyla aynıdır.

Örnek, IoT hub'ınızdan gönderilen yüklerdeki JSON nesnelerini ayrıştırmak için bir JSON kitaplığı kullanır:

using Newtonsoft.Json;

...

DateTime since = JsonConvert.DeserializeObject<DateTime>(request.DataAsJson);

Kaynakları temizleme

Hızlı başlangıçları ve öğreticileri tamamladıysanız bkz . Kaynakları temizleme.

Bu öğreticide örnek bir IoT Tak Çalıştır cihaz uygulaması oluşturma, ioT hub'ınıza bağlama ve gönderdiği telemetri verilerini görüntülemek için Azure IoT gezgini aracını kullanma adımları gösterilmektedir. Örnek uygulama Java dilinde yazılır ve Java için Azure IoT cihaz SDK'sında bulunur. Çözüm oluşturucu, herhangi bir cihaz kodunu görüntülemeye gerek kalmadan bir IoT Tak Çalıştır cihazın özelliklerini anlamak için Azure IoT gezgini aracını kullanabilir.

Koda göz atın

Önkoşullar

Devam etmeden önce IoT hub'ınız da dahil olmak üzere ortamınızı ayarladığınızdan emin olun.

Bu öğreticiyi Linux veya Windows üzerinde çalıştırabilirsiniz. Bu öğreticideki kabuk komutları, '/' yol ayırıcıları için Linux kuralını izler. Windows'da takip ediyorsanız bu ayırıcıları '\' ile değiştirdiğinizden emin olun.

Bu öğreticiyi tamamlamak için yerel geliştirme ortamınıza aşağıdaki yazılımı yükleyin:

Kodu indirme

Bu öğreticide, Azure IoT Hub Cihazı Java SDK'sını kopyalayıp derlemek için kullanabileceğiniz bir geliştirme ortamı hazırlamış olacaksınız.

Seçtiğiniz dizinde bir komut istemi açın. Aşağıdaki komutu yürüterek Azure IoT Java SDK'larını ve Kitaplıkları GitHub deposunu bu konuma kopyalayın:

git clone https://github.com/Azure/azure-iot-sdk-java.git

Kodu oluşturma

Kopyalanan Java SDK deposunda termostat örneğinin kök klasörüne gidin ve oluşturun:

cd azure-iot-sdk-java/device/iot-device-samples/pnp-device-sample/thermostat-device-sample
mvn clean package

Cihaz örneğini çalıştırma

Ortamınızı ayarlama bölümünde, IoT hub'ınıza bağlanmak için Örneği Cihaz Sağlama Hizmeti'ni (DPS) kullanacak şekilde yapılandırmak için dört ortam değişkeni oluşturdunuz:

  • değeriyle IOTHUB_DEVICE_SECURITY_TYPEDPS
  • DPS kimliği kapsamıyla IOTHUB_DEVICE_DPS_ID_SCOPE.
  • değeriyle my-pnp-deviceIOTHUB_DEVICE_DPS_DEVICE_ID.
  • Kayıt birincil anahtarıyla IOTHUB_DEVICE_DPS_DEVICE_KEY.
  • değeriyle global.azure-devices-provisioning.netIOTHUB_DEVICE_DPS_ENDPOINT.

Örnek yapılandırma hakkında daha fazla bilgi edinmek için bkz . örnek benioku.

/device/iot-device-samples/pnp-device-sample/thermostat-device-sample klasöründen uygulamayı çalıştırın:

mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.device.Thermostat"

Cihaz artık komutları ve özellik güncelleştirmelerini almaya hazırdır ve telemetri verilerini hub'a göndermeye başlamıştır. Sonraki adımları tamamladığınızda örneği çalışır durumda tutun.

Kodu doğrulamak için Azure IoT gezginini kullanma

Cihaz istemci örneği başlatıldıktan sonra Azure IoT gezgini aracını kullanarak çalıştığını doğrulayın.

  1. Azure IoT gezginini açın.

  2. IoT hub'ları sayfasında, IoT hub'ınıza henüz bir bağlantı eklemediyseniz + Bağlantı ekle'yi seçin. Daha önce oluşturduğunuz IoT hub'ına ilişkin bağlantı dizesi girin ve Kaydet'i seçin.

  3. IoT Tak Çalıştır Ayarlar sayfasında + Yerel klasör ekle'yi > seçin ve model dosyalarınızı kaydettiğiniz yerel modeller klasörünü seçin.

  4. IoT hub'ları sayfasında, çalışmak istediğiniz hub'ın adına tıklayın. IoT hub'ına kayıtlı cihazların listesini görürsünüz.

  5. Daha önce oluşturduğunuz cihazın Cihaz Kimliği'ne tıklayın.

  6. Soldaki menüde cihaz için kullanılabilen farklı bilgi türleri gösterilir.

  7. Cihazınızın model bilgilerini görüntülemek için IoT Tak Çalıştır bileşenleri seçin.

  8. Cihazın farklı bileşenlerini görüntüleyebilirsiniz. Varsayılan bileşen ve ek bileşenler. Çalışmak için bir bileşen seçin.

  9. Cihazın bu bileşen için gönderdiği telemetri verilerini görüntülemek için Telemetri sayfasını ve ardından Başlat'ı seçin.

  10. Bu bileşen için bildirilen salt okunur özellikleri görüntülemek için Özellikler (salt okunur) sayfasını seçin.

  11. Bu bileşen için güncelleştirebileceğiniz yazılabilir özellikleri görüntülemek için Özellikler (yazılabilir) sayfasını seçin.

  12. Adına göre bir özellik seçin, bunun için yeni bir değer girin ve İstenen değeri güncelleştir'i seçin.

  13. Yeni değerin gösterilmesi için Yenile düğmesini seçin.

  14. Bu bileşenin tüm komutlarını görüntülemek için Komutlar sayfasını seçin.

  15. Varsa parametresini ayarlamak için test etmek istediğiniz komutu seçin. Komutu cihazda çağırmak için Komut gönder'i seçin. Cihazınızın, örnek kodun çalıştığı komut istemi penceresinde komutu yanıtladığını görebilirsiniz.

Kodu gözden geçirin

Bu örnek basit bir IoT Tak Çalıştır termostat cihazı uygular. Bu örneğin uyguladığı model IoT Tak Çalıştır bileşenleri kullanmaz. Termostat cihazının DTDL model dosyası, cihazın uyguladığı telemetriyi, özellikleri ve komutları tanımlar.

Cihaz kodu, IoT hub'ınıza bağlanmak için standart DeviceClient sınıfı kullanır. Cihaz, bağlantı isteğinde uyguladığı DTDL modelinin model kimliğini gönderir. Model kimliği gönderen cihaz, IoT Tak Çalıştır bir cihazdır:

private static void initializeDeviceClient() throws URISyntaxException, IOException {
    ClientOptions options = new ClientOptions();
    options.setModelId(MODEL_ID);
    deviceClient = new DeviceClient(deviceConnectionString, protocol, options);

    deviceClient.registerConnectionStatusChangeCallback((status, statusChangeReason, throwable, callbackContext) -> {
        log.debug("Connection status change registered: status={}, reason={}", status, statusChangeReason);

        if (throwable != null) {
            log.debug("The connection status change was caused by the following Throwable: {}", throwable.getMessage());
            throwable.printStackTrace();
        }
    }, deviceClient);

    deviceClient.open();
}

Model kimliği aşağıdaki kod parçacığında gösterildiği gibi kodda depolanır:

private static final String MODEL_ID = "dtmi:com:example:Thermostat;1";

Özellikleri güncelleştiren, komutları işleyen ve telemetri gönderen kod, IoT Tak Çalıştır kurallarını kullanmayan bir cihazın koduyla aynıdır.

Örnek, IoT hub'ınızdan gönderilen yüklerdeki JSON nesnelerini ayrıştırmak için bir JSON kitaplığı kullanır:

import com.google.gson.Gson;

...

Date since = new Gson().fromJson(jsonRequest, Date.class);

Kaynakları temizleme

Hızlı başlangıçları ve öğreticileri tamamladıysanız bkz . Kaynakları temizleme.

Bu öğreticide örnek bir IoT Tak Çalıştır cihaz uygulaması oluşturma, ioT hub'ınıza bağlama ve gönderdiği telemetri verilerini görüntülemek için Azure IoT gezgini aracını kullanma adımları gösterilmektedir. Örnek uygulama Node.js yazılır ve Node.js için Azure IoT cihaz SDK'sında bulunur. Çözüm oluşturucu, herhangi bir cihaz kodunu görüntülemeye gerek kalmadan bir IoT Tak Çalıştır cihazın özelliklerini anlamak için Azure IoT gezgini aracını kullanabilir.

Koda göz atın

Önkoşullar

Devam etmeden önce IoT hub'ınız da dahil olmak üzere ortamınızı ayarladığınızdan emin olun.

Bu öğreticiyi Linux veya Windows üzerinde çalıştırabilirsiniz. Bu öğreticideki kabuk komutları, '/' yol ayırıcıları için Linux kuralını izler. Windows'da takip ediyorsanız bu ayırıcıları '\' ile değiştirdiğinizden emin olun.

Bu öğreticiyi tamamlamak için geliştirme makinenizde Node.js gerekir. Birden çok platform için önerilen en son sürümü nodejs.org'den indirebilirsiniz.

Aşağıdaki komutu kullanarak geliştirme makinenizde geçerli Node.js sürümünü doğrulayabilirsiniz:

node --version

Kodu indirme

Bu öğreticide, Node.js için Azure IoT Hub Cihaz SDK'sını kopyalayıp derlemek için kullanabileceğiniz bir geliştirme ortamı hazırlarsınız.

Seçtiğiniz dizinde bir komut istemi açın. Node.js GitHub deposu için Microsoft Azure IoT SDK'sını bu konuma kopyalamak için aşağıdaki komutu yürütebilirsiniz:

git clone https://github.com/Azure/azure-iot-sdk-node

Gerekli kitaplıkları yükleme

Dahil edilen örnek kodu oluşturmak için cihaz SDK'sını kullanırsınız. Oluşturduğunuz uygulama, IoT hub'ına bağlanan bir cihazın benzetimini yapar. Uygulama telemetri ve özellikler gönderir ve komutları alır.

  1. Yerel terminal penceresinde kopyalanan deponuzun klasörüne gidin ve /azure-iot-sdk-node/device/samples/javascript klasörüne gidin. Ardından gerekli kitaplıkları yüklemek için aşağıdaki komutu çalıştırın:

    npm install
    

Örnek cihazı çalıştırma

Bu örnek basit bir IoT Tak Çalıştır termostat cihazı uygular. Bu örneğin uyguladığı model IoT Tak Çalıştır bileşenleri kullanmaz. Termostat cihazının DTDL model dosyası, cihazın uyguladığı telemetriyi, özellikleri ve komutları tanımlar.

pnp_simple_thermostat.js dosyasını açın. Bu dosyada şunların nasıl yapıldığını görebilirsiniz:

  1. Gerekli arabirimleri içeri aktarın.
  2. Özellik güncelleştirme işleyicisi ve komut işleyicisi yazın.
  3. İstenen özellik düzeltme eklerini işleyip telemetri gönderin.
  4. İsteğe bağlı olarak, Azure Cihaz Sağlama Hizmeti'ni (DPS) kullanarak cihazınızı sağlayın.

Main işlevinde, her şeyin nasıl bir araya geldiğini görebilirsiniz:

  1. Cihazı bağlantı dizesi oluşturun veya DPS kullanarak sağlayın.)
  2. IoT Tak Çalıştır cihaz modelini belirtmek için modelKIMİ seçeneğini kullanın.
  3. Komut işleyicisini etkinleştirin.
  4. Cihazdan hub'ınıza telemetri gönderin.
  5. Cihaz ikizini alın ve bildirilen özellikleri güncelleştirin.
  6. İstenen özellik güncelleştirme işleyicisini etkinleştirin.

Ortamınızı ayarlama bölümünde, IoT hub'ınıza bağlanmak için Örneği Cihaz Sağlama Hizmeti'ni (DPS) kullanacak şekilde yapılandırmak için dört ortam değişkeni oluşturdunuz:

  • değeriyle IOTHUB_DEVICE_SECURITY_TYPEDPS
  • DPS kimliği kapsamıyla IOTHUB_DEVICE_DPS_ID_SCOPE.
  • değeriyle my-pnp-deviceIOTHUB_DEVICE_DPS_DEVICE_ID.
  • Kayıt birincil anahtarıyla IOTHUB_DEVICE_DPS_DEVICE_KEY.
  • değeriyle global.azure-devices-provisioning.netIOTHUB_DEVICE_DPS_ENDPOINT.

Örnek yapılandırma hakkında daha fazla bilgi edinmek için bkz . örnek benioku.

IoT hub'ınıza telemetri gönderen bir IoT Tak Çalıştır cihazının benzetimini yapmak için örnek uygulamayı çalıştırın. Örnek uygulamayı çalıştırmak için aşağıdaki komutu kullanın:

node pnp_simple_thermostat.js

Cihazın hub'a telemetri verileri göndermeye başladığını ve artık komutları ve özellik güncelleştirmelerini almaya hazır olduğunu gösteren aşağıdaki çıkışı görürsünüz.

Cihaz onay iletileri

Sonraki adımları tamamladığınızda örneği çalışır durumda tutun.

Kodu doğrulamak için Azure IoT gezginini kullanma

Cihaz istemci örneği başlatıldıktan sonra Azure IoT gezgini aracını kullanarak çalıştığını doğrulayın.

  1. Azure IoT gezginini açın.

  2. IoT hub'ları sayfasında, IoT hub'ınıza henüz bir bağlantı eklemediyseniz + Bağlantı ekle'yi seçin. Daha önce oluşturduğunuz IoT hub'ına ilişkin bağlantı dizesi girin ve Kaydet'i seçin.

  3. IoT Tak Çalıştır Ayarlar sayfasında + Yerel klasör ekle'yi > seçin ve model dosyalarınızı kaydettiğiniz yerel modeller klasörünü seçin.

  4. IoT hub'ları sayfasında, çalışmak istediğiniz hub'ın adına tıklayın. IoT hub'ına kayıtlı cihazların listesini görürsünüz.

  5. Daha önce oluşturduğunuz cihazın Cihaz Kimliği'ne tıklayın.

  6. Soldaki menüde cihaz için kullanılabilen farklı bilgi türleri gösterilir.

  7. Cihazınızın model bilgilerini görüntülemek için IoT Tak Çalıştır bileşenleri seçin.

  8. Cihazın farklı bileşenlerini görüntüleyebilirsiniz. Varsayılan bileşen ve ek bileşenler. Çalışmak için bir bileşen seçin.

  9. Cihazın bu bileşen için gönderdiği telemetri verilerini görüntülemek için Telemetri sayfasını ve ardından Başlat'ı seçin.

  10. Bu bileşen için bildirilen salt okunur özellikleri görüntülemek için Özellikler (salt okunur) sayfasını seçin.

  11. Bu bileşen için güncelleştirebileceğiniz yazılabilir özellikleri görüntülemek için Özellikler (yazılabilir) sayfasını seçin.

  12. Adına göre bir özellik seçin, bunun için yeni bir değer girin ve İstenen değeri güncelleştir'i seçin.

  13. Yeni değerin gösterilmesi için Yenile düğmesini seçin.

  14. Bu bileşenin tüm komutlarını görüntülemek için Komutlar sayfasını seçin.

  15. Varsa parametresini ayarlamak için test etmek istediğiniz komutu seçin. Komutu cihazda çağırmak için Komut gönder'i seçin. Cihazınızın, örnek kodun çalıştığı komut istemi penceresinde komutu yanıtladığını görebilirsiniz.

Kaynakları temizleme

Hızlı başlangıçları ve öğreticileri tamamladıysanız bkz . Kaynakları temizleme.

Bu öğreticide örnek bir IoT Tak Çalıştır cihaz uygulaması oluşturma, ioT hub'ınıza bağlama ve gönderdiği telemetri verilerini görüntülemek için Azure IoT gezgini aracını kullanma adımları gösterilmektedir. Örnek uygulama Python için yazılmıştır ve Python için Azure IoT Hub Cihaz SDK'sında yer alır. Çözüm oluşturucu, herhangi bir cihaz kodunu görüntülemeye gerek kalmadan bir IoT Tak Çalıştır cihazın özelliklerini anlamak için Azure IoT gezgini aracını kullanabilir.

Koda göz atın

Önkoşullar

Devam etmeden önce IoT hub'ınız da dahil olmak üzere ortamınızı ayarladığınızdan emin olun.

Bu öğreticiyi tamamlamak için geliştirme makinenizde Python yüklü olmalıdır. Geçerli Python sürümü gereksinimleri için Azure IoT Python SDK'sını denetleyin. Python sürümünüzü aşağıdaki komutla de kontrol edebilirsiniz:

python --version

birden çok platform için önerilen en son sürümü python.org'den indirebilirsiniz.

Yerel Python ortamınızda paketi aşağıdaki gibi yükleyin:

pip install azure-iot-device

Python SDK IoT deposunu kopyalayın:

git clone --branch v2 https://github.com/Azure/azure-iot-sdk-python

Örnek cihazı çalıştırma

azure-iot-sdk-python/samples/pnp klasörü IoT Tak Çalıştır cihazın örnek kodunu içerir. Bu öğreticide simple_thermostat.py dosyası kullanılır. Bu örnek kod, IoT Tak Çalıştır uyumlu bir cihaz uygular ve Azure IoT Python Cihaz İstemci Kitaplığı'nı kullanır.

simple_thermostat.py dosyasını bir metin düzenleyicisinde açın. Aşağıdakilere dikkat edin:

  1. Thermostat'ı benzersiz olarak temsil eden tek bir cihaz ikizi model tanımlayıcısını (DTMI) tanımlar. DTMI kullanıcı tarafından bilinmeli ve cihaz uygulama senaryosuna bağlı olarak değişir. Geçerli örnek için model, izleme sıcaklığıyla ilişkili telemetri, özellikler ve komutlar içeren bir termostat temsil eder.

  2. Komut işleyicisi uygulamalarını tanımlamak için işlevleri vardır. Cihazın komut isteklerine nasıl yanıt vereceğini tanımlamak için bu işleyicileri yazarsınız.

  3. Komut yanıtı tanımlamak için bir işlevi vardır. IoT hub'ınıza yanıt göndermek için komut yanıtı işlevleri oluşturursunuz.

  4. Uygulamadan çıkmanıza olanak sağlamak için bir giriş klavye dinleyicisi işlevi tanımlar.

  5. Bir ana işlevi vardır. Ana işlev:

    1. Cihaz SDK'sını kullanarak bir cihaz istemcisi oluşturur ve IoT hub'ınıza bağlanır.

    2. Güncelleştirmeler özellikleri. Thermostat modeli, Ve'yi maxTempSinceLastReboot Thermostat'ın iki özelliği olarak tanımlartargetTemperature. Özellikler, üzerinde device_clienttanımlanan yöntem kullanılarak patch_twin_reported_properties güncelleştirilir.

    3. execute_command_listener işlevini kullanarak komut isteklerini dinlemeye başlar. İşlev, hizmetten gelen komutları dinlemek için bir 'dinleyici' ayarlar. Dinleyiciyi ayarladığınızda, , method_nameuser_command_handlerve create_user_response_handlersağlarsınız.

      • işlevi, user_command_handler bir komut aldığında cihazın ne yapması gerektiğini tanımlar.
      • İşlev, create_user_response_handler bir komut başarıyla yürütülürken IoT hub'ınıza gönderilecek bir yanıt oluşturur. Bu yanıtı portalda görüntüleyebilirsiniz.
    4. Telemetri göndermeye başlar. pnp_send_telemetry pnp_methods.py dosyasında tanımlanır. Örnek kod, bu işlevi sekiz saniyede bir çağırmak için bir döngü kullanır.

    5. Tüm dinleyicileri ve görevleri devre dışı bırakır ve Q veya q tuşuna bastığınızda döngü var olur.

Ortamınızı ayarlama bölümünde, IoT hub'ınıza bağlanmak için Örneği Cihaz Sağlama Hizmeti'ni (DPS) kullanacak şekilde yapılandırmak için dört ortam değişkeni oluşturdunuz:

  • değeriyle IOTHUB_DEVICE_SECURITY_TYPEDPS
  • DPS kimliği kapsamıyla IOTHUB_DEVICE_DPS_ID_SCOPE.
  • değeriyle my-pnp-deviceIOTHUB_DEVICE_DPS_DEVICE_ID.
  • Kayıt birincil anahtarıyla IOTHUB_DEVICE_DPS_DEVICE_KEY.
  • değeriyle global.azure-devices-provisioning.netIOTHUB_DEVICE_DPS_ENDPOINT.

Örnek yapılandırma hakkında daha fazla bilgi edinmek için bkz . örnek benioku.

Kodu gördüğünüze göre, örneği çalıştırmak için aşağıdaki komutu kullanın:

python simple_thermostat.py

Cihazın hub'a telemetri verileri gönderdiğini ve artık komut ve özellik güncelleştirmelerini almaya hazır olduğunu gösteren aşağıdaki çıkışı görürsünüz:

Listening for command requests and property updates
Press Q to quit
Sending telemetry for temperature
Sent message

Sonraki adımları tamamladığınızda örneği çalışır durumda tutun.

Kodu doğrulamak için Azure IoT gezginini kullanma

Cihaz istemci örneği başlatıldıktan sonra Azure IoT gezgini aracını kullanarak çalıştığını doğrulayın.

  1. Azure IoT gezginini açın.

  2. IoT hub'ları sayfasında, IoT hub'ınıza henüz bir bağlantı eklemediyseniz + Bağlantı ekle'yi seçin. Daha önce oluşturduğunuz IoT hub'ına ilişkin bağlantı dizesi girin ve Kaydet'i seçin.

  3. IoT Tak Çalıştır Ayarlar sayfasında + Yerel klasör ekle'yi > seçin ve model dosyalarınızı kaydettiğiniz yerel modeller klasörünü seçin.

  4. IoT hub'ları sayfasında, çalışmak istediğiniz hub'ın adına tıklayın. IoT hub'ına kayıtlı cihazların listesini görürsünüz.

  5. Daha önce oluşturduğunuz cihazın Cihaz Kimliği'ne tıklayın.

  6. Soldaki menüde cihaz için kullanılabilen farklı bilgi türleri gösterilir.

  7. Cihazınızın model bilgilerini görüntülemek için IoT Tak Çalıştır bileşenleri seçin.

  8. Cihazın farklı bileşenlerini görüntüleyebilirsiniz. Varsayılan bileşen ve ek bileşenler. Çalışmak için bir bileşen seçin.

  9. Cihazın bu bileşen için gönderdiği telemetri verilerini görüntülemek için Telemetri sayfasını ve ardından Başlat'ı seçin.

  10. Bu bileşen için bildirilen salt okunur özellikleri görüntülemek için Özellikler (salt okunur) sayfasını seçin.

  11. Bu bileşen için güncelleştirebileceğiniz yazılabilir özellikleri görüntülemek için Özellikler (yazılabilir) sayfasını seçin.

  12. Adına göre bir özellik seçin, bunun için yeni bir değer girin ve İstenen değeri güncelleştir'i seçin.

  13. Yeni değerin gösterilmesi için Yenile düğmesini seçin.

  14. Bu bileşenin tüm komutlarını görüntülemek için Komutlar sayfasını seçin.

  15. Varsa parametresini ayarlamak için test etmek istediğiniz komutu seçin. Komutu cihazda çağırmak için Komut gönder'i seçin. Cihazınızın, örnek kodun çalıştığı komut istemi penceresinde komutu yanıtladığını görebilirsiniz.

Kaynakları temizleme

Hızlı başlangıçları ve öğreticileri tamamladıysanız bkz . Kaynakları temizleme.

Kısıtlanmış cihazlar için geliştiriyorsanız, IoT Tak Çalıştır şu şekilde kullanabilirsiniz:

Bu makale, bu kısıtlanmış senaryolara yönelik bağlantıları ve kaynakları içerir.

Önkoşullar

Aşağıdaki örneklerin çoğu belirli bir donanım cihazı gerektirir ve örneklerin her biri için önkoşullar farklıdır. Ayrıntılı önkoşullar, yapılandırma ve derleme yönergeleri için ilgili örneğin bağlantısını izleyin.

Embedded C için SDK'sını kullanma

Embedded C için SDK, IoT Tak Çalıştır kurallarının kullanılması da dahil olmak üzere kısıtlanmış cihazları Azure IoT hizmetlerine bağlamak için basit bir çözüm sunar. Aşağıdaki bağlantılar, MCU tabanlı cihazlara ve eğitim ve hata ayıklama amacıyla örnekler içerir.

MCU tabanlı cihaz kullanma

Embedded C için SDK'yı, Cihaz Sağlama Hizmeti'ni ve MCU'da IoT Tak Çalıştır kullanarak eksiksiz bir uçtan uca öğretici için bkz. IoT Hub Cihaz Sağlama Hizmeti aracılığıyla Azure'a Bağlan için PIC-IoT Wx Geliştirme Panosu'nı yeniden kullanma.

Giriş örnekleri

Embedded C deposu için SDK, IoT Tak Çalıştır nasıl kullanacağınızı gösteren birkaç örnek içerir:

Not

Bu örnekler, eğitim ve hata ayıklama amacıyla Windows ve Linux üzerinde çalıştırılırken gösterilir. Bir üretim senaryosunda örnekler yalnızca kısıtlanmış cihazlara yöneliktir.

Eclipse ThreadX Kullanma

Eclipse ThreadX, Azure IoT bulut hizmetlerine yerel bağlantı ekleyen basit bir katman içerir. Bu katman, Eclipse ThreadX'in gelişmiş özelliklerini kullanırken kısıtlanmış cihazları Azure IoT'ye bağlamak için basit bir mekanizma sağlar. Daha fazla bilgi edinmek için bkz. Eclipse ThreadX'e genel bakış.

Araç Zincirleri

Eclipse ThreadX örnekleri, aşağıdakiler gibi farklı türlerde IDE ve araç zinciri bileşimleriyle sağlanır:

Örnekler

Aşağıdaki tabloda Eclipse ThreadX ve IoT Tak Çalıştır ile farklı cihazlarda çalışmaya başlamayı gösteren örnekler listelenmektedir:

Üretici Cihaz Örnekler
Mikroçip ATSAME54-XPRO GCC/CMakeIARMPLAB
MXCHIP AZ3166 GCC/CMake
NXP MIMXRT1060-EVK GCC/CMakeIARMCUXpresso
STMicroelectronics 32F746GDISCOVERY IARSTM32Cube
STMicroelectronics B-L475E-IOT01 GCC/CMakeIARSTM32Cube
STMicroelectronics B-L4S5I-IOT01 GCC/CMakeIARSTM32Cube

Sonraki adımlar

Bu öğreticide, bir IoT Tak Çalıştır cihazını IoT hub'ına bağlamayı öğrendiniz. IoT Tak Çalıştır cihazlarınızla etkileşim kuran bir çözüm oluşturma hakkında daha fazla bilgi edinmek için bkz: