Öğ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
- Windows 10 veya Windows 11 çalıştıran bir bilgisayar
- Depoyu kopyalamaya yönelik Git
- Donanım
- ESPRESSIF ESP32-Azure IoT Seti
- USB 2.0 Erkek- Mikro USB erkek kablo
- Wi-Fi 2,4 GHz
- Etkin bir Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
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:
- ESP-IDF v5.0 Çevrimdışı yükleyicisini indirin ve başlatın.
- 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.
Uzun yolları etkinleştirmek için bkz . Windows 10'da uzun yolları etkinleştirme.
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:
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.
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
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
location
bir ayarlayabilirsiniz. Kullanılabilir konumları görmek için az account list-locations komutunu çalıştırın.az group create --name MyResourceGroup --location centralus
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
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ğerhostName
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:
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.
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}
bağlantı dizesi çevresindeki tırnak işaretleri olmadan kopyalayın.
Azure IoT Gezgini'nde soldaki menüden IoT hub'ları'nı seçin.
+ Bağlantı ekle'yi seçin.
bağlantı dizesi Bağlantı dizesi kutusuna yapıştırın.
Kaydet'i seçin.
Bağlantı başarılı olursa IoT Gezgini Cihazlar görünümüne geçer.
Genel model deposunu eklemek için:
Giriş görünümüne dönmek için IoT Gezgini'nde Giriş'i seçin.
Soldaki menüde Ayarlar'IoT Tak Çalıştır seçin.
uç noktası olan mevcut bir Genel Depo girdisi
https://devicemodels.azure.com
olduğ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:
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:
IoT Gezgini'ndeki giriş görünümünde IoT hub'ları'nı seçin.
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.
+ 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.Oluştur'u belirleyin.
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:
Windows Başlangıç'ı seçin, ESP-IDF 5.0 CMD'yi bulun ve çalıştırın.
ESP-IDF 5.0 CMD'de, daha önce kopyaladığınız iot-middleware-freertos-samples dizinine gidin.
ESP32-Azure IoT Kit proje dizini demos\projects\ESPRESSIF\aziotkit öğesine gidin.
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:
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.
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} Ö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:
FreeRTOS Ana Görev Yapılandırması ---> için Azure IoT ara yazılımı'nı seçin ve Enter tuşuna basın.
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.
Önceki menüye dönmek için Esc'i seçin.
Yapılandırmayı kaydetmek için:
- 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.
- Yapılandırmayı kaydetmek için Enter'ı seçin.
- Bildirim iletisini kapatmak için Enter'ı seçin.
- 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:
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
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:
ESP32 DevKit'te, aşağıdaki görüntüde vurgulanan Mikro USB bağlantı noktasını bulun:
Mikro USB kablosunu ESP32 DevKit üzerindeki Mikro USB bağlantı noktasına bağlayın ve bilgisayarınıza bağlayın.
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.
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
COM3
değiştirin.idf.py --no-ccache -B "C:\espbuild" -p <Your-COM-port> flash
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:
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
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:
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.
Cihazınızı seçin.
IoT Tak Çalıştır bileşenleri'ni seçin.
Varsayılan bileşen'i seçin. IoT Gezgini, cihazınızda uygulanan IoT Tak Çalıştır bileşenlerini görüntüler.
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:
Özellikler (yazılabilir) sekmesini seçin. Telemetrinin gönderildiği aralığı görüntüler.
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 bir bildirimle yanıt verir.
Cihaz özelliklerini görüntülemek için Azure CLI'yi kullanmak için:
az iot hub device-twin show komutunu çalıştırın.
az iot hub device-twin show --device-id mydevice --hub-name {YourIoTHubName}
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:
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.
Başlat'ı seçin.
Cihaz buluta ileti gönderirken telemetriyi görüntüleyin.
Olayları cihaz modeli tarafından belirtilen veri biçiminde görüntülemek için Modellenmiş olayları göster onay kutusunu seçin.
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:
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}
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}" } }
İ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:
IoT Gezgini'nde cihazınızın IoT Tak Çalıştır bileşenleri (Varsayılan Bileşen) bölmesinden Komutlar sekmesini seçin.
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.
DisplayText komutu için içerik alanına metin girin.
Gönder komutunu seçin. Metin ESP32 DevKit ekranında görüntülenir.
Azure CLI kullanarak bir yöntemi çağırmak için:
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 }
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:
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
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.