Azure IoT Hub Microsoft Azure hizmetidir ve IoT cihazlarınızdan, örneğin AZ3166 IoT Geliştirici Kiti, buluta yüksek hacimli telemetri verilerini almak için kullanılmasını sağlar. Azure IoT Hub sayesinde, IoT uygulamaları ile cihazlar arasındaki iletişim kesinlikle korunur ve güvence altına alınır.
Bugünün eğitiminde, hızlı bir şekilde öğrenmenize yardımcı olacağız:
- ODYSSEY – X86J4105’e bağlanarak sensör verilerini nasıl okuyacağınızı
- Verileri Microsoft Azure IoT Hub’a göndererek, bu verilerin daha fazla IoT uygulamasında görüntülenmesini veya işlenmesini.
Neden ODYSSEY – X86J4105’i Azure IoT Hub ile bağlamak için seçmelisiniz?
ODYSSEY – X86J4105 nedir?
ODYSSEY, Edge Computing uygulamaları oluşturmanıza olanak tanıyan bir SBC (Tek Kart Bilgisayar) serisidir. ODYSSEY – X86J4105, 2.5GHz’e kadar patlayan Quad-Core 1.5GHz CPU’ya sahip Intel Celeron J4105 tabanlıdır. Standart bir bilgisayarın ihtiyaç duyduğu tüm harika özelliklere sahiptir; 8GB LPDDR4 RAM, 64GB eMMC Depolama (isteğe bağlı), yerleşik Wi-Fi/BLE, Çift Gigabit Ethernet Portları, Ses Girişi ve Çıkışı, USB Portları, HDMI, SATA Bağlantıları, PCIe vb.
ODYSSEY – X86J4105’e fare, klavye ve monitör ile basit bağlantılar yaparak hemen bir Masaüstü Mini PC elde edersiniz. eMMC versiyonları ile Windows 10 Enterprise önceden yüklenmiş olarak gelir!

Hadi başlayalım
ODYSSEY – X86J4105’i Azure IoT Hub’a bağlamak için yazılım ve donanımı hazırlayın!
- ODYSSEY – X86J4105’e Python 3 kurun
- Bir Microsoft Azure hesabı. Eğer yoksa, başlamadan önce bir ücretsiz hesap oluşturun.
- Azure CLI‘yı indirin ve kurun; Azure kaynaklarını yönetmek için bir komut satırı aracıdır.
Azure CLI kurulduktan sonra, cmd veya Powershell açın ve az komutunu çalıştırın, aşağıdaki gibi bir ekran görmelisiniz:
Azure CLI Ön Yapılandırmaları
Azure’a giriş yapın
cmd veya Powershell açın ve az login komutunu çalıştırın. Bir tarayıcı penceresi açılacak ve Microsoft Azure hesabınıza giriş yapmanız istenecektir.
Azure CLI için Microsoft IoT Azure Uzantılarını ekleme
Microsoft Azure IoT Uzantısını Azure CLI’ye eklemek için aşağıdaki komutu çalıştırın. IoT Uzantısı, Azure CLI’ye IoT Hub, IoT Edge ve IoT Cihaz Sağlama Servisi (DPS) ile ilgili komutlar ekler.
az extension add --name azure-cli-iot-ext
Bir IoT Hub kurma
Bu bölüm, Azure portalını kullanarak bir IoT Hub oluşturmanın nasıl yapılacağını açıklar:
- Azure portalına giriş yapın.
- Bir kaynak oluşturmayı seçin ve Marketplace’de IoT Hub’ı arayın.
- IoT Hub’ı seçin ve Oluştur’a tıklayın.
- Temel bilgiler sekmesinde, aşağıdaki alanları doldurun:
- Abonelik: Hub’ınız için kullanmak üzere aboneliği seçin.
- Kaynak Grubu: Bir kaynak grubu seçin veya yeni bir tane oluşturun. Yeni bir tane oluşturmak için Yeni oluştur seçeneğini seçin ve kullanmak istediğiniz ismi doldurun.
- Bölge: Hub’ınızın bulunacağı bölgeyi seçin. Size en yakın bölgeyi seçin.
- IoT Hub Adı: IoT hub’ınız için bir isim girin. Bu isim küresel olarak benzersiz olmalıdır. İsim mevcutsa, yeşil bir onay işareti görünecektir.
Önemli Not: IoT hub, bir DNS uç noktası olarak kamuya açık olarak keşfedilebilir, bu nedenle IoT Hub’ı adlandırırken hassas bilgilerden kaçınmaya dikkat edin.

- İleri: Boyut ve ölçek seçeneğini seçin:
- Fiyatlandırma ve ölçek katmanı: Şu an için F1: Ücretsiz katman seçin. Çözümünüz aracılığıyla günde kaç mesaj gönderdiğinize bağlı olarak birkaç katman arasından seçim yapabilirsiniz.
- Ayarları gözden geçirmek için Gözden geçir + oluştur sekmesini seçin ve yeni IoT Hub’ınızı oluşturmak için Oluştur butonuna tıklayın. IoT oluşturma işlemi birkaç dakika sürebilir.

Bir Cihaz Kaydetme
Bir cihazın bağlanabilmesi için IoT Hub’ınızda kaydedilmesi gerekir:
-
cmdveyaPowershellüzerinde IoT Hub CLI uzantısını eklemek ve cihaz kimliğini oluşturmak için aşağıdaki komutu çalıştırın:
az iot hub device-identity create --hub-name iot-test-1 --device-id MyPythonDevice
hub-name-> Oluşturduğunuz IoT Hub adınıiot-test-1ile değiştirin.device-id->MyPythonDevice. Bu, kaydedilen cihazın adıdır. Benim durumumda, MyPythonDevice cihaz kimliğidir.
- Kayıtlı cihaz için cihaz bağlantı dizesini almak için aşağıdaki komutları çalıştırın.
az iot hub device-identity show-connection-string --hub-name iot-test-1 --device-id MyPythonDevice --output table
Cihaz bağlantı dizesini not edin, şu şekilde görünür: HostName={YourIoTHubName}.azure-devices.net;DeviceId=MyPythonDevice;SharedAccessKey={YourSharedAccessKey}. Bu daha sonra kullanılacaktır.
- Yukarıdaki gibi
hub-namevedevice-iddeğerlerinizi değiştirin.
Arduino Core Kullanarak Veri Toplama
Bu bölüm, sensör değerlerini okumak ve okumaları Serial monitöre yazdırmak için basitçe Arduino çekirdek kullanır; bu veriler başka bir yerden Python ile okunabilir.
- Başlarken bölümünü takip ederek Arduino IDE‘yi indirin, kurun ve yapılandırın.
- Grove Işık sensörünün sinyal kablosunu ODYSSEY – X86J4105’in A0 pinine ve ayrıca güç ve toprak bağlantılarına bağlayın. Daha fazla bilgi için Başlarken bölümündeki Pinout diyagramına bakın.
- Arduino IDE kullanarak ODYSSEY – X86J4105’e aşağıdaki Kodu yükleyin. Doğru Board ve Port‘u seçmeyi unutmayın. Burada kullanılacak olan Port‘u not edin; benim durumumda port
COM4.
Arduino Kodu
#define LIGHT A0
#define Serial SerialUSB
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(LIGHT, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
int state = analogRead(LIGHT);
Serial.println(state);
delay(500);
}
- Arduino IDE’de programın doğru çalışıp çalışmadığını kontrol etmek için Serial Monitor seçeneğini açın.
Işık Sensörü Okumalarını Azure IoT Hub’a Gönderme
Işık sensörü okumaları Serial’e yazdırılır ve bu verileri çıkarmak ve Azure IoT Hub’a göndermek için Python kullanılır.
- Open
Powershellve gerekli python kütüphanelerini yüklemek için aşağıdaki komutu çalıştırın.
pip install azure-iot-device pip install pyserial
- Aşağıdaki Python kodunu kopyalayın ve Yerel Sürücünüze kaydedin. Aşağıdaki değişiklikleri yapmak için bir metin düzenleyici kullanın.
-
serialPortdeğişkeninin değerini daha önce not aldığımız Seri Port ile değiştirin. -
CONNECTION_STRINGdeğişkeninin değerini daha önce not aldığımız cihaz bağlantı dizesi ile değiştirin.
-
Python Kodu
# Copyright (c) Microsoft. Tüm hakları saklıdır.
# MIT lisansı altında lisanslıdır. Tam lisans bilgileri için proje kökündeki LICENSE dosyasına bakın.
import time
import serial
# IoT Hub için Python Cihaz SDK'sını kullanma:
# https://github.com/Azure/azure-iot-sdk-python
# Örnek, IoT Hub'ınızdaki cihaz spesifik MQTT uç noktasına bağlanır.
from azure.iot.device import IoTHubDeviceClient, Message
# Arduino Seri'den okuma ayarları
serialPort= "COM4" # Bunu kendi Seri Portunuza değiştirin, Arduino IDE'de kontrol edin
baudRate = 115200
ser = serial.Serial(serialPort, baudRate, timeout=0.5)
# Cihazı IoT hub'ınızla kimlik doğrulamak için cihaz bağlantı dizesi.
# Azure CLI kullanarak:
# az iot hub device-identity show-connection-string --hub-name {YourIoTHubName} --device-id MyNodeDevice --output table
CONNECTION_STRING = "HostName=iot-test-1.azure-devices.net;DeviceId=MyPythonDevice;SharedAccessKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# IoT Hub'a gönderilecek JSON mesajını tanımlayın.
MSG_TXT = '{{"Light": {light}}}'
def iothub_client_init():
# Bir IoT Hub istemcisi oluşturun
client = IoTHubDeviceClient.create_from_connection_string(CONNECTION_STRING)
return client
def iothub_client_telemetry_sample_run():
try:
client = iothub_client_init()
print ( "IoT Hub cihazı periyodik mesajlar gönderiyor, çıkmak için Ctrl-C'ye basın" )
while True:
# Simüle edilmiş telemetri değerleri ile mesajı oluşturun.
time.sleep(0.1)
light = ser.readline().decode("UTF-8")[:-2]
if light:
msg_txt_formatted = MSG_TXT.format(light=light)
message = Message(msg_txt_formatted)
# Mesajı gönderin.
print( "Mesaj gönderiliyor: {}".format(message) )
client.send_message(message)
print ( "Mesaj başarıyla gönderildi" )
time.sleep(1)
except KeyboardInterrupt:
print ( "IoTHubClient örneği durduruldu" )
ser.close()
if __name__ == '__main__':
print ( "IoT Hub Hızlı Başlangıç #1 - Simüle edilmiş cihaz" )
print ( "Çıkmak için Ctrl-C'ye basın" )
iothub_client_telemetry_sample_run()
-
Powershelliçinde, python dosyasını kaydettiğiniz dizine gidin. Sensör verilerini Azure IoT Hub’a göndermek için Python betiğini çalıştırın.
Not: Benim durumumda, Python dosyasının adı SendingData.py, komutu kaydettiğiniz dosya adıyla değiştirin.
python3 SendingData.py
Aşağıdaki ekran görüntüsü, sensör verilerinin Azure IoT Hub’a gönderilmesinin çıktısını göstermektedir.
Azure IoT Hub’dan Veri Okuma
IoT Hub CLI uzantısı, IoT Hub’daki hizmet tarafı Olay uç noktasına bağlanabilir. Uzantı, cihazımızdan gönderilen cihazdan buluta mesajları alır.
Aşağıdaki komutu herhangi bir terminalde çalıştırın ve Azure IoT Hub’a gönderilen mesajları izlemeye başlayabilirsiniz.
az iot hub monitor-events --hub-name iot-test-1 --device-id MyPythonDevice
-
hub-namevedevice-iddeğerlerinizi yukarıdaki gibi değiştirin.
Aşağıdaki ekran görüntüsü, ODYSSEY – X86J4105’ten IoT Hub’a gönderilen mesajları göstermektedir. Bu veriler işlenebilir veya görüntülenebilir.

Microsoft Power BI Kullanarak Sensör Verilerinin Gerçek Zamanlı Görselleştirilmesi
Bu bölümde, ışık sensörü okumalarını gerçek zamanlı olarak görüntülemek için Microsoft Power BI‘yi kullanacağız. Eğer bir Power BI hesabınız yoksa, başlamadan önce ücretsiz bir hesap oluşturun.
Not: Tüm önceki adımları takip ettiğinizden ve mesajların IoT Hub tarafından başarıyla alındığından emin olun.
IoT Hub’ınıza bir tüketici grubu ekleyin
Tüketici grupları uygulamaların ve Azure hizmetlerinin aynı Olay Hub uç noktasından bağımsız olarak veri tüketmesine olanak tanıyan olay akışına bağımsız görünümler sağlar.
Bir tüketici grubu eklemek için:
- Azure portalı‘na giriş yapın.
- IoT Hub’ınızı açın, Yerleşik uç noktalar‘ı seçin, Tüketici Grupları‘nın altında yeni bir tüketici grubu oluşturmak için bir ad girin ve Kaydet butonuna tıklayın.

Benim durumumda, lightsensor yeni tüketici grubudur.
Bir Akış Analitik Görevi Oluşturun, Yapılandırın ve Çalıştırın
Bir Akış Analitik Görevi oluşturmak için:
- Azure portal’a giriş yapın.
- Kaynak oluştur‘u seçin ve Pazar yeri’nde ara Stream Analytics işini bulun.
- Stream Analytics işi‘ni seçin ve Oluştur‘a tıklayın.
- Aşağıdaki alanları doldurun ve Oluştur‘a tıklayın:
- İş adı: İşin adı. Adın küresel olarak benzersiz olması gerekir. Benim durumumda, bu
light-analytic. - Kaynak grubu: IoT hub’ınızın kullandığı aynı kaynak grubunu kullanın.
- Konum: Kaynak grubunuzla aynı konumu kullanın.
- İş adı: İşin adı. Adın küresel olarak benzersiz olması gerekir. Benim durumumda, bu

Stream Analytics işine bir Girdi Ekleyin
- Stream Analytics işini açın.
- İş topolojisi altında Girdiler‘e tıklayın.
- Akış girişi ekle‘ye tıklayın -> IoT Hub
- Aşağıdaki alanları doldurun:
- Girdi takma adı: Girdi adınız. Bu herhangi bir şey olabilir.
- IoT Hub: Her zaman kullandığımızı seçin.
- Tüketici grubu: Yeni oluşturduğumuz grubu seçin.

- Kaydet‘i seçin.
Stream Analytics İşine Bir Çıktı Ekleyin
- Stream Analytics işini açın.
- İş topolojisi altında Çıktılar‘a tıklayın.
- Ekle‘ye tıklayın -> Power BI
- Microsoft Power BI hesabınızı yetkilendirin.
- Aşağıdaki alanları doldurun:
- Çıktı takma adı: Çıktı adınız. Bu da herhangi bir şey olabilir.
- Kimlik doğrulama modu: Kullanıcı jetonunu seçin.

- Kaydet‘i seçin.
Stream Analytics İşinin Sorgusunu Yapılandırın
- İş topolojisi altında Sorgu‘ya tıklayın.
-
[YourInputAlias]değerini girdi takma adı ile değiştirin. Benim durumumda buSensorReadings. -
[YourOutputAlias]değerini çıktı takma adı ile değiştirin. Benim durumumda buSensorOutput.

Stream Analytics İşini Çalıştırın
- Genel Bakış altında Başlat -> Şimdi -> Başlat‘a tıklayın. İş durumu Durduruldu‘dan Çalışıyor‘a değişecektir.

Not: Sensör okumalarını almaya başlamak için, verileri buluta göndermek üzere ODYSSEY – X86J4105’teki Python betiğini çalıştırmayı unutmayın.
Verileri Görselleştirmek İçin Bir Power BI Raporu Oluşturun ve Yayınlayın
- Power BI hesabınıza giriş yapın.
- Çalışma Alanları altında -> Benim çalışma alanım, Veri kümeleri‘ni seçin ve daha önce belirttiğiniz veri sayfasını görmelisiniz.
- İşlemler altında ilk simgeyi (Rapor oluştur) seçin.

- Gerçek zamanlı ışık sensörü değerini zaman içinde göstermek için bir çizgi grafiği oluşturun.
- Görselleştirmeler altında Çizgi grafiği‘ni seçin.
- Alanda EventEnqueuedUtcTime‘ı seçin.
- Alanda Işık‘ı seçin.

- Kaydet‘e tıklayarak raporu kaydedin.
- Dosya -> Web’e yayınla -> Gömme kodu oluştur -> Yayınla‘ya tıklayın.
Artık Power BI aracılığıyla bir gösterge panelinde sensör okumalarını görüntüleyebilirsiniz!

Microsoft ayrıca mobil cihazınızda Power BI panolarınızı ve raporlarınızı görüntülemek ve etkileşimde bulunmak için Power BI mobil uygulamalarını sunmaktadır.
Daha Fazla Geliştirme
ODYSSEY – X86J4105’inizi bir IoT senaryosu için başarıyla kurdunuz, şimdi bunu uygulayabilir ve kendi IoT çözümlerinizi oluşturabilirsiniz!
Daha fazla teknik destek için lütfen Azure IoT‘yi ziyaret edin.

Seeed re_computer, bir modüler kenar bilişim sistemi‘dir. Mevcut popüler SBC’leri seçerek, görev kartı ekleyerek, G/Ç modülleri ekleyerek ve bunları saha kullanımı için uygun muhafazalarla hazırlayarak kenar çözümünüzü yeniden tasarlayabilirsiniz. Daha fazla bilgi için buradan öğrenin.
