Nesnelerin İnterneti (IoT) ile Akıllı Sistemler -4 (IoT Cihaz)
Herkese Merhaba…
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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.ino” isimli 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.
sunucuIP:1883 adresinden Node-Red arayüzünü açın. Menünün sağ üst kısmından Import sekmesine gidin.
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.
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.
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.
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.
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….