Hızlı Başlangıç: Bir cihazdan IoT Hub 'ına telemetri gönderme ve arka uç uygulamasıyla okuma (C)Quickstart: Send telemetry from a device to an IoT hub and read it with a back-end application (C)

IoT Hub, IoT cihazlarınızdan buluta depolama veya işleme amacıyla yüksek hacimlerde telemetri almanızı sağlayan bir Azure hizmetidir.IoT Hub is an Azure service that enables you to ingest high volumes of telemetry from your IoT devices into the cloud for storage or processing. Bu hızlı başlangıçta, bir simülasyon cihazı uygulamasından bir arka uç uygulamasına işlenmek üzere IoT Hub aracılığıyla telemetri gönderirsiniz.In this quickstart, you send telemetry from a simulated device application, through IoT Hub, to a back-end application for processing.

Bu hızlı başlangıçta, IoT hub’ına telemetri verileri göndermek için C için Azure IoT cihaz SDK’sındaki bir C örnek uygulaması kullanılmaktadır.The quickstart uses a C sample application from the Azure IoT device SDK for C to send telemetry to an IoT hub. Azure IoT cihaz SDK’ları, taşınabilirlik ve geniş platform uyumluluğu için ANSI C (C99) ile yazılır.The Azure IoT device SDKs are written in ANSI C (C99) for portability and broad platform compatibility. Örnek kodu çalıştırmadan önce bir IoT hub’ı oluşturur ve simülasyon cihazını o hub’a kaydedersiniz.Before running the sample code, you will create an IoT hub and register the simulated device with that hub.

Bu makale, Windows için yazılmıştır, ancak bu hızlı başlangıcı Linux üzerinde de tamamlayabilirsiniz.This article written for Windows but you can complete this quickstart on Linux as well.

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

  • Visual Studio 2019 ' i ' masaüstü geliştirme C++ iş yükü etkinleştirilmiş olarak yükler.Install Visual Studio 2019 with the 'Desktop development with C++' workload enabled.

  • En son Git sürümünü yükleyin.Install the latest version of Git.

  • Azure CLı için Microsoft Azure IoT uzantısını Cloud Shell örneğinize eklemek için aşağıdaki komutu çalıştırın.Run the following command to add the Microsoft Azure IoT Extension for Azure CLI to your Cloud Shell instance. IOT uzantısı, Azure CLı 'ye IoT Hub, IoT Edge ve IoT cihaz sağlama hizmeti 'ne (DPS) özel komutlar ekler.The IOT Extension adds IoT Hub, IoT Edge, and IoT Device Provisioning Service (DPS) specific commands to Azure CLI.

    az extension add --name azure-cli-iot-ext
    

Geliştirme ortamını hazırlamaPrepare the development environment

Bu hızlı başlangıç için, C Için Azure IoT cihaz SDK 'sınıkullanacaksınız.For this quickstart, you'll be using the Azure IoT device SDK for C.

Aşağıdaki ortamlar için paketleri ve kitaplıkları yükleyerek SDK’yı kullanabilirsiniz:You can use the SDK by installing the packages and libraries for the following environments:

  • Linux: apt-get PAKETLERI aşağıdaki CPU mimarilerini kullanarak Ubuntu 16,04 ve 18,04 için kullanılabilir: AMD64, arm64, armhf ve i386.Linux: apt-get packages are available for Ubuntu 16.04 and 18.04 using the following CPU architectures: amd64, arm64, armhf, and i386. Daha fazla bilgi için bkz. Ubuntu’da C cihaz istemcisi oluşturmak için apt-get kullanma.For more information, see Using apt-get to create a C device client project on Ubuntu.

  • mbed: Mbed platformda cihaz uygulamaları oluşturan geliştiriciler için Azure IoT Hub Ile dakikalar içinde çalışmaya başlamanızı sağlayacak bir kitaplık ve örnek yayımladık.mbed: For developers creating device applications on the mbed platform, we've published a library and samples that will get you started in minutes witH Azure IoT Hub. Daha fazla bilgi için bkz. Mbed kitaplığını kullanma.For more information, see Use the mbed library.

  • Arduino: Arduino üzerinde geliştirme yapıyorsanız, Arduino IDE kitaplık yöneticisinde bulunan Azure IoT kitaplığı 'ndan yararlanabilirsiniz.Arduino: If you're developing on Arduino, you can leverage the Azure IoT library available in the Arduino IDE library manager. Daha fazla bilgi için bkz. Arduino için Azure IoT Hub kitaplığı.For more information, see The Azure IoT Hub library for Arduino.

  • iOS: IoT Hub cihaz SDK 'Sı, Mac ve iOS cihaz geliştirmesi için CocoaPods olarak sunulmaktadır.iOS: The IoT Hub Device SDK is available as CocoaPods for Mac and iOS device development. Daha fazla bilgi için bkz. Microsoft Azure IoT için iOS Örnekleri.For more information, see iOS Samples for Microsoft Azure IoT.

Bununla birlikte, bu hızlı başlangıçta GitHub 'dan Azure IoT C SDK 'sını klonlamak ve derlemek için kullanılan bir geliştirme ortamı hazırlarsınız.However, in this quickstart, you'll prepare a development environment used to clone and build the Azure IoT C SDK from GitHub. GitHub üzerindeki SDK, bu hızlı başlangıçta yer alan örnek kodu içerir.The SDK on GitHub includes the sample code used in this quickstart.

  1. CMake derleme sisteminiindirin.Download the CMake build system.

    CMake Yüklemeye başlamadan önce Visual Studio önkoşullarının (Visual Studio ve ' iş yükü ile C++masaüstü geliştirme) makinenizde yüklü olması önemlidir.It's important that the Visual Studio prerequisites (Visual Studio and the 'Desktop development with C++' workload) are installed on your machine, before starting the CMake installation. Önkoşullar sağlandıktan ve indirme doğrulandıktan sonra, CMake derleme sistemini yükleyin.Once the prerequisites are in place, and the download is verified, install the CMake build system.

  2. Bir komut istemi veya git bash kabuğu açın ve Azure IoT C SDK 'sını kopyalamak istediğiniz çalışma dizinine gidin.Open a command prompt or Git Bash shell and navigate to a working directory that you want to clone the Azure IoT C SDK into. Aşağıdaki komutu yürüterek Azure IoT C SDK'sı GitHub deposunu kopyalayın:Execute the following command to clone the Azure IoT C SDK GitHub repository:

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

    Bu işlemin tamamlanması için birkaç dakika beklemeniz gerekebilir.You should expect this operation to take several minutes to complete.

  3. Git deposunun kök dizininde bir cmake alt dizini oluşturun ve o klasöre gidin.Create a cmake subdirectory in the root directory of the git repository, and navigate to that folder. Çalışma dizininizden aşağıdaki komutları girin:Enter the following commands from your working directory:

    cd azure-iot-sdk-c
    mkdir cmake
    cd cmake
    
  4. SDK 'nın geliştirme istemci platformunuza özgü bir sürümünü oluşturmak için aşağıdaki komutu çalıştırın.Run the following command to build a version of the SDK specific to your development client platform. cmake dizininde simülasyon cihazı için bir Visual Studio çözümü de oluşturulur.A Visual Studio solution for the simulated device will be generated in the cmake directory.

    cmake ..
    

    Derleyicinizi C++ bulamazsa yukarıdaki komutu çalıştırırken derleme hataları alabilirsiniz. cmakeIf cmake doesn't find your C++ compiler, you might get build errors while running the above command. Bu durumda bu komutu Visual Studio komut isteminde çalıştırmayı deneyin.If that happens, try running this command in the Visual Studio command prompt.

    Derleme başarılı olduktan sonra, son birkaç çıkış satırı aşağıdaki çıkışa benzer olacaktır:Once the build succeeds, the last few output lines will look similar to the following output:

    $ cmake ..
    -- Building for: Visual Studio 15 2017
    -- Selecting Windows SDK version 10.0.16299.0 to target Windows 10.0.17134.
    -- The C compiler identification is MSVC 19.12.25835.0
    -- The CXX compiler identification is MSVC 19.12.25835.0
    
    ...
    
    -- Configuring done
    -- Generating done
    -- Build files have been written to: E:/IoT Testing/azure-iot-sdk-c/cmake
    

IoT hub oluşturmaCreate an IoT hub

Bu bölümde Azure Portalkullanarak IoT Hub 'ı oluşturma açıklanmaktadır.This section describes how to create an IoT hub using the Azure portal.

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

  2. Kaynak oluştur' u seçin ve ardından Market ' i Ara alanına IoT Hub girin.Choose Create a resource, and then enter IoT Hub in the Search the Marketplace field.

  3. Arama sonuçlarından IoT Hub seçin ve ardından Oluştur' u seçin.Select IoT Hub from the search results, and then select Create.

  4. Temel bilgiler sekmesinde, alanları aşağıdaki gibi doldurun:On the Basics tab, complete the fields as follows:

    • Abonelik: Hub 'ınız için kullanılacak aboneliği seçin.Subscription: Select the subscription to use for your hub.

    • Kaynak grubu: Bir kaynak grubu seçin veya yeni bir tane oluşturun.Resource Group: Select a resource group or create a new one. Yeni bir tane oluşturmak için Yeni oluştur ' u seçin ve kullanmak istediğiniz adı girin.To create a new one, select Create new and fill in the name you want to use. Var olan bir kaynak grubunu kullanmak için bu kaynak grubunu seçin.To use an existing resource group, select that resource group. Daha fazla bilgi için bkz. Azure Resource Manager kaynak gruplarını yönetme.For more information, see Manage Azure Resource Manager resource groups.

    • Bölge: Hub 'ınızın bulunmasını istediğiniz bölgeyi seçin.Region: Select the region in which you want your hub to be located. Size en yakın konumu seçin.Select the location closest to you.

    • IoT Hub adı: Hub 'ınız için bir ad girin.IoT Hub Name: Enter a name for your hub. Bu adın küresel olarak benzersiz olması gerekir.This 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.

    Azure portal hub oluşturma

  5. İleri ' yi seçin: Hub 'ınızı oluşturmaya devam etmek için boyut ve ölçek.Select Next: Size and scale to continue creating your hub.

    Azure portal kullanarak yeni bir hub için boyut ve ölçek ayarlama

    Bu ekran aşağıdaki değerleri ayarlamanıza olanak sağlar:This screen allows you to set the following values:

    • Fiyatlandırma ve ölçek katmanı: Seçtiğiniz katman.Pricing and scale tier: Your selected tier. İstediğiniz sayıda özelliğe ve her gün çözümünüz aracılığıyla kaç tane ileti gönderdiğinize bağlı olarak çeşitli katmanlardan seçim yapabilirsiniz.You can choose from several tiers depending on how many features you want and how many messages you send through your solution per day. Ücretsiz katman, test ve değerlendirme için tasarlanmıştır.The free tier is intended for testing and evaluation. 500 cihazların hub 'a ve günde en fazla 8.000 iletiye bağlanmasını sağlar.It allows 500 devices to be connected to the hub and up to 8,000 messages per day. Her Azure aboneliği ücretsiz katmanda bir IoT Hub oluşturabilir.Each Azure subscription can create one IoT Hub in the free tier.

    • IoT Hub birimleri: Günlük birim başına izin verilen ileti sayısı, hub 'ın fiyatlandırma katmanına bağlıdır.IoT Hub units: The number of messages allowed per unit per day depends on your hub's pricing tier. Örneğin, hub 'ın 700.000 ileti girişini desteklemesini istiyorsanız iki adet S1 katmanı birimi seçersiniz.For example, if you want the hub to support ingress of 700,000 messages, you choose two S1 tier units. Diğer katman seçenekleri hakkında daha fazla bilgi için, bkz. doğru IoT Hub katmanını seçme.For details about the other tier options, see Choosing the right IoT Hub tier.

    • Gelişmiş ayarlar > cihazdan buluta bölümler: Bu özellik cihazdan buluta iletileri, iletilerin eşzamanlı okuyucu sayısıyla ilişkilendirir.Advanced Settings > Device-to-cloud partitions: This property relates the device-to-cloud messages to the number of simultaneous readers of the messages. Çoğu hub 'da yalnızca dört bölüm olması gerekir.Most hubs only need four partitions.

  6. Bu öğreticide, varsayılan seçimleri kabul edin ve ardından seçimlerinizi gözden geçirmek için gözden geçir + oluştur ' u seçin.For this tutorial, accept the default choices, and then select Review + create to review your choices. Bu ekrana benzer bir şey görürsünüz.You see something similar to this screen.

    Yeni hub oluşturma bilgilerini gözden geçirin

  7. Yeni hub 'ınızı oluşturmak için Oluştur ' u seçin.Select Create to create your new hub. Hub 'ın oluşturulması birkaç dakika sürer.Creating the hub 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, sanal bir cihazı kaydetmek için IoT uzantısıyla birlikte Azure Cloud Shell kullanacaksınız.In this section, you'll use the Azure Cloud Shell with the IoT extension to register a simulated device.

  1. Cihaz kimliğini oluşturmak için Azure Cloud Shell aşağıdaki komutu çalıştırın.Run the following command in Azure Cloud Shell to create the device identity.

    Youriothubname: Aşağıdaki yer tutucusunu, IoT Hub 'ınız için seçtiğiniz adla değiştirin.YourIoTHubName: Replace this placeholder below with the name you choose for your IoT hub.

    Mycdevice: Bu, kayıtlı cihaz için verilen addır.MyCDevice: This is the name given for the registered device. Gösterilen MyCDevice değerini kullanın.Use MyCDevice as shown. Cihazınız için farklı bir ad seçerseniz, bu adı bu makalede da kullanmanız ve bunları çalıştırmadan önce örnek uygulamalarda cihaz adını güncelleştirmeniz gerekir.If you choose a different name for your device, you'll also need to 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 MyCDevice
    
  2. Kaydettiğiniz cihazın Cihaz bağlantı dizesini almak için Azure Cloud Shell aşağıdaki komutları çalıştırın:Run the following commands in Azure Cloud Shell to get the device connection string for the device you registered:

    Youriothubname: Aşağıdaki yer tutucusunu, IoT Hub 'ınız için seçtiğiniz adla değiştirin.YourIoTHubName: Replace this placeholder below with the name you choose for your IoT hub.

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

    Şu ifadeye benzer şekilde görünen cihaz bağlantı dizesini not edin:Make a note of the device connection string, which looks like:

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

    Bu değeri hızlı başlangıcın ilerleyen bölümlerinde kullanacaksınız.You use this value later in the quickstart.

Sanal telemetri göndermeSend simulated telemetry

Simülasyon cihazı uygulaması, IoT hub’ınız üzerindeki cihaza özgü bir uç noktaya bağlanır ve sanal telemetri olarak bir dize gönderir.The simulated device application connects to a device-specific endpoint on your IoT hub and sends a string as simulated telemetry.

  1. Bir metin düzenleyicisi kullanarak iothub_convenience_sample.c kaynak dosyasını açın ve telemetri verileri göndermek için örnek kodu gözden geçirin.Using a text editor, open the iothub_convenience_sample.c source file and review the sample code for sending telemetry. Dosya, Azure IoT C SDK 'sını kopyaladığınız çalışma dizini altında aşağıdaki konumda bulunur:The file is located in the following location under the working directory where you cloned the Azure IoT C SDK:

    azure-iot-sdk-c\iothub_client\samples\iothub_convenience_sample\iothub_convenience_sample.c
    
  2. connectionString sabitinin bildirimini bulun:Find the declaration of the connectionString constant:

    /* Paste in your device connection string  */
    static const char* connectionString = "[device connection string]";
    

    connectionString sabitinin değerini, önceden not ettiğiniz cihaz bağlantı dizesiyle değiştirin.Replace the value of the connectionString constant with the device connection string you made a note of previously. Ardından iothub_convenience_sample.c üzerindeki değişikliklerinizi kaydedin.Then save your changes to iothub_convenience_sample.c.

  3. Yerel terminal penceresinde, Azure IoT C SDK’sında oluşturduğunuz CMake dizininde yer alan iothub_convenience_sample proje dizinine gidin.In a local terminal window, navigate to the iothub_convenience_sample project directory in the CMake directory that you created in the Azure IoT C SDK. Çalışma dizininizden aşağıdaki komutu girin:Enter the following command from your working directory:

    cd azure-iot-sdk-c/cmake/iothub_client/samples/iothub_convenience_sample
    
  4. CMake öğesini yerel terminal pencerenizde çalıştırarak örneği güncelleştirilmiş connectionString değeriyle derleyin:Run CMake in your local terminal window to build the sample with your updated connectionString value:

    cmake --build . --target iothub_convenience_sample --config Debug
    
  5. Yerel Terminal pencerenizde, sanal cihaz uygulamasını çalıştırmak için aşağıdaki komutu çalıştırın:In your local terminal window, run the following command to run the simulated device application:

    Debug\iothub_convenience_sample.exe
    

    Aşağıdaki ekran görüntüsünde, simülasyon cihazı uygulaması, IoT hub’ınıza telemetri verilerini gönderdiğinde oluşan çıktı gösterilmektedir:The following screenshot shows the output as the simulated device application sends telemetry to the IoT hub:

    Simülasyon cihazını çalıştırma

Hub’ınızdan telemetri okumaRead the telemetry from your hub

Bu bölümde, sanal cihaz tarafından gönderilen cihaz iletilerini izlemek için IoT uzantısıyla birlikte Azure Cloud Shell kullanacaksınız.In this section, you'll use the Azure Cloud Shell with the IoT extension to monitor the device messages that are sent by the simulated device.

  1. Azure Cloud Shell'i kullanarak, IoT hub’ınızdan gelen iletilere bağlanmak ve bu iletileri okumak için aşağıdaki komutu çalıştırın:Using the Azure Cloud Shell, run the following command to connect and read messages from your IoT hub:

    Youriothubname: Aşağıdaki yer tutucusunu, IoT Hub 'ınız için seçtiğiniz adla değiştirin.YourIoTHubName: Replace this placeholder below with the name you choose for your IoT hub.

    az iot hub monitor-events --hub-name YourIoTHubName --output table
    

    Azure CLI kullanarak cihaz iletilerini okuma

Kaynakları temizlemeClean up resources

Bir sonraki önerilen makaleye geçecekseniz oluşturduğunuz kaynakları tutabilir ve yeniden kullanabilirsiniz.If you will be continuing to the next recommended article, you can keep the resources you've already created and reuse them.

Geçmeyecekseniz ücret kesilmesini önlemek için bu makalede oluşturulan Azure kaynaklarını silebilirsiniz.Otherwise, you can delete the Azure resources created in this article to avoid charges.

Ö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 do not accidentally delete the wrong resource group or resources. IoT Hub'ı tutmak istediğiniz kaynakların bulunduğu mevcut bir kaynak grubunda oluşturduysanız kaynak grubunu silmek yerine IoT Hub kaynağını silin.If you created the IoT Hub inside an existing resource group that contains resources you want to keep, only delete the IoT Hub resource itself instead of deleting the resource group.

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

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

  2. Ada göre filtrele metin kutusuna IoT Hub içeren kaynak grubunun adını yazın.In the Filter by name textbox, type the name of the resource group containing your IoT Hub.

  3. Sonuç listesinde kaynak grubunuzun sağında . .. ' ı seçin ve kaynak grubunu silin.To the right of your resource group in the result list, select ... then Delete resource group.

    Sil

  4. Kaynak grubunun silinmesini onaylamanız istenir.You will be asked to confirm the deletion of the resource group. Onaylamak için kaynak grubunuzun adını yeniden yazın ve ardından Sil' i seçin.Type the name of your resource group again to confirm, and then select Delete. Birkaç dakika sonra kaynak grubu ve içerdiği kaynakların tümü silinir.After a few moments, the resource group and all of its contained resources are deleted.

Sonraki adımlarNext steps

Bu hızlı başlangıçta, bir IoT hub’ını ayarladınız, bir cihazı kaydettiniz, C uygulamasını kullanarak hub’a sanal telemetri verileri gönderdiniz ve Azure Cloud Shell'i kullanarak hub’dan telemetri verilerini okudunuz.In this quickstart, you've setup an IoT hub, registered a device, sent simulated telemetry to the hub using a C application, and read the telemetry from the hub using the Azure Cloud Shell.

Azure IoT Hub C SDK’sı ile geliştirme hakkında daha fazla bilgi edinmek için aşağıdaki Nasıl yapılır kılavuzuyla devam edin:To learn more about developing with the Azure IoT Hub C SDK, continue to the following How-to guide: