Spisu treści:

Monitor mocy oparty na Raspberry PI w urządzeniach domowych: 14 kroków
Monitor mocy oparty na Raspberry PI w urządzeniach domowych: 14 kroków

Wideo: Monitor mocy oparty na Raspberry PI w urządzeniach domowych: 14 kroków

Wideo: Monitor mocy oparty na Raspberry PI w urządzeniach domowych: 14 kroków
Wideo: INTELIGENTNY DOM NA NOWO | Wyrzucam RASPBERRY PI, ARDUINO i chińskie przekaźniki SSR 2024, Lipiec
Anonim
Monitor mocy oparty na Raspberry PI w urządzeniach domowych
Monitor mocy oparty na Raspberry PI w urządzeniach domowych
Monitor mocy oparty na Raspberry PI w urządzeniach domowych
Monitor mocy oparty na Raspberry PI w urządzeniach domowych

Był to mały projekt, który wykonałem, aby monitorować zużycie energii przez poszczególne urządzenia w domu i wyświetlać wykresy ich zużycia energii w czasie. W rzeczywistości jest to jeden z łatwiejszych projektów opartych na Raspberry PI, które wykonałem, nie wymaga lutowania ani hackowania otwartych produktów. Nie musi to być projekt Raspberry PI, można to łatwo zrobić na Linuksie lub Windowsie.

Koszt to 50 AUD za zestaw 4 monitorów mocy / inteligentnych wtyczek i koszt Raspberry PI. To może działać na Pi Zero lub Original PI, chociaż okazało się, że jest trochę powolne. Jedynym innym PI, jaki mam, jest PI 3 i uważam, że jest bardzo zgryźliwy, więc to właśnie polecam. Zauważ, że jeśli chcesz uruchomić go na starszym PI, możesz zmniejszyć częstotliwość zbierania danych (używałem 10 sekund).

Ten projekt ma również dodatkową korzyść lub uwalnia inteligentną wtyczkę od oprogramowania układowego producentów, dzięki czemu nie musisz korzystać z ich konkretnych aplikacji i usług w chmurze. Dzięki temu mogą być używane z Home Assist lub po prostu z własnymi skryptami Pythona.

Pamiętaj, że zakładam, że wiesz, jak zainstalować system operacyjny na PI, połączyć się z nim i uruchomić kilka podstawowych poleceń linuksowych. Zakładam również, że wiesz, jak znaleźć adres IP swojej inteligentnej wtyczki, gdy połączy się ona z Wi-Fi.

Kieszonkowe dzieci

2 paczki lub 4 paczki inteligentnych wtyczek stąd:

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

1 malina PI

Umiejętności:

Możliwość ustawienia malinowego PI

Podstawowa linia poleceń Linuksa

Edytor tekstu, taki jak vi lub nano (nano jest bardziej przyjazny dla użytkownika, vi jest szybszy, gdy się go pozna)

Możliwość znalezienia IP urządzeń w Twojej sieci.

Krok 1: Kup kilka inteligentnych wtyczek

Kup kilka inteligentnych wtyczek
Kup kilka inteligentnych wtyczek

Inteligentna wtyczka, której użyłem, była stąd:

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

Zauważ, że istnieje cała gama kompatybilnych inteligentnych wtyczek, większość (wszystkie?) to urządzenia oparte na ESP8266 (WEMOS) i są bardzo łatwe do flashowania. Upewnij się, że masz coś, co ma monitorowanie mocy, jak wielu nie. Ta strona pokazuje dużą listę kompatybilnych urządzeń:

templates.blakadder.com/plug.html

Krok 2: Flashowanie urządzenia

Ta część była zaskakująco łatwa. W zasadzie po prostu pobierasz oprogramowanie, uruchamiasz je, a on prowadzi Cię przez kolejne etapy.

Do tego potrzebujesz Raspberry PI lub Linux-a z WiFi. Musisz mieć podstawowe połączenie z tym urządzeniem, które NIE jest Wi-Fi. Dla mojego PI3 było to łatwe, ponieważ byłem podłączony przez Ethernet. Jeśli masz PI Zero, będziesz musiał połączyć się w staromodny sposób, z klawiaturą i monitorem.

Zakładam, że wiesz, jak skonfigurować PI i połączyć się z nim za pomocą SSH lub klawiatury, więc nie będę przez to przechodził. Jeśli nie masz pewności, w sieci jest wiele samouczków.

Zanim zaczniemy, tylko trochę tła na temat urządzeń. W Chinach istnieje firma Tuya, która wypompowuje inteligentne wtyczki dla różnych klientów. Dokonują dostosowywania dla różnych klientów i zapewniają domyślne oprogramowanie układowe i umożliwiają firmom dokonywanie własnych modyfikacji. Problem polega na tym, że jeśli masz kilka produktów od różnych dostawców, musisz uruchomić kilka aplikacji, z których niektóre działają lepiej niż inne. Flashując oprogramowanie układowe typu open source, uwalniasz się od tego wszystkiego. Jest to więc dobre dla ogólnej automatyki domowej.

Więc …. bez zbędnych ceregieli, oto instrukcje:

1) Uruchom te polecenia w PI, spowoduje to zainstalowanie wymaganego oprogramowania.

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

2) Podłącz inteligentną wtyczkę do zasilania

3) włącz go za pomocą przycisku

4) Przytrzymaj przycisk zasilania, aż niebieskie światło zacznie migać

5) Odczekaj 10 sekund. Nie jest to konieczne, ale okazało się, że działa lepiej, gdybyś to zrobił.

6) Uruchom to polecenie

./start_flash.sh

Stąd po prostu postępuj zgodnie z instrukcjami, z wyjątkiem na końcu wybierz „2. Tasmota”. Jest opcja dla innego oprogramowania, ale nie próbowałem tego, więc nie jestem pewien, jak to jest.

Zauważ, że musiałem to zrobić więcej niż raz, na początku myślałem, że zamurowałem urządzenie, nie miałem świateł, żadnego kliknięcia przekaźnika, żadnych oznak życia. Ale wyłączyłem go i ponownie uruchomiłem ostatnie polecenie i zadziałało. Musiałem to zrobić z 3 z 4 urządzeń, które błysnąłem, tylko jedno przeszło od razu, myślę, że z powodu kroku 5.

Pełne instrukcje tutaj:

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

Krok 3: Łączenie się z oprogramowaniem układowym po raz pierwszy

Łączenie z oprogramowaniem układowym po raz pierwszy
Łączenie z oprogramowaniem układowym po raz pierwszy
Łączenie z oprogramowaniem układowym po raz pierwszy
Łączenie z oprogramowaniem układowym po raz pierwszy
Łączenie z oprogramowaniem układowym po raz pierwszy
Łączenie z oprogramowaniem układowym po raz pierwszy

Po wgraniu tasmoty do urządzenia nie będzie ono wykazywać zbyt wielu oznak życia. Powodem tego jest konieczność konfiguracji. Jest to dość łatwe, uznałem, że najlepiej zrobić to za pomocą telefonu. Kroki to:

1) Wyszukaj punkty dostępu Wi-Fi

2) Połącz się z numerem oznaczonym tasmota_xxxx (gdzie x to cyfry)

3) Telefon powinien skierować Cię na domyślną stronę, jeśli nie, przejdź do 192.168.4.1

Uwaga na niektórych telefonach może wyświetlać komunikat „brak dostępu do Internetu, czy chcesz pozostać w kontakcie”, wybierz tak.

4) Na wyświetlonej stronie wprowadź nazwę swojej sieci WiFi i hasło w pierwszych 2 polach. Kliknij opcję, aby wyświetlić hasło i trzykrotnie sprawdź, czy wpisałeś prawidłowe hasło. Uważam, że jeśli wpisałeś złe hasło, powrót do tego ekranu konfiguracji może być trudny. Pamiętaj, że możesz także skanować w poszukiwaniu sieci Wi-Fi, chociaż oczywiście nadal musisz wprowadzić hasło.

5) Wtyczka powinna teraz połączyć się z siecią Wi-Fi. Musisz przejść do strony konfiguracji routera i znaleźć adres IP swojego urządzenia.

6) Otwórz przeglądarkę internetową na swoim komputerze i przejdź do https://[device_ip] Powinieneś zobaczyć ekran konfiguracji z Tasmota.

Gratulacje, pomyślnie sflashowałeś wtyczkę.

Krok 4: Konfiguracja wtyczki

Konfiguracja wtyczki
Konfiguracja wtyczki

Firma, która produkuje te urządzenia, podobno produkuje 10 000 urządzeń o wielu różnych konfiguracjach. Właśnie zaktualizowaliśmy nowe oprogramowanie, które nie wie, na jakie urządzenia zostało zaktualizowane. Więc zanim cokolwiek zadziała, będziemy musieli to skonfigurować. Aby to zrobić, musimy znaleźć szczegóły naszego urządzenia w sieci i załadować konkretną konfigurację.

W tym celu znajdź swoje urządzenie na tej stronie:

templates.blakadder.com/plug.html

Dla urządzenia, którego użyłem, konfiguracja jest tutaj:

templates.blakadder.com/kogan-KASPEMHUBA….

Aby ustawić konfigurację, po prostu kopiujemy tekst do szablonu. W tym przypadku jest to:

Następnie

1) Przejdź do strony konfiguracji urządzenia https://[IP inteligentnej wtyczki]

2) Kliknij konfiguruj, skonfiguruj inne

3) Wklej ciąg szablonu

4) Zaznacz „Włącz MQTT”

5) Kliknij aktywuj i Zapisz.

Aby to sprawdzić, kliknij „Menu główne”, aby wrócić do strony głównej i powinieneś teraz zobaczyć dane dotyczące zużycia energii. Wszystkie będą zero, nawet napięcie, ale to dobry znak. Kliknij przycisk przełączania i powinieneś usłyszeć kliknięcie przekaźnika i zobaczyć wzrost napięcia.

Krok 5: Skalibruj napięcie

Skalibruj napięcie
Skalibruj napięcie

Zauważyłem, że odczyt napięcia był dość wysoki. Jeśli masz w domu inne źródło odczytu napięcia (np. może inteligentny licznik??) to możesz bardzo łatwo skalibrować wtyczkę. Aby to zrobić

1) uzyskaj prawidłowy odczyt napięcia;

2) Włącz przekaźnik w inteligentnej wtyczce

3) Kliknij Konsola na stronie głównej urządzenia

4) Wpisz polecenie „VoltageSet 228” i naciśnij enter (zastąp 228 swoim napięciem)

Napięcie powinno teraz wyświetlać się poprawnie.

Krok 6: Instalacja oprogramowania na PI

Jest kilka pakietów, które należy zainstalować w PI. Są łatwe w instalacji i można je wykonać zgodnie z instrukcjami z różnych pakietów. Podam tutaj instrukcje, ale pamiętaj, że mogą one z czasem ulec zmianie, więc moje instrukcje będą datowane. Pakiety to:

Grafana (do wyświetlania wykresów)

Influxdb (baza danych szeregów czasowych, która będzie przechowywać nasze dane)

Telegraf (używany do przesyłania danych do Influxdb)

Mosquitto (magistrala wiadomości używana do przekazywania danych, inteligentna wtyczka przesyła dane tutaj)

Łańcuch przepływu danych wygląda tak:

Smart Plug -> Mosquitto -> Telegraf -> InfluxDB -> Grafana

Jeśli pytasz, dlaczego nie możemy pominąć Mosquitto i Telegrafa, to jest dobre pytanie. Teoretycznie Smart Plug może popchnąć do Influx. Problem polega na tym, że musiałby być wtedy konfigurowalny dla setek różnych punktów końcowych i zablokowałoby nas to przed niektórymi wyborami. Większość rzeczy w automatyce domowej używa Mosquitto do przekazywania wiadomości. Na przykład możemy włączać i wyłączać wtyczkę, wysyłając wiadomości do Mosquitto, a inteligentna wtyczka odbierze je i zareaguje.

Krok 7: Instalacja Grafana

Instalowanie Grafana
Instalowanie Grafana

Z:

grafana.com/grafana/download?platform=arm

Lub wiele innych opcji tutaj:

grafana.com/grafana/download

Dla Pi 1 i Pi Zero (ARMv6)

sudo apt-get install -y adduser libfontconfig1#znajdź najnowszą wersję ze strony pod adresem topwget https://dl.grafana.com/oss/release/grafana-rpi_7….sudo dpkg -i grafana-rpi_7.0.1_armhf. debsudo /bin/systemctl daemon-reloadsudo /bin/systemctl włącz grafana-serversudo /bin/systemctl uruchom grafana-server

Dla nowszych PI (ARMv7)

sudo apt-get install -y adduser libfontconfig1#znajdź najnowszą wersję ze strony pod adresem topwget https://dl.grafana.com/oss/release/grafana_7.0.1_…sudo dpkg -i grafana_7.0.1_armhf.debsudo / bin/systemctl daemon-reloadsudo /bin/systemctl włącz grafana-serversudo /bin/systemctl uruchom grafana-server

Testować:

Przejdź do https://[IP PI]:3000

nazwa użytkownika/hasło to admin/admin, poprosi Cię o zmianę, możesz na razie pominąć

Jeśli masz GUI, to wszystko w porządku, przejdź do następnego kroku

Krok 8: Instalacja InfluxDB

Uruchom te polecenia w PI:

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 stable" | sudo tee /etc/apt/sources.list.d/influxdb.listtest $VERSION_ID = "8" && echo "deb https://repos.influxdata.com/debian jessie stable" | sudo tee /etc/apt/sources.list.d/influxdb.listtest $VERSION_ID = "9" && echo "deb https://repos.influxdata.com/debian stretch stabilny" | sudo tee /etc/apt/sources.list.d/influxdb.listtest $VERSION_ID = "10" && echo "deb https://repos.influxdata.com/debian buster stable" | tee sudo /etc/apt/sources.list.d/influxdb.listsudo apt-get updatesudo apt-get zainstaluj influxdbsudo systemctl włącz influxdbsudo systemctl uruchom influxdb

Sprawdź, wpisując „napływ”. Powinno to spowodować przejście do wiersza poleceń influxdb. Wpisz "pokaż bazy danych", nie będzie jeszcze żadnych baz danych, ale jeśli otrzymasz pustą listę bez błędów, wszystko w porządku.

Krok 9: Instalacja Telegraf

To jest naprawdę łatwe, ponieważ dodaliśmy repozytoria influxdb, które możemy po prostu wpisać:

sudo apt-get zainstaluj system telegrafsudoctl włącz system telegrafsudoctl start telegraf

W tym momencie Telegraf będzie już logował metryki systemowe do influxdb. Możesz je zobaczyć, wpisując te polecenia:

bazy danych influxshowużyj serii telegrafshowSELECT * FROM cpu LIMIT 10;

Krok 10: Zainstaluj Mosquitto

Ta część jest łatwa, ponieważ po prostu instalujemy domyślną wersję dołączoną do programu raspian:

sudo apt-get -y zainstaluj mosquittosudo apt-get -y zainstaluj mosquitto-clientssudo systemctl włącz mosquittosudo systemctl start mosquitto# utwórz hasło dla mosquittosudo mosquitto_passwd -c /etc/mosquitto/tasmota tasmota#wprowadź hasło. Zapisz to hasło, ponieważ będziemy musieli podać je inteligentnej wtyczce

Testować:

uruchom to w jednej sesji SSH:

mosquitto_sub -t test

Uruchom to w innym

mosquitto_pub -t test -m mojawiadomość

Powinieneś zobaczyć wiadomość podczas pierwszej sesji SSH

Krok 11: Wysyłanie danych z Smart Plug do Mosquitto

Wysyłanie danych z inteligentnej wtyczki do Mosquitto
Wysyłanie danych z inteligentnej wtyczki do Mosquitto

Teraz mamy uruchomionego mosquitto, musimy skonfigurować inteligentną wtyczkę, aby wysyłała dane do mosquitto. Jest to dość łatwe do zrobienia. Będziemy potrzebować hasła wprowadzonego do mosquitto z poprzedniego kroku.

1) Zaloguj się na swoją stronę internetową Smart Plugs

2) Kliknij Konfiguracja, a następnie Konfiguruj rejestrowanie

3) Ustaw okres telemetrii na 10 i kliknij Zapisz.

4) Kliknij Konfiguruj MQTT

5) Dla hosta wprowadź adres IP swojego PI

6) Jako nazwę użytkownika wpisz tasmota

7) W przypadku hasła wprowadź hasło z poprzedniego kroku

8) Jako temat wpisz tasmota1

9) Kliknij Zapisz

Testować:

W PI wpisz poniższe polecenie. W ciągu 10 sekund powinieneś zobaczyć napływające dane.

mosquitto_sub -t tele/tasmota1/SENSOR

Dane powinny wyglądać tak:

Krok 12: Użyj Telegrafa, aby przesłać dane z Mosquitto do Influx

Teraz skonfigurujemy Telegrafa, aby odczytał dane z mosquitto i przesłał do influxdb. Na PI:

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

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

Uwaga vi nie jest zbyt przyjazna dla nowych użytkowników, jeśli wolisz edytor tekstu oparty na menu, użyj zamiast tego nano:

sudo nano /etc/telegraf/telegraf.conf

3) Wklej konfigurację z załączonego pliku

4) sudo systemctl restart telegraf

Aby przetestować, wpisz to w PI:

napływ

pokaż bazy danych

powinieneś zobaczyć testową bazę danych. Jeśli nie podoba Ci się test nazwy, możesz zmienić dest_db w pliku telegraf.conf.

Krok 13: Na koniec utwórz wykresy w Grafana

Na koniec utwórz wykresy w Grafana
Na koniec utwórz wykresy w Grafana

Wreszcie widzimy trochę danych:-):-)

Najpierw musimy utworzyć połączenie z bazą danych. Przejdź do strony internetowej grafana http:[ip PI]:3000

1) Zaloguj się jako admin/admin

2) W lewej kolumnie kliknij ikonę koła zębatego i źródła danych

3) Kliknij dodaj źródło danych

4) Kliknij napływdb

5) Jako adres URL wpisz

6) Dla bazy danych wpisz test

7) Dla HTTP wpisz GET

8) Dla minimalnego przedziału czasowego wpisz 10s

9) Kliknij Zapisz i przetestuj, powinien pojawić się komunikat „Źródło danych działa”

OK, teraz mamy połączenie z bazą danych możemy stworzyć wykres… w końcu.

1) W lewej kolumnie kliknij +, a następnie Dashboard i Dodaj nowy panel

2) Dla bazy danych kliknij InfluxDB

3) Kliknij pomiar i wybierz Kogan

4) W polu wybierz Energia_Moc.

5) Jako alias nadaj swojej serii nazwę (np. Zmywarka)

6) Po prawej stronie Panel Title nadaj mu nazwę, np. Power.

7) To wszystko, powinieneś zobaczyć dane. Kliknij przycisk strzałki w lewo, aby wyjść z edycji, a następnie kliknij Zapisz i nadaj nazwę pulpitowi nawigacyjnemu.

Jeśli dotarłeś tak daleko, świetna robota, poważnie.

Krok 14: Jeszcze kilka wskazówek

Jeszcze kilka wskazówek
Jeszcze kilka wskazówek
Jeszcze kilka wskazówek
Jeszcze kilka wskazówek

Domyślna konfiguracja Telegrafa, którą dostarczyłem, wymagała nieco konserwacji, ponieważ należy dodać nową sekcję dla każdego urządzenia i ponownie uruchomić Telegraf. Dzięki poniższym zmianom wszystko jest znacznie bardziej dynamiczne, ponieważ urządzenia można dodawać lub zmieniać nazwy w konfiguracji Tasmota bez konieczności zmiany Telegrafa.

Pierwszą zmianą jest umieszczenie + w nazwie tematu, jest to w zasadzie symbol wieloznaczny. Samo to wystarczyłoby, chyba że podczas tworzenia wykresów w Grafanie urządzenia pojawiają się pod nazwami takimi jak "tele/WashingMachine/SENSOR". Druga część poniższej konfiguracji Telegrafa to procesor regex. Wyciąga tekst „WashingMachine” ze środka i zamienia go w nowy tag, który jest przesyłany do InfluxDB.

Uwaga: upewnij się, że ustawiłeś inną nazwę tematu w konfiguracji Tasmota dla każdego urządzenia

[wejścia.mqtt_consumer.tags] dest_db = "test"

Po wykonaniu tej czynności bardzo łatwo jest skonfigurować Grafana, aby wyświetlał wiele urządzeń na jednym wykresie. Zdjęcie dołączone do tego kroku pokazuje, co należy zrobić. Wystarczy kliknąć znak + w grupie według linii i wybrać tag (urządzenie). Na dole w Alias By wpisz $tag_device. Powinieneś teraz zobaczyć wiele serii na jednym wykresie. Możesz kliknąć tekst każdego elementu, aby je włączyć lub wyłączyć (kliknięcie ctrl działa, aby wybrać wielokrotność)

Zalecana: