Raspberry Pi Sensör verilerinin Node.Js ile Azure IoT Hub’a Gönderilmesi

Merhabalar; Raspberry Pi cihazımıza bağlı sensörlerden gelen verilerin nasıl IoT Hub’a iletileceğini bu yazımda anlatacağım. Bunun için Raspberry Pi cihazında Raspbian işletim sistemi yüklü olduğunu farzediyorum ve verileri göndermek için Node.js kullanacağız.

IoT Hub Oluşturma;

Öncelikle Azure portaldan IoT Hub oluşturmamız gerekmektedir bunun için portala girdiğinizde üst kısımda ki search alanına IoT Hub yazarak ilgili sayfaya ulaşabilirsiniz, burada IoT Hub oluştur diyerek başlıyoruz.

Iot Hub oluştuktan sonra connection stringi almamız lazım, Shared Access policies içerisinde iothubbowner seçeneğine tıklayarak “Connection string—primary key” alanını not edelim.

Daha sonra bir cihaz eklememiz gerekiyor, bunun için IoT Device menüsünde Add diyerek ekleyebiliriz.

Device Id yazarak Save diyor ve cihazımızı ekliyoruz.

Node.Js Kurulumu ve Örnek Programımızı Çalıştırma;

Şimdi Raspberry Pi üzerinden sensör verilerini göndermek için cihazımız ile ssh bağlantı sağlıyoruz, cihazda Node.js ve npm kurulu değilse öncelikle kurmamız gerekiyor.

node -v

yazarak kontrol edebiliriz, eğer versiyon 4.x.x’den küçükse güncellememiz gerekmektedir.

Ayrıca, raspi-config içerisinden I2C enable ayarlamamız gerekli.

sudo raspi-config

Node.js kurulumu tamam ise Github’da bulunan örnek node.js uygulamamızı indirerek test işlemine başlayacağız.

Raspberry Pi’de aşağıdaki komutu çalıştırıyoruz.

git clone https://github.com/Azure-Samples/iot-hub-node-raspberrypi-client-app

Daha sonra

cd iot-hub-node-raspberrypi-client-app

komutu ile klasörün içerisine giriyoruz ve;

sudo su
sudo apt-get install wiringpi
sudo npm install

komutları ile root yetkisi alıyor ve daha sonra gerekli paketlerin yüklenmesini sağlıyoruz. Yükleme işlemi tamamlandıktan sonra;

sudo nano config.json

komutu ile config dosyasını düzenlememiz gerekiyor, ben burada fiziksel bir sensöre sahip olmadığım için simule edeceğim bunun içinde “simulatedData” seçeneğini “True” olarak değiştiriyorum.

CTRL+X ve daha sonra Y tuşlayarak kaydediyoruz.

Burada “interval” clouda gönderilecek mesajların arasında ki zaman aralığını tanımlamamızı sağlar milisaniye cinsinden yazılır.

Örnek uygulamamızı çalıştıralım;

sudo node index.js ' <<Azure’den alınan connection string> '

Uygulama çalışmaya başlamadan bizden Microsoft veri toplamak için izin istiyor verip vermemek sizin elinizde fakat Microsoft’un geliştirmelerine katkı sağlamak için vermeyi tercih ediyoruz,

“y” yazarak enter yapıyoruz ve uygulamamız IoT Hub’a veri göndermeye başlıyor.

Azure’de izleme ekranlarında kontrol edebilirsiniz.

Exit mobile version