Aracılığıyla paylaş


Öğretici: ESPRESSIF ESP32-Azure IoT Setini IoT Hub'a bağlama

Bu öğreticide, ESPRESSIF ESP32-Azure IoT Setini (bundan böyle ESP32 DevKit) Azure IoT'ye bağlamak için FreeRTOS için Azure IoT ara yazılımını kullanacaksınız.

Aşağıdaki görevleri tamamlarsınız:

  • ESP32 DevKit programlamak için bir dizi tümleşik geliştirme aracı yükleme
  • Bir görüntü oluşturun ve ESP32 DevKit üzerine yanıp söner
  • ESP32 DevKit'in bağlanacağı bir Azure IoT hub'ı oluşturmak ve yönetmek için Azure CLI kullanma
  • Bir cihazı IoT hub'ınıza kaydetmek, cihaz özelliklerini görüntülemek, cihaz telemetrisini görüntülemek ve cihazda doğrudan komutları çağırmak için Azure IoT Gezgini'ni kullanın

Önkoşullar

Geliştirme ortamını hazırlama

Araçları yükleme

Geliştirme ortamınızı ayarlamak için önce ESPRESSIF ESP-IDF derleme ortamını yüklersiniz. Yükleyici, cihazınızı kopyalamak, derlemek, yanıp sönmek ve izlemek için gereken tüm araçları içerir.

ESP-IDF araçlarını yüklemek için:

  1. ESP-IDF v5.0 Çevrimdışı yükleyicisini indirin ve başlatın.
  2. Yükleyici yüklenecek bileşenleri listelediğinde, tüm bileşenleri seçin ve yüklemeyi tamamlayın.

Depoyu kopyalama

Tüm örnek cihaz kodunu, kurulum betiklerini ve SDK belgelerini indirmek için aşağıdaki depoyu kopyalayın. Bu depoyu daha önce kopyaladıysanız yeniden yapmanız gerekmez.

Depoyu kopyalamak için aşağıdaki komutu çalıştırın:

git clone --recursive  https://github.com/Azure-Samples/iot-middleware-freertos-samples.git

Windows 10 ve 11 için uzun yolların etkinleştirildiğinden emin olun.

  1. Uzun yolları etkinleştirmek için bkz . Windows 10'da uzun yolları etkinleştirme.

  2. Git'te yönetici izinlerine sahip bir terminalde aşağıdaki komutu çalıştırın:

    git config --system core.longpaths true
    

Bulut bileşenlerini oluşturma

IoT hub oluşturma

Azure CLI'yi kullanarak cihazınız için olayları ve mesajlaşmayı işleyen bir IoT hub'ı oluşturabilirsiniz.

IoT hub'ı oluşturmak için:

  1. CLI uygulamanızı başlatın. Bu hızlı başlangıcın geri kalanında CLI komutlarını çalıştırmak için komut söz dizimini kopyalayın, CLI uygulamanıza yapıştırın, değişken değerlerini düzenleyin ve Enter tuşuna basın.

    • Cloud Shell kullanıyorsanız Cloud Shell bağlantısına sağ tıklayın ve yeni bir sekmede açma seçeneğini belirleyin.
    • Azure CLI'yi yerel olarak kullanıyorsanız CLI konsol uygulamanızı başlatın ve Azure CLI'da oturum açın.
  2. azure-iot uzantısını yüklemek veya geçerli sürüme yükseltmek için az extension add komutunu çalıştırın.

    az extension add --upgrade --name azure-iot
    
  3. Kaynak grubu oluşturmak için az group create komutunu çalıştırın. Aşağıdaki komut, centralus bölgesinde MyResourceGroup adlı bir kaynak grubu oluşturur.

    Not

    İsteğe bağlı olarak alternatif locationbir ayarlayabilirsiniz. Kullanılabilir konumları görmek için az account list-locations komutunu çalıştırın.

    az group create --name MyResourceGroup --location centralus
    
  4. IoT hub'ı oluşturmak için az iot hub create komutunu çalıştırın. IoT hub'ı oluşturmak birkaç dakika sürebilir.

    YourIotHubName. Koddaki bu yer tutucuyu IoT hub'ınız için seçtiğiniz adla değiştirin. IoT hub adı Azure'da genel olarak benzersiz olmalıdır. Bu yer tutucu, bu hızlı başlangıcın geri kalanında benzersiz IoT hub adınızı temsil etmek için kullanılır.

    parametresi, --sku F1 Ücretsiz katmanında IoT hub'ını oluşturur. Ücretsiz katman hub'ları sınırlı bir özellik kümesine sahiptir ve kavram kanıtı uygulamaları için kullanılır. IoT Hub katmanları, özellikleri ve fiyatlandırması hakkında daha fazla bilgi için bkz . Azure IoT Hub fiyatlandırması.

    az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName} --sku F1 --partition-count 2
    
  5. IoT hub'ı oluşturulduktan sonra konsolda JSON çıkışını görüntüleyin ve değeri sonraki bir adımda kullanmak üzere kopyalayın hostName . Değer hostName aşağıdaki örneğe benzer:

    {Your IoT hub name}.azure-devices.net

IoT Explorer'ı yapılandırma

Bu hızlı başlangıcın geri kalanında IoT Gezgini'ni kullanarak ioT hub'ınıza cihaz kaydedebilir, cihaz özelliklerini ve telemetri verilerini görüntüleyebilir ve cihazınıza komut gönderebilirsiniz. Bu bölümde IoT Explorer'ı oluşturduğunuz IoT hub'ına bağlanacak ve genel model deposundan tak çalıştır modellerini okuyacak şekilde yapılandıracaksınız.

IoT hub'ınıza bağlantı eklemek için:

  1. Azure IoT Gezgini'ni yükleyin. Bu araç, Azure IoT kaynaklarını izlemek ve yönetmek için platformlar arası bir yardımcı programdır.

  2. CLI uygulamanızda az iot hub connection-string show komutunu çalıştırarak IoT hub'ınızın bağlantı dizesi alın.

    az iot hub connection-string  show --hub-name {YourIoTHubName}
    
  3. bağlantı dizesi çevresindeki tırnak işaretleri olmadan kopyalayın.

  4. Azure IoT Gezgini'nde soldaki menüden IoT hub'ları'nı seçin.

  5. + Bağlantı ekle'yi seçin.

  6. bağlantı dizesi Bağlantı dizesi kutusuna yapıştırın.

  7. Kaydet'i seçin.

    IoT Gezgini'nde bağlantı ekleme ekran görüntüsü.

Bağlantı başarılı olursa IoT Gezgini Cihazlar görünümüne geçer.

Genel model deposunu eklemek için:

  1. Giriş görünümüne dönmek için IoT Gezgini'nde Giriş'i seçin.

  2. Soldaki menüde Ayarlar'IoT Tak Çalıştır seçin.

  3. uç noktası olan mevcut bir Genel Depo girdisi https://devicemodels.azure.comolduğunu onaylayın.

    Not

    Ortak depoda giriş yoksa + Ekle'yi seçin, açılan menüden Genel depo'yu seçin, uç nokta değerini belirtin https://devicemodels.azure.com ve ardından Kaydet'i seçin.

    Genel depo için tamamlanmış giriş aşağıdaki ekran görüntüsüne benzer:

    IoT Gezgini'nde genel model deposunu ekleme işleminin ekran görüntüsü.

Cihaz kaydetme

Bu bölümde yeni bir cihaz örneği oluşturacak ve oluşturduğunuz IoT hub'ına kaydedacaksınız. Fiziksel cihazınızı daha sonraki bir bölümde güvenli bir şekilde bağlamak için yeni kaydedilen cihazın bağlantı bilgilerini kullanırsınız.

Bir cihazı kaydetmek için:

  1. IoT Gezgini'ndeki giriş görünümünde IoT hub'ları'nı seçin.

  2. Daha önce eklediğiniz bağlantı görünmelidir. Bağlantı özelliklerinin altındaki Cihazları bu hub'da görüntüle'yi seçin.

  3. + Yeni'yi seçin ve cihazınız için bir cihaz kimliği girin; örneğin, mydevice. Diğer tüm özellikleri aynı bırakın.

  4. Oluştur'u belirleyin.

    Azure IoT Explorer cihaz kimliğinin ekran görüntüsü.

  5. Cihaz Kimliği ve Birincil anahtar alanlarını kopyalamak için kopyalama düğmelerini kullanın.

Sonraki bölüme geçmeden önce, önceki adımlardan alınan aşağıdaki değerlerin her birini güvenli bir konuma kaydedin. Cihazınızı yapılandırmak için sonraki bölümde bu değerleri kullanacaksınız.

  • hostName
  • deviceId
  • primaryKey

Cihazı hazırlama

ESP32 DevKit'i Azure'a bağlamak için yapılandırma ayarlarını değiştirir, görüntüyü derler ve görüntüyü cihaza yanıp sönersiniz.

Ortamı ayarlama

ESP-IDF ortamını başlatmak için:

  1. Windows Başlangıç'ı seçin, ESP-IDF 5.0 CMD'yi bulun ve çalıştırın.

  2. ESP-IDF 5.0 CMD'de, daha önce kopyaladığınız iot-middleware-freertos-samples dizinine gidin.

  3. ESP32-Azure IoT Kit proje dizini demos\projects\ESPRESSIF\aziotkit öğesine gidin.

  4. Yapılandırma menüsünü başlatmak için aşağıdaki komutu çalıştırın:

    idf.py menuconfig
    

Yapılandırma ekleme

Kablosuz ağ yapılandırması eklemek için:

  1. ESP-IDF 5.0 CMD'de FreeRTOS Örnek Yapılandırma ---> için Azure IoT ara yazılımı'nı seçin ve Enter tuşuna basın.

  2. Yerel kablosuz ağ kimlik bilgilerinizi kullanarak aşağıdaki yapılandırma ayarlarını yapın.

    Ayar Value
    WiFi SSID {Wi-Fi SSID'niz}
    WiFi Parolası {Wi-Fi parolanız}
  3. Önceki menüye dönmek için Esc'i seçin.

Azure IoT Hub'a bağlanmak için yapılandırma eklemek için:

  1. FreeRTOS Ana Görev Yapılandırması ---> için Azure IoT ara yazılımı'nı seçin ve Enter tuşuna basın.

  2. Aşağıdaki Azure IoT yapılandırma ayarlarını, Azure kaynaklarını oluşturduktan sonra kaydettiğiniz değerlere ayarlayın.

    Ayar Value
    Azure IoT Hub FQDN {Konak adınız}
    Azure IoT Cihaz Kimliği {Cihaz Kimliğiniz}
    Azure IoT Cihaz Simetrik Anahtarı {Birincil anahtarınız}

    Not

    Azure IoT Kimlik Doğrulama Yöntemi ayarında Simetrik Anahtar'ın varsayılan değerinin seçili olduğunu onaylayın.

  3. Önceki menüye dönmek için Esc'i seçin.

Yapılandırmayı kaydetmek için:

  1. Kaydetme seçeneklerini açmak için Shift+S'i seçin. Bu menü, yapılandırmayı geçerli .\aziotkit dizinindeki skconfig adlı bir dosyaya kaydetmenizi sağlar.
  2. Yapılandırmayı kaydetmek için Enter'ı seçin.
  3. Bildirim iletisini kapatmak için Enter'ı seçin.
  4. Yapılandırma menüsünden çıkmak için Q'yi seçin.

Görüntüyü derleyin ve yanıp söner

Bu bölümde ESP32 DevKit'i Azure IoT'ye bağlanırken derlemek, yanıp sönmek ve izlemek için ESP-IDF araçlarını kullanacaksınız.

Not

Bu bölümdeki aşağıdaki komutlarda, kök dizininizin yakınında kısa bir derleme çıkış yolu kullanın. Bunu gerektiren her komutta parametresinden -B sonra derleme yolunu belirtin. Kısa yol, uzun derleme yolu adlarında hatalara neden olabilecek ESPRESSIF ESP-IDF araçlarında mevcut bir sorunu önlemeye yardımcı olur. Aşağıdaki komutlar örnek olarak C:\espbuild yerel yolunu kullanır.

Görüntüyü oluşturmak için:

  1. ESP-IDF 5.0 CMD'de, iot-middleware-freertos-samples\demos\projects\ESPRESSIF\aziotkit dizininden aşağıdaki komutu çalıştırarak görüntüyü oluşturun.

    idf.py --no-ccache -B "C:\espbuild" build 
    
  2. Derleme tamamlandıktan sonra, ikili görüntü dosyasının daha önce belirttiğiniz derleme yolunda oluşturulduğunu onaylayın.

    C:\espbuild\azure_iot_freertos_esp32.bin

Görüntüyü yanıp sönmek için:

  1. ESP32 DevKit'te, aşağıdaki görüntüde vurgulanan Mikro USB bağlantı noktasını bulun:

    ESP32-Azure IoT Kit panosunun fotoğrafı.

  2. Mikro USB kablosunu ESP32 DevKit üzerindeki Mikro USB bağlantı noktasına bağlayın ve bilgisayarınıza bağlayın.

  3. WINDOWS Aygıt Yöneticisi'yi açın ve ESP32 DevKit'in hangi COM bağlantı noktasına bağlı olduğunu öğrenmek için Bağlantı Noktalarını görüntüleyin.

    Bağlı bir cihaz için COM bağlantı noktasını görüntüleyen Windows Aygıt Yöneticisi ekran görüntüsü.

  4. ESP-IDF 5.0 CMD'de aşağıdaki komutu çalıştırın ve Your-COM bağlantı noktası> yer tutucusunu ve köşeli ayraçlarını önceki adımdaki doğru COM bağlantı noktasıyla değiştirin<. Örneğin, yer tutucuyu ile COM3değiştirin.

    idf.py --no-ccache -B "C:\espbuild" -p <Your-COM-port> flash
    
  5. Başarılı bir flash için çıkışın aşağıdaki metinle tamamlandığını onaylayın:

    Hash of data verified
    
    Leaving...
    Hard resetting via RTS pin...
    Done
    

Cihazın Azure IoT Central'a bağlandığını onaylamak için:

  1. ESP-IDF 5.0 CMD'de, izleme aracını başlatmak için aşağıdaki komutu çalıştırın. Önceki bir komutta yaptığınız gibi, Your-COM bağlantı noktası> yer tutucusunu ve köşeli ayraçları cihazın bağlı olduğu COM bağlantı noktasıyla değiştirin<.

    idf.py -B "C:\espbuild" -p <Your-COM-port> monitor
    
  2. Aşağıdaki örneğe benzer yinelenen çıkış bloklarını denetleyin. Bu çıkış, cihazın Azure IoT'ye bağlandığını ve telemetri gönderdiğini onaylar.

    I (50807) AZ IOT: Successfully sent telemetry message
    I (50807) AZ IOT: Attempt to receive publish message from IoT Hub.
    
    I (51057) MQTT: Packet received. ReceivedBytes=2.
    I (51057) MQTT: Ack packet deserialized with result: MQTTSuccess.
    I (51057) MQTT: State record updated. New state=MQTTPublishDone.
    I (51067) AZ IOT: Puback received for packet id: 0x00000008
    I (53067) AZ IOT: Keeping Connection Idle...
    

Cihaz özelliklerini görüntüleme

Cihazlarınızın özelliklerini görüntülemek ve yönetmek için Azure IoT Gezgini'ni kullanabilirsiniz. Aşağıdaki bölümlerde, ESP32 DevKit'i yönetmek ve bunlarla etkileşime geçmek için IoT Gezgini'nde görünür olan Tak ve Kullan özelliklerini kullanırsınız. Bu özellikler, genel model deposunda ESP32 DevKit için yayımlanan cihaz modelini kullanır. IoT Explorer'ı bu öğreticinin önceki bölümlerinde cihaz modelleri için bu depoda arama yapmak üzere yapılandırmıştınız. Çoğu durumda, IoT Gezgini menü seçeneklerini seçerek tak çalıştır kullanmadan aynı eylemi gerçekleştirebilirsiniz. Ancak tak çalıştır özelliğinin kullanılması genellikle gelişmiş bir deneyim sağlar. IoT Gezgini bir tak çalıştır cihazı tarafından belirtilen cihaz modelini okuyabilir ve bu cihaza özgü bilgileri sunabilir.

IoT Gezgini'nde cihazın IoT Tak Çalıştır bileşenlerine erişmek için:

  1. IoT Gezgini'ndeki giriş görünümünde IoT hub'ları'nı ve ardından Bu hub'daki cihazları görüntüle'yi seçin.

  2. Cihazınızı seçin.

  3. IoT Tak Çalıştır bileşenleri'ni seçin.

  4. Varsayılan bileşen'i seçin. IoT Gezgini, cihazınızda uygulanan IoT Tak Çalıştır bileşenlerini görüntüler.

    IoT Gezgini'nde cihazın varsayılan bileşeninin ekran görüntüsü.

  5. Arabirim sekmesinde, cihaz modeli Açıklaması'nda JSON içeriğini görüntüleyin. JSON, cihaz modelindeki her IoT Tak Çalıştır bileşeni için yapılandırma ayrıntılarını içerir.

    IoT Gezgini'ndeki her sekme, cihaz modelindeki IoT Tak Çalıştır bileşenlerinden birine karşılık gelir.

    Sekme Tür Adı Açıklama
    Arayüz Arabirim Espressif ESP32 Azure IoT Kit ESP32 DevKit için örnek cihaz modeli
    Özellikler (yazılabilir) Özellik telemetryFrequencySecs Cihazın telemetri gönderdiği aralık
    Komutlar Command ToggleLed1 LED'i açma veya kapatma
    Komutlar Command ToggleLed2 LED'i açma veya kapatma
    Komutlar Command DisplayText Gönderilen metni cihaz ekranında görüntüler

Azure IoT Gezgini'ni kullanarak cihaz özelliklerini görüntülemek ve düzenlemek için:

  1. Özellikler (yazılabilir) sekmesini seçin. Telemetrinin gönderildiği aralığı görüntüler.

  2. telemetryFrequencySecs Değeri 5 olarak değiştirin ve ardından İstenen değeri güncelleştir'i seçin. Cihazınız artık telemetri göndermek için bu aralığı kullanıyor.

    IoT Gezgini'nde cihazda telemetri aralığını ayarlama işleminin ekran görüntüsü.

  3. IoT Gezgini bir bildirimle yanıt verir.

Cihaz özelliklerini görüntülemek için Azure CLI'yi kullanmak için:

  1. az iot hub device-twin show komutunu çalıştırın.

    az iot hub device-twin show --device-id mydevice --hub-name {YourIoTHubName}
    
  2. Konsol çıkışında cihazınızın özelliklerini inceleyin.

İpucu

Cihaz özelliklerini görüntülemek için Azure IoT Explorer'ı da kullanabilirsiniz. Sol gezinti bölmesinde Cihaz ikizi'ni seçin.

Telemetri görüntüleme

Azure IoT Gezgini ile cihazınızdan buluta telemetri akışını görüntüleyebilirsiniz. İsteğe bağlı olarak, Azure CLI kullanarak aynı görevi gerçekleştirebilirsiniz.

Azure IoT Gezgini'nde telemetriyi görüntülemek için:

  1. IoT Gezgini'nde cihazınızın IoT Tak Çalıştır bileşenleri (Varsayılan Bileşen) bölmesinde Telemetri sekmesini seçin. Yerleşik olay hub'ı kullan seçeneğinin Evet olarak ayarlandığını onaylayın.

  2. Başlat'ı seçin.

  3. Cihaz buluta ileti gönderirken telemetriyi görüntüleyin.

    IoT Gezgini'ndeki cihaz telemetrisinin ekran görüntüsü.

  4. Olayları cihaz modeli tarafından belirtilen veri biçiminde görüntülemek için Modellenmiş olayları göster onay kutusunu seçin.

    IoT Gezgini'nde modellenmiş telemetri olaylarının ekran görüntüsü.

  5. Alma olaylarını sonlandırmak için Durdur'u seçin.

Cihaz telemetrisini görüntülemek için Azure CLI'yi kullanmak için:

  1. az iot hub monitor-events komutunu çalıştırın. Cihazınız ve IoT hub'ınız için Azure IoT'de daha önce oluşturduğunuz adları kullanın.

    az iot hub monitor-events --device-id mydevice --hub-name {YourIoTHubName}
    
  2. Konsolda JSON çıkışını görüntüleyin.

    {
        "event": {
            "origin": "mydevice",
            "module": "",
            "interface": "dtmi:azureiot:devkit:freertos:Esp32AzureIotKit;1",
            "component": "",
            "payload": "{\"temperature\":28.6,\"humidity\":25.1,\"light\":116.66,\"pressure\":-33.69,\"altitude\":8764.9,\"magnetometerX\":1627,\"magnetometerY\":28373,\"magnetometerZ\":4232,\"pitch\":6,\"roll\":0,\"accelerometerX\":-1,\"accelerometerY\":0,\"accelerometerZ\":9}"
        }
    }
    
  3. İzlemeyi sonlandırmak için CTRL+C tuşlarına basın.

Cihazda doğrudan bir yöntem çağırma

Cihazınızda uyguladığınız doğrudan bir yöntemi çağırmak için Azure IoT Explorer'ı da kullanabilirsiniz. Doğrudan yöntemlerin bir adı vardır ve isteğe bağlı olarak bir JSON yükü, yapılandırılabilir bağlantı ve yöntem zaman aşımı olabilir. Bu bölümde, LED'i açan veya kapatan bir yöntemi çağıracaksınız. İsteğe bağlı olarak, Azure CLI kullanarak aynı görevi gerçekleştirebilirsiniz.

Azure IoT Gezgini'nde bir yöntemi çağırmak için:

  1. IoT Gezgini'nde cihazınızın IoT Tak Çalıştır bileşenleri (Varsayılan Bileşen) bölmesinden Komutlar sekmesini seçin.

  2. ToggleLed1 komutu için Gönder komutu'na tıklayın. ESP32 DevKit üzerindeki LED açık veya kapalıdır. IoT Gezgini'nde de bir bildirim görmeniz gerekir.

    IoT Gezgini'nde bir yöntemi çağırmanın ekran görüntüsü.

  3. DisplayText komutu için içerik alanına metin girin.

  4. Gönder komutunu seçin. Metin ESP32 DevKit ekranında görüntülenir.

Azure CLI kullanarak bir yöntemi çağırmak için:

  1. az iot hub invoke-device-method komutunu çalıştırın ve yöntem adını ve yükünü belirtin. Bu yöntem için true ayarı, method-payload LED'in geçerli durumunun tersine geçiş yaptığı anlamına gelir.

    az iot hub invoke-device-method --device-id mydevice --method-name ToggleLed2 --method-payload true --hub-name {YourIoTHubName}
    

    CLI konsolu, cihazdaki yöntem çağrınızın durumunu gösterir ve burada başarılı olduğunu 200 gösterir.

    {
      "payload": {},
      "status": 200
    } 
    
  2. LED durumunu onaylamak için cihazınızı denetleyin.

Sorun giderme ve hata ayıklama

Cihaz kodunu oluştururken, yanıp sönerken veya bağlanırken sorun yaşıyorsanız bkz . Sorun giderme.

Uygulamada hata ayıklamak için bkz . Visual Studio Code ile hata ayıklama.

Kaynakları temizleme

Bu hızlı başlangıçta oluşturulan Azure kaynaklarına artık ihtiyacınız yoksa, kaynak grubunu ve tüm kaynaklarını silmek için Azure CLI'yi kullanabilirsiniz.

Önemli

Silinen kaynak grupları geri alınamaz. Kaynak grubu ve içindeki tüm kaynaklar kalıcı olarak silinir. Yanlış kaynak grubunu veya kaynakları yanlışlıkla silmediğinizden emin olun.

Bir kaynak grubunu adıyla silmek için:

  1. az group delete komutunu çalıştırın. Bu komut kaynak grubunu, IoT Hub'ı ve oluşturduğunuz cihaz kaydını kaldırır.

    az group delete --name MyResourceGroup
    
  2. Kaynak grubunun silindiğini onaylamak için az group list komutunu çalıştırın.

    az group list
    

Sonraki adımlar

Bu öğreticide, FreeRTOS için Azure IoT ara yazılımını içeren özel bir görüntü oluşturmuş ve ardından görüntüyü ESP32 DevKit cihazına yanıp söntebilirsiniz. ESP32 DevKit'i Azure IoT Hub'a bağladınız ve cihazda telemetriyi görüntüleme ve yöntemleri çağırma gibi görevleri yerine çağırdınız.

Sonraki adım olarak, tümleşik geliştirme seçenekleri hakkında daha fazla bilgi edinmek için aşağıdaki makaleyi inceleyin.