- Microsoft Azure IoT Hub nedir?
- Azure IoT Hub oluşturma
- Raspberry Pi ile Azure IoT için Test Devremizi Oluşturmak İçin Gerekli Bileşenler
- Raspberry Pi ile Azure IoT - Donanım Şeması
- Azure IoT Hub'da Veri Yayınlamak için Raspberry Pi'yi Programlama
- Azure IoT Hub'da Veri Yayınlama - Test Etme
Microsoft'un bulut bilişim hizmeti Azure IoT Hub, geliştiricilerin milyarlarca IoT cihazını tek bir platformda bağlamasına, izlemesine ve yönetmesine olanak tanır. Ev otomasyon sistemleri, güvenlik, gözetim ve izleme sistemleri gibi çeşitli IoT uygulamalarında halihazırda kullanılmaktadır. Azure IoT hub'ın yeteneklerini göstermek için, sensör verilerini onunla işlemek için bir DHT11 Sıcaklık ve Nem Sensörü olan Raspberry Pi ile küçük bir devre inşa edeceğiz. Son olarak, sensör verilerini MQTT protokolünü kullanarak Azure IoT sunucusunda yayınlayacağız. Bu öğreticide, bir Azure sunucusunun nasıl kurulup yapılandırılacağını ve bir Raspberry Pi kullanarak nasıl veri gönderileceğini öğreneceğiz.
Microsoft Azure IoT Hub nedir?
Azure IoT Hub, IoT cihazlarını bağlayabilen, izleyebilen ve kontrol edebilen bir yönetilen hizmetler koleksiyonudur. Ayrıca, cihaz üreticilerinin Azure bulut yardımıyla IoT uygulamalarını oluşturmasına, dağıtmasına ve yönetmesine yardımcı olan veri görselleştirme ve analitik ile cihazlar için güvenli iletişim içerir . Azure IoT Hub'ın Cihazdan Cd'ye telemetri verileri, bağlı IoT cihazlarının durumu hakkında bilgi edinmemizi sağlar ve Buluttan Cihaza mesajlar, bağlı cihazlara komutlar ve bildirimler göndermemizi sağlar. Bir örnek, akıllı bir ev otomasyon sistemi kullanarak çeşitli sensör verilerini toplayabilir ve bunları görselleştirmek, depolamak ve yönetmek için Azure IoT Hub'a gönderebiliriz gibi olabilir. Çıkış cihazlarını Azure IoT Hub arayüzünden de kontrol edebiliriz.
IoT uygulaması ve cihazlar için çift yönlü iletişim için merkezi hub, hem cihaz-bulut hem de bulut-cihaz iletişimini destekler, ayrıca cihazdan buluta telemetri, cihazlardan dosya yükleme ve istek-yanıtlama yöntemleri gibi çoklu mesajlaşma modellerini destekler ve son olarak, Her bir cihazın IoT Hub'a güvenli bir şekilde bağlanmasını sağlayan cihaz başına kimlik doğrulama yöntemini kullanabiliriz. Şimdi, Azure IoT Hub'ın temellerini anladığınız gibi, sistemi kurmaya geçelim.
Azure IoT Hub oluşturma
Microsoft Azure hizmetlerini kurmak için gerekli olan tüm kurulumları yapmaya hazırız, ancak bundan önce bir Microsoft hesabınız olduğundan emin olun. Buna sahip değilseniz, kaydolabilirsiniz. Daha sonra portal.azure.com'u kullanarak Azure portalına gidin ve oturum açın.
Giriş yaptıktan sonra, Azure ana sayfasına gitmek seçmek bir kaynak oluşturma düğmesini ve ardından aramak IOT Hub içinde ara Pazaryeri alanında. Arama sonuçlarından IoT Hub'ı seçin ve ardından Oluştur'u seçin. Aşağıdaki resimler size süreç hakkında daha iyi bir fikir verecektir.
Bir IoT Hub Oluşturmak için Gerekli Ayrıntıları Doldurun.
Abonelik bölümünde, hub'ınız için kullanmak üzere aboneliği seçmeniz gerekir. Bizim durumumuzda, bir Deneme hesabı seçiyoruz ve " Ücretsiz Deneme" yi seçtik.
Ardından, Kaynak Grubu Bölümünde kaynak grubunuzu seçin . Bir hesabınız yoksa, Yeni oluştur'a tıklayarak ve Kaynağın adını girerek yeni bir tane oluşturmanız gerekir.
Bölge Bölümünde, tercih ettiğiniz bölgeyi seçmek için açılır menüyü kullanabilirsiniz.
IOT Hub Adı Bölümde, size gereken e hub'ınızdaki için bir isim nter. Bu benzersiz olmalı. Gerekli tüm iletişimler bu isimle yapılacaktır.
"Boyut ve Ölçek" sekmesi altında, " Ücretsiz Katman " ı seçin ve İleri'ye tıklayın. Ardından "İncele + Oluştur" u tıklayın. IoT Hub'ı oluşturmak birkaç dakika sürecektir. Oluşturduğunuz IoT Hub'ın adına tıklayın. Aşağıdaki resimde gösterildiği gibi pencereden Ana Bilgisayar Adını not edin. Ardından, Ayarlar'da Paylaşılan erişim politikalarını tıklayın. Paylaşılan erişim politikaları aşağıdaki resimde vurgulanmıştır. Politika altındaki iothubowner seçeneğine tıklayın. Not edin Birincil anahtar ve Bağlantı dizesi-birincil anahtar gelecek referanslar için. Şimdi, IoT Hub altında Yeni Bir Cihaz Kaydetmek için IoT Cihazlarına tıklayın . Aygıt Gezgini bölmesinde, hub'a bir aygıt eklemek için Ekle'ye tıklayın.
Yeni Cihazlar Sekmesinde Aşağıdaki Bilgileri Doldurun.
- Cihaz Kimliği: Cihaz için Kimlik girin. Cihaz Kimliklerinin benzersiz olması gerekir.
- Kimlik Doğrulama Türü: Bir Simetrik Anahtar seçin.
- Otomatik Anahtar Oluştur: Bu onay kutusunu seçin.
- Cihazı IoT Hub'a Bağlayın: Etkinleştir'e tıklayın.
Cihaz oluşturulduktan sonra, yeni oluşturulan cihazınızı Cihaz Gezgini bölümünde bulabilirsiniz. Cihazın adına tıklayın. Cihazın detaylarını gösterecektir. Not edin Birincil anahtar ve Bağlantı dizesi-birincil anahtar Cihazın. İletişim için ihtiyacımız olduğu için bu önemlidir.
Şimdi, bu bittiğinde, işlerin donanım tarafına geçebiliriz.
Raspberry Pi ile Azure IoT için Test Devremizi Oluşturmak İçin Gerekli Bileşenler
Bu devrenin donanım kısmı çok basit olduğundan, bileşen gereksinimi de çok basittir. Gerekli bileşenlerin bir listesi aşağıda gösterilmiştir.
- Raspberry Pi 3B (Diğer Pi modellerini de kullanabiliriz)
- Mikro SD Kart-16 GB
- DHT11 Sensörü
- Mikro USB 5V, 2.4A Güç kaynağı
Raspberry Pi ile Azure IoT - Donanım Şeması
Raspberry Pi projesi ile Azure IoT için eksiksiz devre şeması aşağıda gösterilmiştir, Fritzing kullanılarak oluşturulmuştur. Devreyi kendiniz yapmak için devre şemasını ve bağlantıları izleyin.
Yukarıdaki devre Sıcaklık ve Nem verilerini Microsoft IoT Hub'a gönderir. Bu devrede Sıcaklık ve Nem verilerini toplamak için DHT11 sensörü kullandık ve veri işleme cihazı olarak Raspberry Pi 3B kullanıyoruz. DHT11 sensörünün üç pimi vardır. VCC ve GND pinleri sensöre 5V DC besleme vermek için kullanılır ve DHT11'in Data çıkış pini Raspberry Pi'nin GPIO4'üne bağlanır. DHT11 Sıcaklık ve Nem Sensörünün Raspberry Pi ile Nasıl Arayüze Edileceğini öğrenmek istiyorsanız konuyla ilgili bir önceki yazımıza göz atabilirsiniz. Bu sensörü IoT Raspberry Pi Hava İstasyonu oluşturmak için de kullandık.
Azure IoT Hub'da Veri Yayınlamak için Raspberry Pi'yi Programlama
Bu proje için kodlamaya başlamadan önce Azure portalda bir Azure bulut kabuğu (CLI) oluşturmamız gerekiyor. Bu birçok yönden kullanışlı olacaktır. Bunun için aşağıda gösterildiği gibi portaldaki Azure bulut kabuğu düğmesine tıklayın. Ardından kırmızıyla işaretlenmiş depolama oluştur seçeneğine tıklayın.
Bir kez yapıldıktan sonra CLI açın ve yüklemek için aşağıdaki komutları çalıştırabilir Azure eklentiyi' s sensör verileri göstermek için kullanılacaktır.
az uzantısı ekle --name azure-cli-iot-ext
Bu yapıldıktan sonra DHT11 sensörüyle iletişim kurmak ve Azure IoT hizmetleri için iletişim sürecini kolaylaştırmak için Raspberry Pi'ye bağımlılıklar kurmamız gerekiyor. Bunun için projede kullanılan bağımlı paketleri kurmak için bir Raspberry Pi Terminali açın.
Öncelikle Raspberry Pi için DHT kütüphanesini indirmemiz, ardından onu kök klasörden çıkartmamız ve kurmak için aşağıdaki komutu çalıştırmamız gerekiyor.
sudo python setup.py install
Başarılı kurulumdan sonra, tüm bağımlı paketleri Azure IoT Hub'a yüklemek için aşağıdaki komutları çalıştırın.
sudo pip3 azure-iot-device sudo pip3 yükle azure-iot-hub sudo pip3 yükle azure-iothub-service-client sudo pip3 install azure-iothub-device-client
Tüm ön koşulları yüklemeyi tamamladıktan sonra, kodu Python'da yazma zamanı. Bunu yapmak için önce tüm kitaplıkları içe aktarın:
azure.iot.device'den rastgele içe aktarma Adafruit_DHT içe aktarma zamanını içe aktarın IoTHubDeviceClient, Message
Bu projede, DHT11 verilerinden gelen verileri işlemek için Raspberry Pi'nin 4. pinini kullanıyoruz, bu nedenle gösterildiği gibi bildirilmesi gerekiyor.
sensor = Adafruit_DHT.DHT11 pin = 4
Ardından, kodun bağlantı dizesini tanımlıyoruz. Daha önce kaydettiğimiz cihaz birincil bağlantı dizenizle değiştirin.
CONNECTION_STRING = "HostName = sensordata.azure-devices.net; DeviceId = ZZZZZ; SharedAccessKey = ZZZZZZZZZZZZZZZZZZ"
Ardından, verileri Azure IoT Hub'a göndermek için kullanılacak bir dizi oluşturuyoruz. Aşağıda gösterildiği gibi yapılabilir.
MSG_SND = '{{"sıcaklık": {sıcaklık}, "nem": {nem}}}'
Daha sonra bir while döngüsü tanımladık, while döngüsünde hem nem hem de sıcaklık verileri Adafruit_DHT.read_retry fonksiyonu kullanılarak işlenir. Ayrıca, iki özel değişken tanımlıyoruz ve çıktı verilerini bu değişkenlere atıyoruz.
True iken: nem, sıcaklık = Adafruit_DHT.read_retry (sensör, pin)
Ardından, daha önce tanımladığımız bağlantı parametreleri kullanılarak IoT Hub'a bağlanmak için bir fonksiyon yazılır.
def iothub_client_init (): client = IoTHubDeviceClient.create_from_connection_string (CONNECTION_STRING) dönüş istemcisi
Son olarak, bir sonraki adımda hem Sıcaklık hem de Nem verileri aşağıdaki kodda gösterilen format kullanılarak Azure Hub'a gönderilir. Ayrıca, kodda herhangi bir hata olup olmadığını belirlemek için bir dene ve yakala yöntemi kullandık.
def iothub_client_telemetry_sample_run (): try: client = iothub_client_init () print ("IoT Hub'a veri gönderiliyor, çıkmak için Ctrl-C'ye basın") True iken: msg_txt_formatted = MSG_SND.format (sıcaklık = sıcaklık, nem = nem) mesaj = Mesaj (msg_txt_formatted) print ("Mesaj gönderiliyor: {}". format (mesaj)) client.send_message (mesaj) print ("Mesaj başarıyla gönderildi") time.sleep (3)
Azure IoT Hub'da Veri Yayınlama - Test Etme
Kodu başarıyla yazdıktan sonra, derleyin ve herhangi bir hata olup olmadığını kontrol edin. Kod bloğu başarıyla derlenmişse, kodu çalıştırın. Terminal penceresinde, "Mesaj başarıyla gönderildi" mesajını görmelisiniz. Pencerenin ekran görüntüsü aşağıda gösterilmiştir:
Şimdi, verileri Azure IoT Hub'da görmek için portala gidin ve CLI Terminaline tıklayın ve içindeki kimlik bilgilerinizi değiştirerek aşağıdaki komutları çalıştırın.
az iot hub izleme olayları --hub-name XYZ --device-id XYZ
Not:
XYZ'yi Hub adınız ve Cihaz kimliğinizle değiştirin.
Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki ekranda gösterilen verileri almalısınız. Bu, Raspberry Pi'den gönderilen verilerle aynıdır.
Bu eğitimin sonunu işaret ediyor, umarım makaleyi beğenmiş ve yeni bir şeyler öğrenmişsindir. Makaleyle ilgili herhangi bir sorunuz varsa aşağıdaki yorum bölümüne bırakabilirsiniz. Veya daha hızlı ve daha iyi yanıt almak için Elektronik Forumumuzu kullanabilirsiniz.