İçindekiler:

Ev Aletleri Raspberry PI Tabanlı Güç Monitörü: 14 Adım
Ev Aletleri Raspberry PI Tabanlı Güç Monitörü: 14 Adım

Video: Ev Aletleri Raspberry PI Tabanlı Güç Monitörü: 14 Adım

Video: Ev Aletleri Raspberry PI Tabanlı Güç Monitörü: 14 Adım
Video: Hata yapma akıllı eve buradan başla! Home Assistant nedir? Home Assistant kurulumu nasıl? 2024, Temmuz
Anonim
Ev Aletleri Raspberry PI Tabanlı Güç Monitörü
Ev Aletleri Raspberry PI Tabanlı Güç Monitörü
Ev Aletleri Raspberry PI Tabanlı Güç Monitörü
Ev Aletleri Raspberry PI Tabanlı Güç Monitörü

Bu, evdeki bireysel cihazların güç kullanımını izlemek ve zaman içindeki güç kullanımlarının grafiklerini görüntülemek için yaptığım küçük bir projeydi. Aslında yaptığım daha kolay Raspberry PI tabanlı projelerden biri, lehimleme veya açık ürünlere gerek yok. Raspberry PI projesi olmak zorunda değil, bir Linux kutusunda veya belki Windows'ta kolayca yapılabilir.

4'lü güç monitörü/akıllı fiş seti ve bir Raspberry PI'nin maliyeti 50 AUD'dir. Bu, biraz yavaş olduğunu bulmama rağmen, bir Pi Zero veya Orijinal PI üzerinde çalışabilir. Sahip olduğum diğer tek PI bir PI 3 ve bunu çok çabuk buldum, bu yüzden tavsiye edeceğim şey bu. Daha eski bir PI üzerinde çalıştırmak istiyorsanız, veri toplama sıklığını azaltabileceğinizi unutmayın (10 saniye kullanıyordum).

Bu proje aynı zamanda ek bir avantaja sahiptir veya akıllı fişi üreticilerin belleniminden kurtarır, böylece onların özel uygulamalarını ve bulut hizmetlerini kullanmak zorunda kalmazsınız. Böylece Home Assist ile veya sadece kendi python betiklerinizle kullanılabilirler.

Lütfen işletim sistemini PI'ye nasıl kuracağınızı, ona bağlanacağınızı ve bazı temel linux komutlarını çalıştıracağınızı bildiğinizi varsaydığımı unutmayın. Ayrıca, WiFi'nize bağlandığında akıllı fişinizin IP adresini nasıl bulacağınızı bildiğinizi varsayıyorum.

Gereçler

Buradan 2 paket veya 4 paket akıllı fiş:

www.kogan.com/au/buy/kogan-smarterhome-sma…

1 Ahududu PI

Yetenekler:

Ahududu PI kurma yeteneği

Temel linux komut satırı

vi veya nano gibi metin düzenleyici (nano daha kullanıcı dostudur, bir kez öğrendikten sonra vi daha hızlıdır)

Ağınızdaki cihazların IP'sini bulma yeteneği.

Adım 1: Bazı Akıllı Fişler Satın Alın

Bazı Akıllı Fişler Satın Alın
Bazı Akıllı Fişler Satın Alın

Kullandığım akıllı fiş buradan:

www.kogan.com/au/buy/kogan-smarterhome-sma…

Uyumlu, çoğu (tümü?) ESP8266 (WEMOS) tabanlı cihazlar olan ve yanıp sönmesi çok kolay olan çok çeşitli akıllı fişler olduğunu unutmayın. Birçoğunun yapmadığı gibi güç izleme özelliğine sahip bir şey aldığınızdan emin olun. Bu sayfa, uyumlu cihazların geniş bir listesini gösterir:

templates.blakadder.com/plug.html

2. Adım: Cihazı Yanıp Sönme

Bu kısım şaşırtıcı derecede kolaydı. Temel olarak yazılımı indirir, çalıştırırsınız ve size adım adım ilerler.

Bunun için WiFi'li bir Raspberry PI veya Linux kutusuna ihtiyacınız olacak. Bu cihazla birincil bağlantınızın WiFi DEĞİL olması gerekir. PI3'üm için Ethernet üzerinden bağlı olduğum için bu kolaydı. Bir PI Zero'nuz varsa, klavye ve monitör ile eski moda bir şekilde bağlanmanız gerekir.

Bir PI'yi nasıl kuracağınızı ve ona SSH veya klavye ile nasıl bağlanacağınızı bildiğinizi varsayıyorum, bu yüzden bundan geçmeyeceğim. Web'de çok sayıda öğretici olduğundan emin değilseniz.

Başlamadan önce, cihazlarda biraz arka plan. Çin'de farklı müşteriler için akıllı fişler üreten Tuya adında bir şirket var. Farklı müşteriler için özelleştirme yaparlar ve varsayılan bir ürün yazılımı sağlarlar ve şirketlerin kendi değişikliklerini yapmalarına olanak tanır. Bununla ilgili sorun, farklı satıcılardan bir sürü ürününüz varsa, bazıları diğerlerinden daha iyi çalışan bir sürü uygulama çalıştırmak zorunda kalırsınız. Açık kaynaklı bir bellenimi yanıp sönerek, kendinizi tüm bunlardan kurtarırsınız. Yani bu genel ev otomasyonu için iyidir.

Yani …. daha fazla uzatmadan, işte talimatlar:

1) Bu komutları PI üzerinde çalıştırın, bu gerekli yazılımı yükleyecektir.

# git klon https://github.com/ct-Open-Source/tuya-convert# cd tuya-convert#./install_prereq.sh

2) Akıllı fişi prize takın

3) Düğmeyle açın

4) Mavi ışık yanıp sönmeye başlayana kadar güç düğmesini basılı tutun

5) 10 saniye bekleyin. Bu şart değil ama yaparsan daha iyi çalıştığını gördüm.

6) Bu komutu çalıştırın

./start_flash.sh

Buradan, sonunda "2. Tasmota"yı seçmeniz dışında, komutları takip edin. Farklı bir bellenim seçeneği var ama bunu denemedim, bu yüzden nasıl olduğundan emin değilim.

Bunu bir kereden fazla yapmak zorunda kaldığımı unutmayın, ilk başta cihazı tuğlaladığımı düşündüm, ışığım yoktu, röle tıklaması yok, yaşam belirtisi yoktu. Ama kapattım ve son komutu tekrar çalıştırdım ve işe yaradı. Bunu, flaş yaptığım 4 cihazdan 3'ü ile yapmak zorunda kaldım, sadece bir tanesi dümdüz geçti, sanırım 5. adımdan dolayı.

Tam talimatlar burada:

github.com/ct-Open-Source/tuya-convert

Adım 3: Firmware'e İlk Kez Bağlanma

Bellenime İlk Kez Bağlanma
Bellenime İlk Kez Bağlanma
Bellenime İlk Kez Bağlanma
Bellenime İlk Kez Bağlanma
Bellenime İlk Kez Bağlanma
Bellenime İlk Kez Bağlanma

Cihaza tasmota yükledikten sonra fazla yaşam belirtisi göstermeyecek. Bunun nedeni, yapılandırılması gerektiğidir. Bunu yapmak oldukça kolay, telefonumla yapmayı en iyi buldum. Adımlar:

1) WiFi erişim noktalarını arayın

2) tasmota_xxxx etiketli olana bağlanın (burada x sayılardır)

3) Telefon, 192.168.4.1'e gitmediyse sizi varsayılan sayfaya yönlendirmelidir.

Bazı telefonlarda "internet erişimi yok, bağlı kalmak istiyor musunuz" diye bir mesaj verebileceğini unutmayın, evet'i seçin.

4) Açılan sayfada WiFi ağınızın adını ve ilk 2 kutucuğa şifreyi girin. Şifreyi gösterme seçeneğine tıklayın ve doğru şifreyi girdiğinizi üç kez kontrol edin. Yanlış şifreyi girdiyseniz, bu yapılandırma ekranına geri dönmenin zor olabileceğini düşünüyorum. Yine de şifreyi girmeniz gerekmesine rağmen, WiFi ağlarını da tarayabileceğinizi unutmayın.

5) Fiş şimdi WiFi ağınıza bağlı olmalıdır. Yönlendiricinizin yapılandırma sayfasına gitmeniz ve cihazınızın IP'sini bulmanız gerekecektir.

6) Bilgisayarınızda bir web tarayıcısı açın ve https://[device_ip] adresine gidin Tasmota'dan yapılandırma ekranını görmelisiniz.

Tebrikler, fişi başarıyla açtınız.

Adım 4: Fişi Yapılandırma

Fişi Yapılandırma
Fişi Yapılandırma

Görünüşe göre bu cihazları yapan şirket, birçok farklı konfigürasyona sahip 10.000 cihaz yapıyor. Az önce yeni bir bellenimi flaşladık ve bellenim hangi cihazlara yüklendiğini bilmiyor. Yani herhangi bir şey işe yaramadan önce onu yapılandırmamız gerekecek. Bunu yapmak için, cihazımızın ayrıntılarını web'de bulmamız ve o belirli yapılandırmayı yüklememiz gerekiyor.

Bunun için cihazınızı bu sayfada bulun:

templates.blakadder.com/plug.html

Kullandığım cihaz için yapılandırma burada:

templates.blakadder.com/kogan-KASPEMHUSBA….

Yapılandırmayı ayarlamak için Şablon altındaki metni kopyalamamız yeterlidir. Bu durumda:

Sonra

1) Cihaz yapılandırma sayfanıza gidin https://[IP of smart plug]

2) Yapılandır'a tıklayın, diğerini yapılandırın

3) Şablon dizenize yapıştırın

4) "MQTT'yi Etkinleştir" seçeneğini işaretleyin

5) Etkinleştir ve Kaydet'e tıklayın.

Bunun işe yaradığını test etmek için, ana sayfaya geri dönmek için "Ana menü"ye tıklayın ve şimdi güç kullanım rakamlarını görmelisiniz. Hepsi sıfır olacak, voltaj bile ama bu iyi bir işaret. Geçiş düğmesine tıklayın ve rölenin klik sesini duymalı ve voltajın yükseldiğini görmelisiniz.

Adım 5: Gerilimi Kalibre Et

Gerilimi Kalibre Et
Gerilimi Kalibre Et

Voltaj okumasının oldukça yüksek olduğunu gördüm. Evde başka bir voltaj okuma kaynağınız varsa (örneğin akıllı sayaç belki??), o zaman fişi çok kolay kalibre edebilirsiniz. Bunu yapmak için

1) Doğru voltaj okumasını alın

2) Akıllı fişteki röleyi açın

3) Cihazın ana sayfasında Konsol'a tıklayın

4) "VoltageSet 228" komutunu girin ve enter'a basın (228'i kendi voltajınızla değiştirin)

Voltaj şimdi doğru şekilde gösterilmelidir.

Adım 6: Yazılımı PI'ye Yükleme

PI'ye yüklenmesi gereken birkaç paket var. Bunların kurulumu kolaydır ve çeşitli paketlerdeki talimatlar izlenerek yapılabilir. Talimatları burada vereceğim, ancak zamanla değişebileceklerini ve bu nedenle talimatlarımın geçerli olacağını unutmayın. Paketler:

Grafana (grafikleri görüntülemek için)

Influxdb (verilerimizi depolayacak zaman serisi veritabanı)

Telegraf (verileri Influxdb'ye göndermek için kullanılır)

Sivrisinek (verileri iletmek için kullanılan mesaj yolu, akıllı fiş verileri buraya iter)

Veri akışı zinciri şu şekildedir:

Akıllı Fiş -> Sivrisinek -> Telegraf -> InfluxDB -> Grafana

Mosquitto ve Telegraf'ı neden atlayamadığımızı soruyorsanız, bu iyi bir soru. Teorik olarak Akıllı Fiş, Akışa zorlayabilir. Bununla ilgili sorun, 100'lerce farklı uç nokta için yapılandırılabilir olması gerektiği ve bizi bazı seçeneklerden mahrum bırakacağıdır. Ev otomasyonundaki çoğu şey, mesajları iletmek için Sivrisinek kullanır. Örnek olarak, Mosquitto'ya mesaj göndererek fişi açıp kapatabiliriz ve akıllı fiş bunları alır ve yanıt verir.

7. Adım: Grafana'yı Yükleme

Grafana'yı Yükleme
Grafana'yı Yükleme

İtibaren:

grafana.com/grafana/download?platform=arm

Veya burada birçok başka seçenek:

grafana.com/grafana/download

Pi 1 ve Pi Zero (ARMv6) için

sudo apt-get install -y adduser libfontconfig1#topwget adresindeki sayfadan en son sürümü bulun https://dl.grafana.com/oss/release/grafana-rpi_7….sudo dpkg -i grafana-rpi_7.0.1_armhf. debsudo /bin/systemctl arka plan programı-reloadsudo /bin/systemctl grafana-server'ı etkinleştir sudo /bin/systemctl grafana-server'ı başlat

Daha yeni PI'ler için (ARMv7)

sudo apt-get install -y adduser libfontconfig1#topwget adresindeki sayfadan en son sürümü bulun https://dl.grafana.com/oss/release/grafana_7.0.1_…sudo dpkg -i grafana_7.0.1_armhf.debsudo / bin/systemctl arka plan programı-reloadsudo /bin/systemctl grafana-serversudo'yu etkinleştir /bin/systemctl grafana-server'ı başlat

Test etmek için:

[IP of PI]:3000'e gidin

kullanıcı adı/şifre admin/admin, değiştirmenizi isteyecek, şimdilik atlayabilirsiniz

Bir GUI alırsanız, her şey yolundaysa, bir sonraki adıma geçin

Adım 8: InfluxDB'yi Kurma

PI'de şu komutları çalıştırın:

curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -source /etc/os-releasetest $VERSION_ID = "7" && echo "deb https://repos.influxdata.com/debian wheezy kararlı" | sudo tee /etc/apt/sources.list.d/influxdb.listtest $VERSION_ID = "8" && echo "deb https://repos.influxdata.com/debian jessie kararlı" | sudo tee /etc/apt/sources.list.d/influxdb.listtest $VERSION_ID = "9" && echo "deb https://repos.influxdata.com/debian streç kararlı" | sudo tee /etc/apt/sources.list.d/influxdb.listtest $VERSION_ID = "10" && echo "deb https://repos.influxdata.com/debian buster kararlı" | sudo tee /etc/apt/sources.list.d/influxdb.listsudo apt-get updatesudo apt-get install influxdbsudo systemctl influxdbsudo systemctl başlatma influxdb

"Influx" yazarak test edin. Bu sizi influxdb komut satırına sokmalıdır. "Veritabanlarını göster" yazın, henüz veritabanları olmayacak, ancak hatasız boş bir liste alırsanız, o zaman her şey yolunda.

9. Adım: Telegraf'ı Kurma

Bu gerçekten kolay, çünkü yazabileceğimiz influxdb depolarını ekledik:

sudo apt-get install telegrafsudo systemctl telegrafsudo systemctl telegrafı başlat

Bu noktada Telegraf zaten sistem ölçümlerini influxdb'ye kaydediyor olacak. Bunları şu komutları yazarak görebilirsiniz:

influxshow veritabanlarıtelegrafshow serisini kullanınSELECT * FROM cpu LIMIT 10;

Adım 10: Mosquitto'yu yükleyin

Raspian ile paketlenmiş varsayılan sürümü yüklediğimiz için bu kısım kolaydır:

sudo apt-get -y mosquittosudo'yu kurun apt-get -y mosquitto-clients'i kurunsudo systemctl mosquittosudo'yu etkinleştir systemctl mosquitto'yu başlat# mosquittosudo için bir parola oluşturun mosquitto_passwd -c /etc/mosquitto/tasmota tasmota#bir parola girin. Akıllı fişe vermemiz gerekeceğinden bu şifreyi bir yere yazın

Test etmek için:

bunu bir SSH oturumunda çalıştırın:

mosquitto_sub -t testi

Bunu başka bir yerde çalıştır

mosquitto_pub -t testi -m mesajım

İlk SSH oturumunda mesajınızı görmelisiniz

Adım 11: Akıllı Fişten Sivrisinek'e Veri Gönderme

Akıllı Fişten Sivrisinek'e Veri Gönderme
Akıllı Fişten Sivrisinek'e Veri Gönderme

Artık mosquitto çalışıyor, akıllı fişi mosquitto'ya veri gönderecek şekilde yapılandırmamız gerekiyor. Bunu yapmak oldukça kolaydır. Sivrisinek için bir önceki adımdan girilen şifreye ihtiyacımız olacak.

1) Akıllı fişler web sayfanıza giriş yapın

2) Yapılandırma'yı ve ardından Günlüğü Yapılandır'ı tıklayın

3) Telemetri süresini 10'a ayarlayın ve kaydet'e tıklayın.

4) MQTT'yi Yapılandır'a tıklayın

5) Ana bilgisayar için PI'nizin IP adresini girin

6) Kullanıcı adı için tasmota girin

7) Şifre için önceki adımdaki şifreyi girin

8) Konu için tasmota1 girin

9) Kaydet'e tıklayın

Test etmek için:

PI'de aşağıdaki komutu yazın. 10 saniye içinde gelen verileri görmelisiniz.

mosquitto_sub -t tele/tasmota1/SENSOR

Veriler şöyle görünmelidir:

12. Adım: Verileri Sivrisinek'ten Akına Aktarmak için Telegraf'ı Kullanın

Şimdi Telegraf'ı mosquitto'dan gelen verileri okuyacak ve influxdb'ye gönderecek şekilde yapılandıracağız. PI'de:

1) sudo mv /etc/telegraf/telegraf.conf /etc/telegraf/telegraf.conf.bak

2) sudo vi /etc/telegraf/telegraf.conf

Not vi yeni kullanıcılar için çok kolay değildir, menü tabanlı bir metin düzenleyiciyi tercih ediyorsanız bunun yerine nano kullanın:

sudo nano /etc/telegraf/telegraf.conf

3) Ekli dosyadan yapılandırmaya yapıştırın

4) sudo systemctl telgrafı yeniden başlat

Test etmek için bunu PI'ye yazın:

akın

veritabanlarını göster

test veritabanını görmelisiniz. İsim testini beğenmediyseniz telegraf.conf dosyasındaki dest_db'yi değiştirebilirsiniz.

Adım 13: Son olarak, Grafana'da Grafikler Oluşturun

Son olarak, Grafana'da Grafikler Oluşturun
Son olarak, Grafana'da Grafikler Oluşturun

Sonunda bazı verileri görebiliyoruz:-):-)

Öncelikle veritabanına bir bağlantı oluşturmamız gerekiyor. grafana web sayfasına gidin http:[ip of PI]:3000

1) admin/admin ile giriş yapın

2) Sol sütunda dişli simgesini ve veri kaynaklarını tıklayın

3) Veri kaynağı ekle'yi tıklayın

4) Influxdb'ye tıklayın

5) URL için https://localhost:8086 girin

6) Veritabanı için teste girin

7) HTTP için GET girin

8) Minimum zaman aralığı için 10s girin

9) Kaydet ve Test Et'e tıklayın, "Veri kaynağı çalışıyor" yazmalıdır.

Tamam, şimdi veritabanına bir bağlantımız var, bir grafik oluşturabiliriz… sonunda.

1) Sol sütunda +'yı ve ardından Gösterge Tablosunu ve Yeni Panel Ekle'yi tıklayın.

2) Veritabanı için InfluxDB'ye tıklayın

3) Ölçüme tıklayın ve Kogan'ı seçin

4) Alan için Energy_Power'ı seçin.

5) Takma ad olarak serinize bir ad verin (örn. Bulaşık Makinesi)

6) Panel Başlığı için sağ tarafta ona bir isim verin, örneğin Güç.

7) İşte bu, verileri görmelisiniz. Düzenlemeden çıkmak için sol ok düğmesini tıklayın ve ardından kaydet'i tıklayın, panonuza bir ad verin.

Buraya kadar geldiysen, çok iyi iş, cidden.

Adım 14: Birkaç İpucu

Birkaç İpucu
Birkaç İpucu
Birkaç İpucu
Birkaç İpucu

Sağladığım varsayılan Telegraf yapılandırması biraz bakım gerektiriyordu, çünkü her cihaz için yeni bir bölümün eklenmesi ve Telegraf'ın yeniden başlatılması gerekiyor. Aşağıdaki değişikliklerle, Telegraf'ı değiştirmeye gerek kalmadan Tasmota yapılandırmasında cihazların eklenebilmesi veya yeniden adlandırılabilmesi, işleri çok daha dinamik hale getiriyor.

İlk değişiklik, konu adına + koymaktır, bu temelde bir joker karakterdir. Bu, Grafana'da grafikler yaptığınızda cihazların "tele/WashingMachine/SENSOR" gibi şeyler olarak adlandırılması dışında tek başına yeterli olacaktır. Aşağıdaki Telegraf yapılandırmasının ikinci kısmı normal ifade işlemcisidir. "WashingMachine" metnini merkezden çıkarır ve InfluxDB'ye aktarılan yeni bir etikete dönüştürür.

Not: Tasmota yapılandırmasında her aygıt için farklı bir konu adı ayarladığınızdan emin olun

[inputs.mqtt_consumer.tags] dest_db = "test"

Bu yapıldıktan sonra Grafana'yı tek bir grafikte birden fazla cihazı gösterecek şekilde yapılandırmak çok kolaydır. Bu adıma ekli resim ne yapılması gerektiğini gösterir. Gruptaki + işaretini satır satır tıklamanız ve etiket(cihaz) öğesini seçmeniz yeterlidir. Alias By'de en altta $tag_device girin. Artık bir grafikte birden fazla seri görmelisiniz. Açmak ve kapatmak için her bir öğenin metnine tıklayabilirsiniz (ctrl tıklama, katları seçmek için çalışır)

Önerilen: