Uzaktan veri izleme ve görselleştirme hep ilgi alanlarımdan birisi olmuştur. Daha önce uzaktan izleme ve veri görselleştirme makalemde InfluxDb ve Grafana entegrasyonundan bahsetmiştim. Şimdi bunu bir adım öteye götürerek kendi evimin gerilimlerini Diris A10 analizör üzerinden ölçüp Modbus sunucuya yazıp, oradan da MQTT kullanarak InfluxDb’ye aktarıp Grafana ile görselleştiriyorum.
Haydi başlayalım. 🙂
Öncelikle yapı biraz karışık. Karışık olmasının sebebi arada Kepserver kullanmak istemem. Kepserver çeşitli arabirimlerden (Modbus, Profibus v.s.) veri alıp MQTT üzerinden sunabilen ve sağlam çalışan bir yapı. Bu ürün için Windows bir PC’ye ihtiyacınız var (Ben VMware fusion’da kurulu bir test Windows’u kullanıyorum). Daha ileride Kepserver’i aradan çıkartıp Raspberry Pi’yi direk InfluxDb’ye veri besler hale getirebilirim. Şimdi veri toplama aşamasının sağlam olması için bu modeli kullanıyorum.
Öncelikle evdeki sistemin bir fotoğrafını paylaşayım.
Peki veriler kod ortamında nasıl ilerliyor? Ona bakalım.
Mevcut yapı yeşil yönlü oklar üzerinden ilerliyor.
Burada Raspberry Pi üzerinde ModbusRTU okuyup TCP’ye çeviren bir kod var. Bu kodu Go ile ben yazdım. Aşağıda örneğini bulabilirsiniz.
Bu kod Modbus RTU üzerinden Diris A10 cihazının 4 adet register’ini sorguluyor ve aldığı değerleri kendi üzerindeki ModbusTCP sunucusuna yazıyor. Bu aşamada bu koda MQTT arabirimi ekleyerek okumaları direk MQTT sunucusuna gönderebilirim ama dediğim gibi Kepserver’i kullanabilmek için göndermiyorum.
Kepserver kendi üzerindeki konfigürasyon ile Raspberry Pi üzerindeki Modbus TCP sunucusuna bağlanarak ilgili registerleri okuyor ve MQTT üzerinden JSON formatında gönderiyor.
Eğer Modbus RTU’dan okunan verileri direk MQTT’ye göndermek isterseniz aşağıdaki kodu kullanabilirsiniz.
Verinin MQTT sunucuya aktığını kolayca görebiliriz.
Bu aşamada MQTT’nin “SolarScada” başlığını dinleyen Telegraf ara yazılımı bu okuduklarını InfluxDb’nin anlayacağı hale dönüştürerek InfluxDb’ye kaydediyor. Şimdi InfluxDb’ye veriler gelmiş mi kontrol edelim.
Eveeet veriler gelmiş. Şimdi verileri grafana ile görselleştirelim. Docker üzerinde çalışan Grafana ile InfluxDb veritabanına bağlanıp verileri görselleştiriyoruz.
Yukarıda gördüğünüz şekilde hiç SQL’in temellerine inmeden gayet kolay bir şekilde sorgumuzu gerçekleştiriyor ve şekillendiriyoruz. Voila! Grafiğimiz hazır. Bu grafikte sağ eksende gerilimi, sol eksende de frekansı görselleştiriyorum. Frekans kaymalarından İstanbul’da bir üretecin devreye girdiğini yük alınıp yük atıldığını anlayabiliyorsunuz. (Zamanında Tedaş’da Bilal Şimşek Bey ile rate of change of frequency (RoCoF) koruması üzerine konuşurduk 😀 ) Şimdi grafiğimizi canlı olarak web sayfamıza entegre edelim. Haydi aşağıdaki grafiğin üzerinde mouse ile gezinin 🙂
Ne kadar güzel değil mi? Sizde kendi altyapınızı oluşturabilirsiniz bence 🙂 Artık pek çok ürün açık kaynak olarak mevcut. Açık kaynak yazılımlar ile yapabileceklerinizin bir limiti yok. Docker gibi teknolojilerin hayatımıza entegre olması ile yok sunucu yetmiyor, yok cart yok curt gibi ölçekleme problemleri de kalktı. Bu yazılımların çalıştığı VPS’lerin de (4 çekirdek, 10gb ram) 8EUR/Ay olduğunu düşünecek olursak yazılımların ne aşamaya gittiğine dair güzel bir fikir edinebilirsiniz.
Eğer sizin de gerçekleştirmek istediğiniz bir projeniz veya teknolojik bir sorunuz varsa aşağıda yorumlar kısmına bırakabilirsiniz.
Teknoloji sevenler burada okumayı bırakabilir. Buradan sonrası kısa bir mevzuat konusu. 🙂
Madem enerji kalitemizi ölçüyoruz, merak ettim hukuki olarak haklarımız neler. Enerji kalitesini belirleyen hizmet kalitesi yönetmeliği aşağıdaki gibi.
ELEKTRİK DAĞITIMI VE PERAKENDE SATIŞINA İLİŞKİN HİZMET KALİTESİ YÖNETMELİĞİ
Teknik kalitenin şartları
MADDE 23
(2) Dağıtım şirketi; sunduğu elektrik enerjisinin kalitesine ilişkin aşağıdaki işletme şartlarını sağlamakla yükümlüdür:
a) …
1) AG seviyesi için; ölçüm periyodu boyunca ölçülen gerilim etkin değerlerinin 10’ar dakikalık ortalamalarının, en az % 95’i nominal etkin gerilim değerinin en fazla ± % 10’u kadar, tamamı ise nominal etkin gerilim değerinin en fazla + % 10 – % 15 aralığında değişmelidir.
Özetle diyor ki; gerilim seviyesi nominal gerilimin %15’inin altına düşerse (yukarıdaki grafikteki kırmızı çizgi) uygun değildir. Örneklem alınan bir zaman diliminin %95’inde de ± % 10 oranında değişebilir. EnerjiSA’yı izlediğimde bazı günlerde %15’in altına düştüğünü, bazen de son 24 saatte %95’den daha fazla -%10 ile -%15 bandı altında kaldığını görüyorum. Merak edenler için söyleyeyim 230V olması gereken gerilim bu yönetmeliğe göre 253V ile 195V arasında salınım gösterebilir. İstanbul içerisinde olduğumuzu düşünecek olursak bu epey fazla bir salınım. Taşrada bu değerlerin daha kötü olması ihtimal dahilinde.
Diğer ülkelerde nasıl bilmiyorum ama gerilimin bu kadar geniş bir aralıkta hareket etmesinin pek sağlıklı olduğunu düşünmüyorum. Bu aşamada EnerjiSA’ya şikayette bulunabilirim ama en basit çözümü uygulama yöntemine giderek bizi besleyen trafonun tap’ini değiştirecekler. Bu da sadece gerilimleri 10V-15V yukarı çekecek ama salınım devam edecek. O sebeple şikayet etmiyorum keza evdeki tüm cihazlar UPS’den beslendiği için (evet tüm ev UPS’den besleniyor) bizim evin enerji kalitesi gayet güzel 🙂
Herkese selamlar!
Bir yanıt yazın