Hızlı Başlangıç: Bir cihaz uygulaması'na iletişim C# aracılığıyla IOT Hub cihaz akışları (Önizleme)Quickstart: Communicate to a device application in C# via IoT Hub device streams (preview)

Azure IOT Hub cihaz akışları olarak şu anda destekleyen bir önizleme özelliği.Azure IoT Hub currently supports device streams as a preview feature.

IOT Hub cihaz akışları güvenli ve güvenlik duvarı uyumlu bir şekilde iletişim kurmak hizmet ve cihaz uygulamalarınıza izin verin.IoT Hub device streams allow service and device applications to communicate in a secure and firewall-friendly manner. Bu hızlı başlangıçta iki içerir C# sürekli veri (Yankı) göndermek için cihaz akışları yararlanarak uygulamalar.This quickstart involves two C# applications that take advantage of device streams to send data back and forth (echo).

Azure Cloud Shell kullanmaUse Azure Cloud Shell

Azure, tarayıcınız aracılığıyla kullanabileceğiniz etkileşimli bir kabuk ortamı Azure Cloud Shell.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell, ya da bash PowerShell Azure hizmetleriyle çalışmak için kullanmanıza olanak sağlar.Cloud Shell lets you use either bash or PowerShell to work with Azure services. Bu makaledeki kodu, yerel ortamınıza herhangi bir şey yüklemeye gerek kalmadan çalıştırmak için Cloud Shell önceden yüklenmiş komutları kullanabilirsiniz.You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Azure Cloud Shell başlatmak için:To launch Azure Cloud Shell:

SeçenekOption Örnek/bağlantıExample/Link
Kod bloğunun sağ üst köşesindeki Deneyin’i seçin.Select Try It in the upper-right corner of a code block. Dene ' nin seçilmesi, kodu Cloud Shell otomatik olarak kopyalamaz.Selecting Try It doesn't automatically copy the code to Cloud Shell. Azure Cloud Shell için deneme örneği
Tarayıcınızda Cloud Shell açmak için Başlat Cloud Shell düğmesine gidin veyaseçin. https://shell.azure.comGo to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. Cloud Shell yeni bir pencerede BaşlatLaunch Cloud Shell in a new window
Azure Portalsağ üstteki menü çubuğunda Cloud Shell düğmesini seçin.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Azure portaldaki Cloud Shell düğmesi

Bu makaledeki kodu Azure Cloud Shell çalıştırmak için:To run the code in this article in Azure Cloud Shell:

  1. Cloud Shell'i açın.Open Cloud Shell.
  2. Kodu kopyalamak için bir kod bloğunda Kopyala düğmesini seçin.Select the Copy button on a code block to copy the code.
  3. Kodu Windows ve Linux 'ta CTRL+SHIFT+v veya MacOS 'ta cmd+Shift+v ile Cloud Shell oturumuna yapıştırın.Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.
  4. Kodu çalıştırmak için ENTER tuşuna basın.Press Enter to run the code.

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.If you don’t have an Azure subscription, create a free account before you begin.

ÖnkoşullarPrerequisites

  • Cihaz akışları önizlemesi, şu anda şu bölgelerde oluşturulan yalnızca IOT hub'ları için desteklenir:The preview of device streams is currently supported only for IoT hubs that are created in the following regions:

    • Orta ABDCentral US
    • Orta ABD EUAPCentral US EUAP
  • Bu hızlı başlangıçta çalışan iki örnek uygulamaları kullanılarak yazılan C#.The two sample applications that you run in this quickstart are written by using C#. Geliştirme makinenize .NET Core SDK'sını 2.1.0 veya sonraki bir sürümü gerekir.You need the .NET Core SDK 2.1.0 or later on your development machine.

    dotnet --version
    
  • Azure IOT uzantısı, Azure CLI için aşağıdaki komutu çalıştırarak Cloud Shell Örneğinize ekleyin.Add the Azure IoT Extension for Azure CLI to your Cloud Shell instance by running the following command. IOT Hub, IOT Edge ve IOT cihaz sağlama hizmeti (DPS) IOT uzantısını ekler-Azure CLI için özel komutları.The IOT Extension adds IoT Hub, IoT Edge, and IoT Device Provisioning Service (DPS)-specific commands to the Azure CLI.

    az extension add --name azure-cli-iot-ext
    
  • Örneği indirmek C# proje ve ZIP arşivini ayıklayın.Download the sample C# project and extract the ZIP archive. Hem cihaz tarafında hem de hizmet tarafı gerekir.You need it on both the device side and the service side.

IoT hub oluşturmaCreate an IoT hub

Bu bölümde, IOT hub'ı kullanarak oluşturmak açıklar Azure portalında.This section describes how to create an IoT hub by using the Azure portal.

  1. Azure Portal oturum açın.Sign in to the Azure portal.

  2. Seçin kaynak Oluşturve ardından nesnelerin interneti.Select Create a resource, and then select Internet of Things.

  3. Sağdaki listeden seçin IOT hub'ı.In the list at the right, select Iot Hub. IOT hub'ı oluşturmak için ilk sayfasını açar.The first page for creating an IoT hub opens.

    Azure portalında bir IOT hub'ı oluşturma

    Şu alanları doldurun:Fill in the fields:

    a.a. İçinde abonelik aşağı açılan listesinde, IOT hub'ınız için kullanılacak aboneliği seçin.In the Subscription drop-down list, select the subscription to use for your IoT hub.

    b.b. İçin kaynak grubu, aşağıdakilerden birini yapın:For Resource Group, do either of the following:

    • Yeni bir kaynak grubu oluşturmak için Seç Yeni Oluştur ve kullanmak istediğiniz adı girin.To create a new resource group, select Create new and enter the name you want to use.

    • Mevcut bir kaynak grubunu kullanmayı seçin var olanı kullan ve aşağı açılan listesinde, kaynak grubunu seçin.To use an existing resource group, select Use existing and then, in the drop-down list, select the resource group.

      Daha fazla bilgi için yönetme Azure Resource Manager kaynak grupları.For more information, see Manage Azure Resource Manager resource groups.

    c.c. İçinde bölge aşağı açılan listesinde, hub'ınıza yer almasını istediğiniz bölgeyi seçin.In the Region drop-down list, select the region in which you want your hub to be located. IOT Hub cihaz akışları önizleme ya da destekleyen bir bölge seçin Orta ABD veya Orta ABD EUAP.Select a region that supports the IoT Hub device streams preview, either Central US or Central US EUAP.

    d.d. İçinde IOT hub'ı adı kutusuna, IOT hub'ınız için bir ad girin.In the IoT Hub Name box, enter the name for your IoT hub. Adın genel olarak benzersiz olması gerekir.The name must be globally unique. Girdiğiniz ad kullanılabilir durumdaysa yeşil bir onay işareti görünür.If the name you enter is available, a green check mark appears.

    Önemli

    IOT hub'ı bir DNS uç noktası olarak herkes tarafından bulunabilir çünkü bu ad, tüm hassas veya kişisel olarak tanımlanabilen bilgileri girmekten kaçınmak emin olun.Because the IoT hub will be publicly discoverable as a DNS endpoint, be sure to avoid entering any sensitive or personally identifiable information when you name it.

  4. IOT hub'ınıza oluşturmaya devam etmek için seçin sonraki: Boyut ve ölçek.To continue creating your IoT hub, select Next: Size and scale.

    Boyut ve ölçek için Azure portalını kullanarak yeni bir IOT hub'ı ayarlama

    Bu bölümde, varsayılan ayarları kabul edin ve seçin gözden geçir + Oluştur altındaki.In this pane, you can accept the default settings and select Review + create at the bottom. Aşağıdaki seçenekleri göz önünde bulundurun:Consider the following options:

    • İçinde fiyatlandırma ve ölçek katmanı aşağı açılan listesinde, standart katmanların birini seçin (S1, S2, veya S3) veya F1: Ücretsiz katmanı.In the Pricing and scale tier drop-down list, select one of the standard tiers (S1, S2, or S3) or F1: Free tier. Bu seçenek, Filo boyutuna ve hub'ınıza (örneğin, telemetri iletilerini) beklediğiniz akış dışı iş yükleri tarafından da destekli.This choice can also be guided by the size of your fleet and the non-streaming workloads that you expect in your hub (for example, telemetry messages). Örneğin, ücretsiz katmanı, sınama ve değerlendirme için tasarlanmıştır.For example, the free tier is intended for testing and evaluation. Günlük ileti 8000'en fazla ve IOT hub'ına bağlanması 500 CİHAZDAN sağlar.It allows 500 devices to be connected to the IoT hub and up to 8,000 messages per day. Her Azure aboneliğinin bir IOT hub ücretsiz katmanında oluşturabilirsiniz.Each Azure subscription can create one IoT hub in the free tier.

    • İçin numarası, IOT Hub birimlerinin: Bu seçenek, akış dışı iş yükü hub'ınıza beklediğiniz bağlıdır.For Number of IoT Hub units: This choice depends on non-streaming workload you expect in your hub. Şu an için 1 seçebilirsiniz.You can select 1 for now.

    Katman seçenekleri hakkında daha fazla bilgi için bkz. doğru IOT hub katmanını seçme.For more information about tier options, see Choose the right IoT hub tier.

  5. Seçimlerinizi gözden geçirmek için seçin gözden + Oluştur sekmesi. Açılan bölmede aşağıdakine benzer:To review your choices, select the Review + create tab. The pane that opens is similar to the following:

    Yeni IOT hub'ı oluşturma hakkında bilgi

  6. Yeni IOT hub'ınızı oluşturmak için Seç Oluştur.To create your new IoT hub, select Create. Bu işlem birkaç dakika sürer.The process takes a few minutes.

Cihaz kaydetmeRegister a device

Bir cihazın bağlanabilmesi için IoT hub’ınıza kaydedilmesi gerekir.A device must be registered with your IoT hub before it can connect. Bu bölümde, bir simülasyon cihazı kaydetmek için Azure Cloud Shell kullanın.In this section, you use Azure Cloud Shell to register a simulated device.

  1. Cihaz kimliği oluşturma için Cloud Shell'de aşağıdaki komutu çalıştırın:To create the device identity, run the following command in Cloud Shell:

    Not

    • Değiştirin YourIoTHubName yer tutucu IOT hub'ınız için seçtiğiniz ada sahip.Replace the YourIoTHubName placeholder with the name you choose for your IoT hub.
    • Kullanım Cihazımgösterildiği gibi.Use MyDevice, as shown. Kayıtlı cihaz için verilen addır.It's the name given for the registered device. Cihazınız için farklı bir ad seçerseniz, bu makalenin tamamında bu adı kullanın ve bunları çalıştırmadan önce örnek uygulamalar, cihaz adını güncelleştirin.If you choose a different name for your device, use that name throughout this article, and update the device name in the sample applications before you run them.
    az iot hub device-identity create --hub-name YourIoTHubName --device-id MyDevice
    
  2. Alınacak cihaz bağlantı dizesini yalnızca kayıtlı bir cihaz için Cloud Shell'de aşağıdaki komutu çalıştırın:To get the device connection string for the device that you just registered, run the following command in Cloud Shell:

    Not

    Değiştirin YourIoTHubName yer tutucu IOT hub'ınız için seçtiğiniz ada sahip.Replace the YourIoTHubName placeholder with the name you choose for your IoT hub.

    az iot hub device-identity show-connection-string --hub-name YourIoTHubName --device-id MyDevice --output table
    

    Bu hızlı başlangıçta daha sonra kullanmak için cihaz bağlantı dizesini not edin.Note the device connection string for later use in this quickstart. Aşağıdaki örneğe benzer şekilde görünür:It looks like the following example:

    HostName={YourIoTHubName}.azure-devices.net;DeviceId=MyDevice;SharedAccessKey={YourSharedAccessKey}

  3. Ayrıca gerekir hizmet bağlantı dizesini IOT hub'ınıza bağlanmak ve bir cihaz akışını kurmak Hizmet tarafı uygulamasını etkinleştirmek için IOT hub'ından.You also need the service connection string from your IoT hub to enable the service-side application to connect to your IoT hub and establish a device stream. Aşağıdaki komut, IOT hub'ınız için bu değeri alır:The following command retrieves this value for your IoT hub:

    Not

    Değiştirin YourIoTHubName yer tutucu IOT hub'ınız için seçtiğiniz ada sahip.Replace the YourIoTHubName placeholder with the name you choose for your IoT hub.

    az iot hub show-connection-string --policy-name service --name YourIoTHubName
    

    Bu hızlı başlangıçta daha sonra kullanmak için döndürülen değer unutmayın.Note the returned value for later use in this quickstart. Aşağıdaki örneğe benzer şekilde görünür:It looks like the following example:

    "HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}"

Cihaz ve cihaz akışları aracılığıyla hizmeti arasında iletişimCommunicate between the device and the service via device streams

Bu bölümde, hem cihaz tarafında uygulama hem de hizmet tarafı uygulamayı çalıştırın ve ikisi arasındaki iletişim.In this section, you run both the device-side application and the service-side application and communicate between the two.

Hizmet tarafı uygulamayı çalıştırınRun the service-side application

Git IOT hub/hızlı Başlangıçlar/cihaz akışları-Yankı/hizmet sıkıştırması proje klasörünüzde dizin.Go to the iot-hub/Quickstarts/device-streams-echo/service directory in your unzipped project folder. Aşağıdaki bilgiler yararlı bulundurun:Keep the following information handy:

Parametre adıParameter name Parametre değeriParameter value
ServiceConnectionString IOT hub'ınızın hizmeti bağlantı dizesini belirtin.Provide the service connection string of your IoT hub.
DeviceId Daha önce oluşturduğunuz cihaz Kimliğini verin (örneğin, Cihazım).Provide the ID of the device you created earlier (for example, MyDevice).

Derleyin ve kodun aşağıdaki gibi çalıştırın:Compile and run the code as follows:

cd ./iot-hub/Quickstarts/device-streams-echo/service/

# Build the application
dotnet build

# Run the application
# In Linux or macOS
dotnet run "<ServiceConnectionString>" "<MyDevice>"

# In Windows
dotnet run <ServiceConnectionString> <MyDevice>

Not

Aygıt tarafı uygulamayı zamanında yanıt vermezse, bir zaman aşımı meydana gelir.A timeout occurs if the device-side application doesn't respond in time.

Aygıt tarafı uygulamayı çalıştırınRun the device-side application

Git IOT hub/hızlı Başlangıçlar/cihaz-akışları-Yankı/cihaza sıkıştırması proje klasörünüzde dizin.Go to the iot-hub/Quickstarts/device-streams-echo/device directory in your unzipped project folder. Aşağıdaki bilgiler yararlı bulundurun:Keep the following information handy:

Parametre adıParameter name Parametre değeriParameter value
DeviceConnectionString IOT hub'ınızın cihaz bağlantı dizesini belirtin.Provide the device connection string of your IoT Hub.

Derleyin ve kodun aşağıdaki gibi çalıştırın:Compile and run the code as follows:

cd ./iot-hub/Quickstarts/device-streams-echo/device/

# Build the application
dotnet build

# Run the application
# In Linux or macOS
dotnet run "<DeviceConnectionString>"

# In Windows
dotnet run <DeviceConnectionString>

Son adımın sonunda, hizmet tarafı uygulama, cihazınıza bir akış başlatır.At the end of the last step, the service-side application initiates a stream to your device. Akış kurulduktan sonra uygulamayı bir dize arabelleğine hizmetine akış üzerinden gönderir.After the stream is established, the application sends a string buffer to the service over the stream. Bu örnekte, hizmet tarafı uygulamayı yalnızca geri iki uygulama arasındaki başarılı çift yönlü iletişim gösterir cihaz aynı verileri görüntülemektedir.In this sample, the service-side application simply echoes back the same data to the device, which demonstrates a successful bidirectional communication between the two applications.

Konsol, cihaz tarafında çıktısı:Console output on the device side:

Cihaz tarafında konsol çıktısı

Konsol, hizmet tarafında çıktısı:Console output on the service side:

Hizmet tarafında, konsol çıktısı

Akış üzerinden gönderilen trafik IOT hub'ı aracılığıyla tünel yerine doğrudan gönderilir.The traffic being sent over the stream is tunneled through the IoT hub rather than sent directly. Sağlanan avantajların ayrıntıları cihaz akışları avantajları.The benefits provided are detailed in Device streams benefits.

Kaynakları temizlemeClean up resources

Önerilen sonraki makalede devam etmeyi planlıyorsanız, korumak ve önceden oluşturduğunuz kaynakları yeniden.If you plan to continue to the next recommended article, you can keep and reuse the resources you've already created.

Aksi takdirde ücretlerden kaçınmak için bu makalede oluşturduğunuz Azure kaynaklarını silebilirsiniz.Otherwise, to avoid charges, you can delete the Azure resources that you created in this article.

Önemli

Silinen kaynak grupları geri alınamaz.Deleting a resource group is irreversible. Kaynak grubu ve içindeki tüm kaynaklar kalıcı olarak silinir.The resource group and all the resources contained in it are permanently deleted. Yanlış kaynak grubunu veya kaynakları yanlışlıkla silmediğinizden emin olun.Make sure that you don't accidentally delete the wrong resource group or resources. IOT hub'ı korumak istediğiniz kaynakları içeren kaynak grubu içinde oluşturduysanız, yalnızca IOT hub'ı kaynağının, kaynak grubunu silin.If you created the IoT hub inside an existing resource group that contains resources that you want to keep, delete only the IoT hub resource itself, not the resource group.

Bir kaynak grubunu adıyla silmek için:To delete a resource group by name:

  1. Azure portalında oturum açın ve Kaynak grupları’nı seçin.Sign in to the Azure portal, and then select Resource groups.

  2. İçinde ada göre filtrele kutusunda, IOT hub'ınızı içeren kaynak grubunun adını girin.In the Filter by name box, enter the name of the resource group that contains your IoT hub.

  3. Sonuç listesinde, kaynak grubunuzun sağındaki üç nokta simgesini seçin. ( ... ) ve ardından kaynak grubunu Sil.In the result list, to the right of your resource group, select the ellipsis (...), and then select Delete resource group.

    "Kaynak grubunu sil" düğmesi

  4. Kaynak grubu silme işlemini onaylamak için kaynak grubu adı girin ve ardından Sil.To confirm the deletion of the resource group, reenter the resource group name, and then select Delete. Birkaç dakika sonra kaynak grubunu ve içerdiği tüm kaynaklarla silinir.After a few moments, the resource group and all its contained resources are deleted.

Sonraki adımlarNext steps

Bu hızlı başlangıçta, bir IOT hub'ı ayarladınız, kayıtlı bir cihaz, cihaz akışı arasında kurulan C# cihaz ve hizmet tarafında, uygulamalar ve akış uygulamaları arasında sürekli veri göndermek için kullanılır.In this quickstart, you've set up an IoT hub, registered a device, established a device stream between C# applications on the device and service sides, and used the stream to send data back and forth between the applications.

Cihaz akışları hakkında daha fazla bilgi için bkz:To learn more about device streams, see: