Aracılığıyla paylaş


IoT Edge saydam ağ geçidi aracılığıyla cihazları bağlama

IoT Edge cihazı, yerel ağdaki diğer cihazlarla IoT Central uygulamanız arasında bağlantı sağlayan bir ağ geçidi olarak görev yapabilir. Cihaz IoT Central uygulamanıza doğrudan erişemiyorsa bir ağ geçidi kullanırsınız.

IoT Edge saydam ve çeviri ağ geçidi desenlerini destekler. Bu makalede saydam ağ geçidi deseninin nasıl uygulanacakları özetlemektedir. Bu düzende ağ geçidi, aşağı akış cihazından gelen iletileri IoT Central uygulamanızdaki IoT Hub uç noktasına geçirir. Ağ geçidi, ileti geçtikçe iletileri işlemez. IoT Central'da her aşağı akış cihazı ağ geçidi cihazının alt öğesi olarak görünür:

Diagram that shows IoT Edge as a transparent gateway.

Kolaylık olması için bu makalede aşağı akış ve ağ geçidi cihazlarını barındırmak için sanal makineler kullanılmaktadır. Gerçek bir senaryoda aşağı akış cihazı ve ağ geçidi yerel ağınızdaki fiziksel cihazlarda çalışır.

Bu makalede IoT Edge 1.4 çalışma zamanını kullanarak senaryonun nasıl uygulandığı gösterilmektedir.

Önkoşullar

Bu makaledeki adımları tamamlamak için şunlar gerekir:

  • Etkin bir Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

  • Özel uygulama şablonundan oluşturulan bir IoT Central uygulaması. Daha fazla bilgi edinmek için bkz . IoT Central uygulaması oluşturma.

Bu makaledeki adımları izlemek için aşağıdaki dosyaları bilgisayarınıza indirin:

Dağıtım bildirimini içeri aktarma

Her IoT Edge cihazının IoT Edge çalışma zamanını yapılandırmak için bir dağıtım bildirimine ihtiyacı vardır. IoT Edge saydam ağ geçidi için dağıtım bildirimini içeri aktarmak için:

  1. Edge bildirimlerine gidin.

  2. + Yeni'yi seçin, dağıtım bildirimi için Saydam ağ geçidi gibi bir ad girin ve daha önce indirdiğiniz EdgeTransparentGatewayManifest.json dosyasını karşıya yükleyin.

  3. Uygulamanıza dağıtım bildirimini kaydetmek için Oluştur'u seçin.

Cihaz şablonları ekleme

Hem aşağı akış cihazları hem de ağ geçidi cihazı IoT Central'daki cihaz şablonlarını kullanabilir. IoT Central, aşağı akış cihazlarınızla ağ geçidiniz arasındaki ilişkiyi modellemenize olanak tanır, böylece bağlandıktan sonra bunları görüntüleyebilir ve yönetebilirsiniz. Ağ geçidine aşağı akış cihazı eklemek için cihaz şablonu gerekmez.

Aşağı akış cihazı için bir cihaz şablonu oluşturmak için, cihazınızın özelliklerini modelleyen standart bir cihaz şablonu oluşturun. Bu makalede gösterilen örnekte indirdiğiniz termostat cihaz modeli kullanılır.

Aşağı akış cihazı için bir cihaz şablonu oluşturmak için:

  1. Bir cihaz şablonu oluşturun ve şablon türü olarak IoT cihazı'nı seçin.

  2. Sihirbazın Özelleştir sayfasında, cihaz şablonu için Thermostat gibi bir ad girin.

  3. Cihaz şablonunu oluşturduktan sonra Modeli içeri aktar'ı seçin. Daha önce indirdiğiniz thermostat-1.json dosyası gibi bir model seçin.

  4. Termostat için bazı varsayılan görünümler oluşturmak için görünümler'i ve ardından Varsayılan görünümleri oluştur'u seçin.

  5. Cihaz şablonunu yayımlayın.

IoT Edge saydam ağ geçidi cihazı için cihaz şablonu oluşturmak için:

  1. Bir cihaz şablonu oluşturun ve şablon türü olarak Azure IoT Edge'i seçin.

  2. Sihirbazın Özelleştir sayfasında, cihaz şablonu için Edge Ağ Geçidi gibi bir ad girin.

  3. Sihirbazın Özelleştir sayfasında Bu bir ağ geçidi cihazıdır'ı işaretleyin.

  4. Gözden Geçir sayfasında Oluştur'u seçin.

  5. Model oluştur sayfasında Özel model'i seçin.

  6. İlişkiler'de aşağı akış cihaz şablonuna bir giriş ekleyin.

Aşağıdaki ekran görüntüsünde, Thermostat cihaz şablonunu kullanan aşağı akış cihazlarına sahip bir IoT Edge ağ geçidi cihazının İlişkiler sayfası gösterilmektedir:

Screenshot showing IoT Edge gateway device template relationship with a thermostat downstream device template.

Önceki ekran görüntüsünde modül tanımlanmamış bir IoT Edge ağ geçidi cihaz şablonu gösterilmektedir. IoT Edge çalışma zamanı aşağı akış cihazlarından gelen iletileri doğrudan IoT Central'a ilettiğinden saydam ağ geçidi herhangi bir modül gerektirmez. Ağ geçidinin telemetri göndermesi, özellikleri eşitlemesi veya komutları işlemesi gerekiyorsa, bu özellikleri kök bileşende veya modülde tanımlayabilirsiniz.

Ağ geçidini ve aşağı akış cihaz şablonlarını yayımlamadan önce gerekli bulut özelliklerini ve görünümlerini ekleyin.

Cihazları ekleme

Cihazları IoT Central uygulamanıza eklediğinizde, aşağı akış cihazlarıyla saydam ağ geçidi arasındaki ilişkiyi tanımlayabilirsiniz.

Cihazları eklemek için:

  1. IoT Central uygulamanızdaki cihazlar sayfasına gidin.

  2. Saydam ağ geçidi IoT Edge cihazının bir örneğini ekleyin. Cihazı eklediğinizde Saydam ağ geçidi dağıtım bildirimini seçtiğinizden emin olun. Bu makalede ağ geçidi cihaz kimliği şeklindedir edgegateway.

  3. Aşağı akış cihazının bir veya daha fazla örneğini ekleyin. Bu makalede aşağı akış cihazları, ve kimliklerine sahip termostatlardır thermostat1thermostat2.

  4. Cihaz listesinde aşağı akış cihazlarının her birini seçin ve Ağ geçidine ekle'yi seçin.

Aşağıdaki ekran görüntüsünde, Aşağı Akış Cihazları sayfasında bir ağ geçidine bağlı cihazların listesini görüntüleyebilirsiniz:

Screenshot that shows the list of downstream devices connected to a transparent gateway.

Saydam bir ağ geçidinde aşağı akış cihazları ağ geçidi tarafından barındırılan özel bir modüle değil ağ geçidinin kendisine bağlanır.

Cihazları dağıtmadan önce şunları yapmanız gerekir:

  • IoT Central uygulamanızın Kimlik Kapsamı .
  • Ağ geçidi ve aşağı akış cihazları için cihaz kimliği değerleri.
  • Ağ geçidi ve aşağı akış cihazları için birincil anahtar değerleri.

Bu değerleri bulmak için cihaz listesindeki her cihaza gidin ve Bağlan seçin. Devam etmeden önce bu değerleri not edin.

İpucu

Önce cihazlar için cihaz şablonları oluşturmadan cihazları bağlayabilir ve ilişkiler kurabilirsiniz. Atanmamış bir ağ geçidi cihazına atanmamış bir aşağı akış cihazı ekleyebilirsiniz.

Ağ geçidini ve cihazları dağıtma

Bu senaryoyu denemenize izin vermek için aşağıdaki adımlarda ağ geçidi ve aşağı akış cihazlarının Azure sanal makinelerine nasıl dağıtılacağı gösterilmektedir.

İpucu

IoT Edge çalışma zamanını fiziksel bir cihaza dağıtmayı öğrenmek için IoT Edge belgelerindeki IoT Edge cihazı oluşturma bölümüne bakın.

Saydam ağ geçidi senaryoyu denemek için aşağıdaki düğmeyi seçerek iki Linux sanal makinesi dağıtın. Bir sanal makinede IoT Edge 1.4 çalışma zamanı yüklüdür ve saydam IoT Edge ağ geçididir. Diğer sanal makine, simülasyon termostat telemetrisi göndermek için kod çalıştırdığınız aşağı akış cihazıdır:

Deploy to Azure Button

İki sanal makine dağıtılıp çalıştırıldığında IoT Edge ağ geçidi cihazının edgegateway sanal makinede çalıştığını doğrulayın:

  1. IoT Central uygulamanızdaki Cihazlar sayfasına gidin. IoT Edge ağ geçidi cihazı IoT Central'a bağlıysa durumu Sağlandı olur.

  2. IoT Edge ağ geçidi cihazını açın ve Modüller sayfasında modüllerin durumunu doğrulayın. IoT Edge çalışma zamanı başarıyla başlatıldıysa, $edgeAgent ve $edgeHub modüllerinin durumu Çalışıyor olur:

    Screenshot showing the $edgeAgent and $edgeHub version 1.4 modules running on the IoT Edge gateway.

    İpucu

    Sanal makine başlatılırken ve cihaz IoT Central uygulamanızda sağlanırken birkaç dakika beklemeniz gerekebilir.

Ağ geçidini yapılandırma

IoT Edge cihazınızın saydam bir ağ geçidi olarak çalışması için, aşağı akış cihazlarına kimliğini kanıtlamak için bazı sertifikalara ihtiyacı vardır. Bu makalede tanıtım sertifikaları kullanılır. Üretim ortamında, sertifika yetkilinizin sertifikalarını kullanın.

Tanıtım sertifikalarını oluşturmak ve ağ geçidi cihazınıza yüklemek için:

  1. Ağ geçidi cihazı sanal makinenize bağlanmak ve bu makinede oturum açmak için SSH kullanın.

  2. IoT Edge deposunu kopyalamak ve tanıtım sertifikalarınızı oluşturmak için aşağıdaki komutları çalıştırın:

    # Clone the repo
    cd ~
    git clone https://github.com/Azure/iotedge.git
    
    # Generate the demo certificates
    mkdir certs
    cd certs
    cp ~/iotedge/tools/CACertificates/*.cnf .
    cp ~/iotedge/tools/CACertificates/certGen.sh .
    ./certGen.sh create_root_and_intermediate
    ./certGen.sh create_edge_device_ca_certificate "mycacert"
    

    Önceki komutları çalıştırdıktan sonra, aşağıdaki dosyalar sonraki adımlarda kullanılmaya hazırdır:

    • ~/certs/certs/azure-iot-test-only.root.ca.cert.pem - IoT Edge senaryolarını test etmek için diğer tüm tanıtım sertifikalarını yapmak için kullanılan kök CA sertifikası.
    • ~/certs/certs/iot-edge-device-mycacert-full-chain.cert.pem - IoT Edge yapılandırma dosyasından başvurulan bir cihaz CA sertifikası. Bir ağ geçidi senaryosunda bu CA sertifikası, IoT Edge cihazının aşağı akış cihazlarına kimliğini nasıl doğrular?
    • ~/certs/private/iot-edge-device-mycacert.key.pem - Cihaz CA sertifikasıyla ilişkili özel anahtar.

    Bu tanıtım sertifikaları hakkında daha fazla bilgi edinmek için bkz . IoT Edge cihaz özelliklerini test etmek için tanıtım sertifikaları oluşturma.

  3. config.toml dosyasını bir metin düzenleyicisinde açın. Örneğin:

    sudo nano /etc/aziot/config.toml
    
  4. Yapılandırma dosyasında aşağıdaki ayarları bulun. Sertifika ayarlarını aşağıdaki gibi ekleyin:

    trust_bundle_cert = "file:///home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem"
    
    [edge_ca]
    cert = "file:///home/AzureUser/certs/certs/iot-edge-device-ca-mycacert-full-chain.cert.pem"
    pk = "file:///home/AzureUser/certs/private/iot-edge-device-ca-mycacert.key.pem"
    

    Önceki örnekte AzureUser olarak oturum açtığınız ve "mycacert" adlı bir cihaz CA sertifikası oluşturduğunuz varsayılır.

  5. Değişiklikleri kaydedin ve IoT Edge çalışma zamanını yeniden başlatın:

    sudo iotedge config apply
    

Değişikliklerinizden sonra IoT Edge çalışma zamanı başarıyla başlatılırsa $edgeAgent ve $edgeHub modüllerinin durumu IoT Central'daki ağ geçidi cihazınızın Modüller sayfasında Çalışıyor olarak değişir.

Çalışma zamanı başlatılmazsa IoT Edge yapılandırma dosyasında yaptığınız değişiklikleri denetleyin ve bkz . IoT Edge cihazınızda sorun giderme.

Saydam ağ geçidiniz artık yapılandırıldı ve aşağı akış cihazlarından telemetriyi iletmeye başlamaya hazır.

Aşağı akış cihazı sağlama

IoT Central, IoT Central'da cihaz sağlamak için Cihaz Sağlama Hizmeti'ne (DPS) dayanır. Şu anda IoT Edge, IoT Central uygulamanıza aşağı akış cihazı sağlamak için DPS'yi kullanamıyor. Aşağıdaki adımlarda cihazı el ile sağlama adımları gösterilmektedir thermostat1 . Bu adımları tamamlamak için Python yüklü bir ortamınız ve İnternet bağlantınız olmalıdır. Geçerli Python sürümü gereksinimleri için Azure IoT Python SDK'sını denetleyin. Azure Cloud Shell'de Python önceden yüklenmiş:

  1. Modülü yüklemek azure.iot.device için aşağıdaki komutu çalıştırın:

    pip install azure.iot.device
    
  2. Cihaz sağlamayı yürüten Python betiğini indirmek için aşağıdaki komutu çalıştırın:

    wget https://raw.githubusercontent.com/Azure-Samples/iot-central-docs-samples/main/transparent-gateway-1-4/provision_device.py
    
  3. IoT Central uygulamanızda aşağı akış cihazını sağlamak thermostat1 için ve {your device primary key}yerine {your application id scope} aşağıdaki komutları çalıştırın. Cihazları IoT Central uygulamanıza eklerken bu değerleri not edindiniz:

    export IOTHUB_DEVICE_DPS_DEVICE_ID=thermostat1
    export IOTHUB_DEVICE_DPS_ID_SCOPE={your application id scope}
    export IOTHUB_DEVICE_DPS_DEVICE_KEY={your device primary key}
    python provision_device.py
    

IoT Central uygulamanızda, cihaz için Cihaz durumunun thermostat1 artık Sağlandığını doğrulayın.

Aşağı akış cihazı yapılandırma

Önceki bölümde, sanal makineyi ağ geçidi olarak çalışmasını sağlamak için tanıtım sertifikalarıyla yapılandırmıştınız edgegateway . Sanal leafdevice makine, IoT Central'a bağlanmak için ağ geçidini kullanan bir termostat simülatörü yüklemenize hazırdır.

Sanal makine, leafdevice sanal makinede oluşturduğunuz kök CA sertifikasının bir kopyasına edgegateway ihtiyaç duyar. /home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem dosyasını sanal makinedeki edgegateway giriş dizininize leafdevice kopyalayın. Linux sanal makineleri arasında dosya kopyalamak için scp komutunu kullanabilirsiniz. Örneğin, makineden leafdevice :

scp AzureUser@edgegateway:/home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem .

Aşağı akış cihazından ağ geçidine bağlantıyı denetlemeyi öğrenmek için bkz . Ağ geçidi bağlantısını test etme.

Termostat simülatörünü sanal makinede leafdevice çalıştırmak için:

  1. Sanal makinenize bağlanmak ve sanal makinenizde leafdevice oturum açmak için SSH kullanın.

  2. Python örneğini giriş dizininize indirin:

    cd ~
    wget https://raw.githubusercontent.com/Azure-Samples/iot-central-docs-samples/main/transparent-gateway-1-4/simple_thermostat.py
    
  3. Azure IoT cihazı Python modülünü yükleyin:

    sudo apt update
    sudo apt install python3-pip
    pip3 install azure.iot.device
    
  4. Örneği yapılandırmak için ortam değişkenlerini ayarlayın. değerini, daha önce not aldığınız birincil anahtarla thermostat1 değiştirin{your device shared key}. Bu değişkenler ağ geçidi sanal makinesinin edgegateway adını ve termostat cihazının kimliğinin olduğunu thermostat1varsayar:

    export IOTHUB_DEVICE_SECURITY_TYPE=connectionString
    export IOTHUB_DEVICE_CONNECTION_STRING="HostName=edgegateway;DeviceId=thermostat1;SharedAccessKey={your device shared key}"
    export IOTEDGE_ROOT_CA_CERT_PATH=~/azure-iot-test-only.root.ca.cert.pem
    

    bağlantı dizesi ioT hub'ının adını değil ağ geçidi cihazının adını nasıl kullandığına dikkat edin.

  5. Kodu çalıştırmak için aşağıdaki komutu kullanın:

    python3 simple_thermostat.py
    

    Bu komutun çıktısı şöyle görünür:

    Connecting using Connection String HostName=edgegateway;DeviceId=thermostat1;SharedAccessKey={your device shared key}
    Listening for command requests and property updates
    Press Q to quit
    Sending telemetry for temperature
    Sent message
    Sent message
    Sent message
    ...
    

    İpucu

    Aşağı akış cihazı bağlanmaya çalıştığında bir hata görürseniz. Cihaz sağlama adımlarını yeniden çalıştırmayı deneyin.

  6. IoT Central'da telemetriyi görmek için termostat1 cihazının Genel Bakış sayfasına gidin:

    Screenshot showing telemetry from the downstream device.

    Hakkında sayfasında aşağı akış cihazından gönderilen özellik değerlerini görüntüleyebilir ve Komut sayfasında aşağı akış cihazında komutları çağırabilirsiniz.