Nesnelerin İnterneti (IoT) ile Akıllı Sistemler -4 (IoT Cihaz)

Mert Kışlakçı
Turk Telekom Bulut Teknolojileri
5 min readApr 17, 2022

Herkese Merhaba…

IoT Gateway

Serinin bu bölümünde standart bir lambayı tasarlayacağımız IoT cihazı ile uzaktan kontrol ederken, lambanın tükettiği akım miktarını da ölçeceğiz. IoT cihaz yapmak için ihtiyaç duyacağımız bileşenleri tanıyalım ardından devresini kurup lambaya bağladıktan sonra kontrolünü Node-Red üzerinden gerçekleştireceğiz.

Gereksinimler

  • NodeMCU v3
  • AC-220v / DC-5v Dönüştürücü
  • 5v 1 Kanal Röle Kartı
  • ACS712 Akım Sensörü

NodeMCU

NodeMCU, ESP8266 tabanlı IoT cihaz prototiplemenize veya oluşturmanıza yardımcı olan açık kaynaklı bir ürün yazılımı ve geliştirme kartıdır. Bu kartın Arduino ile çok ortak noktası var ikisi de Arduino IDE kullanılarak programlanabilirken NodeMCU buna ek olarak Python ile de programlanabilmektedir. Ayrıca GPIO, PWM, ADC, vb. gibi mikrodenetleyicilerin en önemli özelliklerinden bazılarını sağlayarak, dahili gelen Wi-Fİ entegresiyle çoğu gereksinimleri tek başına sağlamaktadır.

NodeMCU

AC / DC Dönüştürücü

AC-DC dönüştürücüler, alternatif akım (AC) girişini doğru akım (DC) çıkışına dönüştüren elektrik devreleridir.

AC / DC Converter

Röle

Röle basit bir elektromekanik anahtardır. Bir devreyi manuel olarak kapatmak veya açmak için normal anahtarları kullanırken, Röle aynı zamanda iki devreyi birbirine bağlayan veya bağlantısını kesen bir anahtardır. Ancak manuel işlem yerine, röle bir elektromıknatısı kontrol etmek için bir elektrik sinyali kullanır ve bu da başka bir devreyi bağlar veya bağlantısını keser.

Relay

ACS712 Akım Sensörü

ACS712, voltaj izolasyonu ve entegre düşük dirençli akım iletkeni ile tamamen entegre, hall effect tabanlı lineer akım sensörüdür. Akım Hall sensörü tarafından algılanan manyetik alanla orantılı bir voltaj üretilir. Sensörden gelen bu voltaj değerleri ADC’ler vasıtasıyla ölçülendirilerek gerçek akım miktarları bulunur.

ACS712

Genel olarak kullanacağımız bileşenlerin nasıl çalıştıklarına kısa bir giriş yaptıktan ve ihtiyacımız olan malzemeleri temin ettikten sonra şimdi de devrenin kurulumuna geçelim.

Not: Kurulumunu gerçekleştireceğimiz devrede Alternatif Akım kullanılacağından elektronik bilginiz hiç yoksa kurulumu yapmamanızı tavsiye ederim. Kurulum yapacak kişiler için ise devreyi entegre edeceğiniz lambaya giden elektriğin tamamen kesik olduğundan emin olduktan sonra işlemlere başlayın ve elektrik varken devreye dokunmayın !

Kurulum

Ben sistemi kendi odamda bulunan lambaya entegre ettim. Odaya elektrik gelmediğinden emin olmak için odama bağlı şalteri indirdim. Tavanda bulunan lambanın tesisat ile bağlantısını söktükten sonra tesisattan gelen iki adet farklı renkte kablonun birine L diğerine N diyelim. Bunları AC / DC Dönüştürücü de bulunan N ve L girişlerine bağlayın.

AC-220v / DC-5v Converter

Dönüştürücünün diğer tarafında ise 3 adet çıkış vardır. Bu çıkışlardan (+5v) ve (- GND) olanları kullanacağız. Ortada bulunan çıkışı boş bırakın. (+5v) çıkışın bir ucunu 5V-1 Kanal Röle Kartının ortada bulunan (+5v) girişine, dönüştürücüden aldığınız (- GND) çıkışını ise röle kartının (- GND) girişine bağlayın. (S) çıkışını ise NodeMCU kartının D1 bacağına takın.

5v 1 Chanel Relay Cart

Dönüştürücüden aldığınız (+ 5v) çıkışı akım sensörün de bulunan VCC (+ 5v) bacağına, dönüştürücüden aldığınız (- GND) çıkışını ise sensör de bulunan GND (- GND) bacağına bağlayın. OUT (A) bacağını ise NodeMCU kartındaki analog giriş olan A0 bacağına takın.

ACS712 Current Sensor

NodeMCU kartı üzerinde bulunan Vin (+ 5v input) girişini dönüştürücüden aldığınız (+ 5v) girişine, G bacağını (Ground) ise dönüştürücüden aldığınız bir diğer çıkış olan (- GND) bacağına bağlayınız.

NodeMCU v3

NodeMCU da bulunan Vin bacağını AC-DC dönüştürücümüzden gelen + 5v ile kartı beslerken, ADC (Analog-Dijital Dönüştürücü) sahip A0 bacağını kullanarak ACS712 akım sensöründen gelen analog verileri ölçeceğiz. Lambayı uzaktan aç / kapat komutunu ise rölemize göndermek için kartın üzerinde bulunan dijital bacaklarından D1 çıkışını tercih edeceğiz. + 5v tarafında tüm bağlantıları tamamladık son olarak AC tarafındaki bağlantıları da gerçekleştirip devrenin kurulumunu tamamlamış olacağız. Tesisattan gelen K çıkışının ucunu rölede bulunan NC (L) girişine bağlayın.

5v 1 Chanel Relay Cart

Röle de bulunan bir diğer çıkış olan COM (K) çıkışını ise ACS712 sensöründe ki T girişine takın. Sensörün boşta kalan M çıkışını ise lambanın bir ucuna bağlayın.

ACS712 Current Sensor

Lambanın diğer ucunu ise tesisattaki N girişine bağlayarak devrenin montajını tamamlamış olduk. Sizlere yardımcı olması amacıyla montajı bitmiş devrenin son hali aşağıdaki görsel de mevcuttur. Bunu kullanarak kurduğunuz devreye ait son kontrolleri yapabilirsiniz.

Schema

Devremize elektrik vermeden önce NodeMCU kartının sunucuyla iletişim kurabilmesi amacıyla kodunu hazırlayalım. Yazı dizisinin çok uzamaması amacıyla Arduino kurulum aşamasını atladım, yine de bu süreci bilmeyenler için aşağıdaki GitLab adresimde sizler için hazırlamış olduğum kurulum talimatlarını içeren dosyayı bulabilirsiniz.

https://github.com/mertkslkc/mert-IoT.git

Yukarıdaki adresten indirdiğiniz dosyanın içinde bulunan NodeMCU.inoisimli kod dosyasını açın. Ardından

  • PubSubClient (v2.8.0)
  • ArduinoJson (v5.13.5)
  • ACS712 (v0.2.6) kütüphanelerini kurun.

Sonra kod da sizden istenilen

  • ssid (wifi ismi)
  • password (wifi şifresi)
  • mqtt_server (mqtt adresi) kısımlarını doldurun ve kodu kartınıza yükleyin.
NodeMCU.ino

sunucuIP:1883 adresinden Node-Red arayüzünü açın. Menünün sağ üst kısmından Import sekmesine gidin.

Node-Red Import

Açılan sayfa da select a file to import butonuna basın ve GitLab adresinden indirdiğiniz dosyanın içinde bulunan Node-Red.json belgesini yükleyin ve Import butonuna tıklayın.

Node-Red Flow Import

Son durumda Node-Red düğümünüz aşağıdaki gibi olacaktır. Önceki bölümler de MQTT düğümlerini nasıl yapılandırılacağını öğrenmiştik. Siz de şimdi lamp ve room düğümlerini kendi MQTT adresinize göre yapılandırın.

Node-Red Flow Schema

Manage Palette kısmına gidin install seçeneğine tıklayın arama yerine node-red-dashboard yazın ve çıkan kütüphaneyi kurun. Artık Node-Red uygulaması görsel bir arayüze (ui) sahip oldu.

Manage Palette

Node-Red ekranına dönün düğümü deploy edin ve sunucu:1880/ui adresine gidin. Karşınıza IoT cihazının yönetim paneli çıkacaktır buradan lambayı açıp kapatabilir üst tarafta bulunan grafikten ise lamba açıkken harcadığı akım miktarını izleyebilirsiniz.

Node-Red UI

Serinin sonraki bölümünde lambadan topladığımız bu akım verilerini ücretsiz edinebileceğimiz bir veritabanına aktaracağız. O zamana kadar kendinize iyi bakın görüşmek üzere….

--

--

Mert Kışlakçı
Turk Telekom Bulut Teknolojileri

#Cloud Computing #vmware #virtualization #redhat #EdgeComputing #DataScience #AI #IoT #ComputerVision #Python #OpenCV #C #Virtualization