Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Kup kilka inteligentnych wtyczek
- Krok 2: Flashowanie urządzenia
- Krok 3: Łączenie się z oprogramowaniem układowym po raz pierwszy
- Krok 4: Konfiguracja wtyczki
- Krok 5: Skalibruj napięcie
- Krok 6: Instalacja oprogramowania na PI
- Krok 7: Instalacja Grafana
- Krok 8: Instalacja InfluxDB
- Krok 9: Instalacja Telegraf
- Krok 10: Zainstaluj Mosquitto
- Krok 11: Wysyłanie danych z Smart Plug do Mosquitto
- Krok 12: Użyj Telegrafa, aby przesłać dane z Mosquitto do Influx
- Krok 13: Na koniec utwórz wykresy w Grafana
- Krok 14: Jeszcze kilka wskazówek
Wideo: Monitor mocy oparty na Raspberry PI w urządzeniach domowych: 14 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
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
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
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
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
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
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
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
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
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:
Generator muzyki oparty na pogodzie (generator Midi oparty na ESP8266): 4 kroki (ze zdjęciami)
Generator muzyki oparty na pogodzie (Generator Midi oparty na ESP8266): Cześć, dzisiaj wyjaśnię, jak zrobić własny mały generator muzyki oparty na pogodzie. Jest oparty na ESP8266, który jest trochę jak Arduino i reaguje na temperaturę, deszcz i intensywność światła.Nie oczekuj, że sprawi, że całe utwory lub akordy będą pro
Jak prawidłowo zmierzyć pobór mocy modułów komunikacji bezprzewodowej w dobie niskiego poboru mocy?: 6 kroków
Jak prawidłowo zmierzyć pobór mocy modułów komunikacji bezprzewodowej w dobie niskiego poboru mocy?: Niski pobór mocy jest niezwykle ważnym pojęciem w Internecie rzeczy. Większość węzłów IoT musi być zasilana bateriami. Tylko poprzez prawidłowe zmierzenie poboru mocy modułu bezprzewodowego możemy dokładnie oszacować, ile baterii
Poprawa mocy modułu lasera wytrzymałościowego o mocy 10 W: 6 kroków
Poprawa mocy modułu lasera wytrzymałościowego o mocy 10 W: Kupiłem zestaw lasera o mocy 10 W. Złożyłem zestaw laserowy i podłączyłem zgodnie z instrukcją. Kiedy ustawiałem napięcie i prąd lasera, aby mieć dobrą moc lasera i zapewnić bezpieczeństwo diody laserowej, nie byłem w stanie uzyskać więcej niż 3,7A@5VI
Użyj klawiatury na podczerwień Palm na urządzeniach z Androidem: 5 kroków
Użyj klawiatury na podczerwień Palm z urządzeniami z Androidem: Miałem bezprzewodową klawiaturę PalmOne i chciałem mieć klawiaturę Bluetooth do mojego telefonu. Jedynym problemem było to, że klawiatura PalmOne była oparta na podczerwieni. Miałem też urządzenie Brainlink. To raczej urocze małe urządzenie do mediat
Monitor zwierząt domowych IoT!: 6 kroków (ze zdjęciami)
Monitor zwierzaka IoT!: Miej oko na swoich ukochanych dzieci i odtwarzaj muzykę lub każ im być cicho, gdy Cię nie ma! Ten samouczek pokaże, jak używać komputera Raspberry Pi do monitorowania głośności dźwięku w domu (za pośrednictwem chmury), aby sprawdzić, czy i kiedy zwierzę jest zdenerwowane