Innholdsfortegnelse:

Home Appliance Raspberry PI -basert strømmonitor: 14 trinn
Home Appliance Raspberry PI -basert strømmonitor: 14 trinn

Video: Home Appliance Raspberry PI -basert strømmonitor: 14 trinn

Video: Home Appliance Raspberry PI -basert strømmonitor: 14 trinn
Video: Home Automation with Raspberry Pi 3 and Google Assistant SDK 2024, November
Anonim
Home Appliance Bringebær PI -basert strømmonitor
Home Appliance Bringebær PI -basert strømmonitor
Home Appliance Bringebær PI -basert strømmonitor
Home Appliance Bringebær PI -basert strømmonitor

Dette var et lite prosjekt jeg gjorde for å overvåke strømforbruket til individuelle apparater rundt i huset og vise grafer over strømforbruket over tid. Det er faktisk et av de enklere Raspberry PI -baserte prosjektene jeg har gjort, ingen lodding eller hacking av åpne produkter kreves. Det trenger ikke å være et Raspberry PI -prosjekt, det kan enkelt gjøres på en Linux -boks eller kanskje Windows.

Kostnaden er $ 50 AUD for et sett med 4 av strømmonitoren/smarte plugger og kostnaden for en Raspberry PI. Dette kan kjøres på en Pi Zero eller Original PI, selv om jeg syntes det var litt tregt. Den eneste andre PI jeg har er en PI 3, og jeg syntes den var veldig grei, så det er det jeg vil anbefale. Vær oppmerksom på at hvis du vil kjøre den på en eldre PI, kan du redusere frekvensen av datainnsamling (jeg brukte 10 sekunder).

Dette prosjektet har også den ekstra fordelen eller å frigjøre smartpluggen fra produsentens fastvare, slik at du ikke trenger å bruke deres spesifikke apper og skytjenester. Så de kan brukes med Home Assist eller bare med dine egne python -skript.

Vær oppmerksom på at jeg antar at du vet hvordan du installerer operativsystemet på PI, kobler til det og kjører noen grunnleggende linux -kommandoer. Jeg antar også at du vet hvordan du finner IP -adressen til smartpluggen din når den kobles til WiFi.

Rekvisita

2 eller 4 pakker med smarte plugger herfra:

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

1 bringebær PI

Ferdigheter:

Evne til å sette opp en bringebær -PI

Grunnleggende linux kommandolinje

Teksteditor som vi eller nano (nano er mer brukervennlig, vi er raskere når du blir kjent med det)

Evne til å finne IP -en til enheter på nettverket ditt.

Trinn 1: Kjøp noen smarte plugger

Kjøp noen smarte plugger
Kjøp noen smarte plugger

Den smarte pluggen jeg brukte var herfra:

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

Vær oppmerksom på at det er en hel rekke smarte plugger som er kompatible. De fleste (alle?) Er ESP8266 (WEMOS) -baserte enheter og er veldig enkle å blinke. Sørg for å få noe som har strømovervåking som mange ikke har. Denne siden viser en stor liste over kompatible enheter:

templates.blakadder.com/plug.html

Trinn 2: Blinker enheten

Denne delen var overraskende lett. Du laster i utgangspunktet bare ned programvaren, kjører den og den leder deg gjennom.

For dette trenger du en Raspberry PI eller Linux -boks med WiFi. Du må ha din primære tilkobling til denne enheten IKKE som WiFi. For min PI3 var dette enkelt da jeg ble koblet til via Ethernet. Hvis du har en PI Zero, må du koble den gamle måten, med et tastatur og en skjerm.

Jeg antar at du vet hvordan du konfigurerer en PI og kobler til den med SSH eller et tastatur, så jeg kommer ikke til å gå gjennom det. Hvis du er usikker, er det mange opplæringsprogrammer på nettet.

Før vi begynner, bare litt bakgrunn på enhetene. Det er et selskap i Kina som heter Tuya som pumper ut smarte plugger for forskjellige kunder. De gjør tilpasninger for forskjellige kunder og tilbyr en standard fastvare og lar selskaper gjøre sine egne modifikasjoner. Problemet med dette er at hvis du har en haug med produkter fra forskjellige leverandører, må du kjøre en haug med apper, hvorav noen fungerer bedre enn andre. Ved å blinke en åpen kildekode -fastvare frigjør du deg selv fra alt dette. Så dette er bra for generell hjemmeautomatisering.

Så…. uten videre, her er instruksjonene:

1) Kjør disse kommandoene på PI, dette vil installere nødvendig programvare.

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

2) Koble smartpluggen til strøm

3) Slå den på med knappen

4) Hold inne strømknappen til det blå lyset begynner å blinke

5) Vent 10 sekunder. Dette er ikke viktig, men jeg syntes det fungerte bedre hvis du gjorde det.

6) Kjør denne kommandoen

./start_flash.sh

Herfra følger du bare instruksjonene bortsett fra på slutten velg "2. Tasmota". Det er et alternativ for en annen fastvare, men jeg har ikke prøvd det, så jeg er ikke sikker på hvordan det er.

Legg merke til at jeg måtte gjøre dette mer enn en gang, først trodde jeg at jeg hadde muret enheten, jeg hadde ingen lys, ingen stafettklikk, ingen tegn på liv. Men jeg slo den av og kjørte den siste kommandoen igjen, og det fungerte. Jeg måtte gjøre dette med 3 av de 4 enhetene jeg blinket, bare en gikk rett igjennom, tror jeg på grunn av trinn 5.

Full instruksjon her:

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

Trinn 3: Koble til fastvaren for første gang

Koble til fastvaren for første gang
Koble til fastvaren for første gang
Koble til fastvaren for første gang
Koble til fastvaren for første gang
Koble til fastvaren for første gang
Koble til fastvaren for første gang

Når du har blinket tasmota til enheten, vil den ikke vise mange tegn på liv. Grunnen til dette er at den må konfigureres. Å gjøre dette er ganske enkelt, jeg fant det best å gjøre det med telefonen min. Trinnene er:

1) Søk etter WiFi -tilgangspunkter

2) Koble til den merkede tasmota_xxxx (der x er tall)

3) Telefonen skal lede deg til standardsiden, hvis ikke gå til 192.168.4.1

Merk at på noen telefoner kan det gi deg en melding som sier "ingen internettilgang, vil du holde kontakten", velg ja.

4) På siden det åpnes, skriv inn navnet på WiFi -nettverket og passordet i de to første boksene. Klikk på alternativet for å vise passord og trippel sjekk at du har angitt riktig passord. Hvis du har angitt feil passord, tror jeg det kan være vanskelig å komme tilbake til denne konfigurasjonsskjermen. Vær oppmerksom på at du også kan søke etter WiFi -nettverk, selv om du åpenbart fortsatt må skrive inn passordet.

5) Pluggen skal nå ha koblet seg til ditt WiFi -nettverk. Du må gå til konfigurasjonssiden for ruteren din og finne IP -adressen til enheten din.

6) Åpne en nettleser på din PC og gå til https:// [device_ip] Du bør se konfigurasjonsskjermen fra Tasmota.

Gratulerer, du har blinket pluggen.

Trinn 4: Konfigurere pluggen

Konfigurere pluggen
Konfigurere pluggen

Selskapet som lager disse enhetene lager tilsynelatende 10 000 enheter med mange forskjellige konfigurasjoner. Vi har nettopp blinket en ny fastvare, og fastvaren vet ikke hvilke enheter den har blitt blinket på. Så før noe fungerer, må vi konfigurere det. For å gjøre det må vi finne detaljene for enheten vår på nettet og laste den aktuelle konfigurasjonen.

For dette, finn enheten din på denne siden:

templates.blakadder.com/plug.html

For enheten jeg brukte, er konfigurasjonen her:

templates.blakadder.com/kogan-KASPEMHUSBA….

For å angi konfigurasjonen kopierer vi bare teksten under mal. I dette tilfellet er det:

Deretter

1) Gå til enhetens konfigurasjonsside https:// [IP for smart plug]

2) Klikk på konfigurer, konfigurer annet

3) Lim inn malstrengen din

4) Merk av for "Aktiver MQTT"

5) Klikk på aktiver og lagre.

For å teste at dette har fungert, klikk på "Hovedmeny" for å gå tilbake til hjemmesiden, og du bør nå se strømforbrukstall. De vil alle være null, selv spenningen, men dette er et godt tegn. Klikk på vippeknappen, og du bør høre reléklikket og se spenningen gå opp.

Trinn 5: Kalibrer spenning

Kalibrer spenning
Kalibrer spenning

Jeg fant spenningsavlesningen viste ganske høy. Hvis du har en annen kilde til spenningsmåling i huset (f.eks. Smartmåler kanskje ??), kan du kalibrere støpselet veldig enkelt. Å gjøre dette

1) Få riktig spenningsmåling

2) Slå på reléet i smartpluggen

3) Klikk på Konsoll på startsiden for enheten

4) Skriv inn kommandoen "VoltageSet 228" og trykk enter (bytt 228 med spenningen)

Spenningen skal nå vises riktig.

Trinn 6: Installere programvare på PI

Det er noen få pakker som må installeres på PI. Disse er enkle å installere og kan gjøres etter instruksjonene fra de forskjellige pakkene. Jeg vil gi instruksjonene her, men merk at de kan endres over tid, så instruksjonene mine vil dateres. Pakkene er:

Grafana (for å vise grafer)

Influxdb (tidsseriedatabase som lagrer dataene våre)

Telegraf (brukes til å skyve data inn i Influxdb)

Mosquitto (meldingsbuss som brukes til å sende data rundt, smartpluggen skyver dataene hit)

Dataflyten er som følger:

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

Hvis du spør hvorfor vi ikke kan hoppe over Mosquitto og Telegraf, er det et godt spørsmål. I teorien kan Smart Plug skyve til Tilstrømning. Problemet med det er at det da må konfigureres for 100 -talls forskjellige endepunkter, og det vil låse oss utenfor noen valg. De fleste tingene i hjemmeautomatisering bruker Mosquitto til å sende meldinger rundt. Som et eksempel kan vi slå pluggen av og på ved å sende meldinger til Mosquitto, og smartpluggen vil motta dem og svare.

Trinn 7: Installere Grafana

Installerer Grafana
Installerer Grafana

Fra:

grafana.com/grafana/download?platform=arm

Eller mange andre alternativer her:

grafana.com/grafana/download

For Pi 1 og Pi Zero (ARMv6)

sudo apt-get install -y adduser libfontconfig1#finn den nyeste versjonen fra siden på 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 aktiver grafana-serversudo /bin /systemctl start grafana-server

For nyere PI (ARMv7)

sudo apt -get install -y adduser libfontconfig1#finn den nyeste versjonen fra siden på 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 aktiver grafana-serversudo/bin/systemctl start grafana-server

Å teste:

Gå til https:// [IP of PI]: 3000

brukernavn/passord er admin/admin, det vil be deg om å endre det, du kan hoppe over for nå

Hvis du får en GUI, er alt bra, gå til neste trinn

Trinn 8: Installere InfluxDB

Kjør disse kommandoene på 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 stabil" | sudo tee /etc/apt/sources.list.d/influxdb.listtest $ VERSION_ID = "10" && echo "deb https://repos.influxdata.com/debian buster stable" | sudo tee /etc/apt/sources.list.d/influxdb.listsudo apt-get updatesudo apt-get install influxdbsudo systemctl aktiver influxdbsudo systemctl start influxdb

Test ved å skrive "tilstrømning". Dette bør sette deg inn i influxdb -kommandolinjen. Skriv "vis databaser", det vil ikke være noen databaser ennå, men hvis du får en tom liste uten feil, er alt bra.

Trinn 9: Installere Telegraf

Denne er veldig enkel, fordi vi la til influxdb -reposene vi bare kan skrive:

sudo apt-get install telegrafsudo systemctl aktiver telegrafsudo systemctl start telegraf

På dette tidspunktet vil Telegraf allerede logge systemberegninger til influxdb. Du kan se dem ved å skrive disse kommandoene:

tilstrømningshow databaser bruk telegrafshow -serierVELG * FRA cpu LIMIT 10;

Trinn 10: Installer Mosquitto

Denne delen er enkel ettersom vi bare installerer standardversjonen som er pakket med raspian:

sudo apt -get -y install mosquittosudo apt -get -y install mosquitto -clientssudo systemctl aktiver mosquittosudo systemctl start mosquitto# opprett et passord for mosquittosudo mosquitto_passwd -c/etc/mosquitto/tasmota tasmota# skriv inn et passord. Skriv ned dette passordet, da vi må gi dette til smartpluggen

Å teste:

kjør dette i en SSH -økt:

mygg_sub -t test

Kjør dette i en annen

mygg_pub -t test -m melding

Du bør se meldingen din i den første SSH -økten

Trinn 11: Sende data fra Smart Plug til Mosquitto

Sender data fra Smart Plug til Mosquitto
Sender data fra Smart Plug til Mosquitto

Nå har vi mygg i gang, vi må konfigurere smartpluggen for å sende data til mygg. Dette er ganske enkelt å gjøre. Vi trenger passordet som er angitt for mygg fra forrige trinn.

1) Logg deg på smartpluggen din

2) Klikk på Konfigurasjon og deretter på Konfigurer logging

3) Sett telemetriperioden til 10 og klikk på lagre.

4) Klikk på Konfigurer MQTT

5) Skriv inn IP -adressen til PI -en for verten

6) Skriv inn tasmota for brukernavn

7) Skriv inn passordet fra forrige trinn for passord

8) Angi tasmota1 for emne

9) Klikk på lagre

Å teste:

Skriv inn kommandoen nedenfor på PI. I løpet av 10 sekunder bør du se data komme gjennom.

mosquitto_sub -t tele/tasmota1/SENSOR

Data skal se slik ut:

Trinn 12: Bruk Telegraf til å skyve data fra mygg til tilstrømning

Vi skal nå konfigurere Telegraf til å lese dataene fra mygg og presse til influxdb. På PI:

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

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

Merk vi ikke er supervennlig for nye brukere, hvis du foretrekker et menybasert tekstredigeringsprogram, bruk nano i stedet:

sudo nano /etc/telegraf/telegraf.conf

3) Lim inn konfigurasjonen fra den vedlagte filen

4) sudo systemctl start telegraf på nytt

For å teste skriver du dette på PI:

tilstrømning

vise databaser

du bør se testdatabasen. Hvis du ikke liker namnetesten, kan du endre dest_db i filen telegraf.conf.

Trinn 13: Til slutt, lag grafer i Grafana

Til slutt lager du grafer i Grafana
Til slutt lager du grafer i Grafana

Endelig får vi se noen data:-):-)

Først må vi opprette en forbindelse til databasen. Gå til grafana -websiden http: [ip of PI]: 3000

1) Logg inn med admin/admin

2) Klikk på tannhjulikonet og datakildene i den venstre kolonnen

3) Klikk på legg til datakilde

4) Klikk på influxdb

5) For URL angi https:// localhost: 8086

6) For database, skriv inn test

7) Angi GET for

8) Angi 10s for min tidsintervall

9) Klikk på Lagre og test, det skal stå "Datakilde fungerer"

OK, nå har vi en forbindelse til databasen, vi kan lage en graf … endelig.

1) I venstre kolonne klikker du på + og deretter Dashboard og Legg til nytt panel

2) Klikk på InfluxDB for databasen

3) Klikk på måling og velg Kogan

4) Velg Energy_Power for feltet.

5) For alias, gi serien et navn (f.eks. Oppvaskmaskin)

6) Gi den et navn på paneltittelen på høyre side, f.eks. Power.

7) Det er det, du bør se data. Klikk på venstre pilknapp for å gå ut av redigeringen, og klikk deretter på lagre, gi dashbordet et navn.

Hvis du kom så langt, flott arbeid, seriøst.

Trinn 14: Noen flere tips

Noen flere tips
Noen flere tips
Noen flere tips
Noen flere tips

Standard Telegraf -konfigurasjonen jeg ga var litt vedlikeholdskrevende ved at en ny seksjon må legges til for hver enhet og en omstart av Telegraf må utføres. Med endringene nedenfor gjør det tingene mye mer dynamiske ved at enheter kan legges til eller gi nytt navn i Tasmota -konfigurasjonen uten å måtte endre Telegraf.

Den første endringen er å sette + i emnet navn, dette er i utgangspunktet et jokertegn. Dette i seg selv ville være nok bortsett fra når du lager grafer i Grafana, kommer enhetene opp med navn som "tele/WashingMachine/SENSOR". Den andre delen av Telegraf -konfigurasjonen nedenfor er regex -prosessoren. Den trekker teksten "WashingMachine" ut av midten og gjør den til en ny tag som blir presset til InfluxDB.

Merk: Sørg for å konfigurere et annet emnenavn i Tasmota -konfigurasjonen for hver enhet

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

Når dette er gjort er det veldig enkelt å konfigurere Grafana til å vise flere enheter på den ene grafen. Bildet vedlagt dette trinnet viser hva som må gjøres. Bare klikk på + -tegnet på gruppen etter linje og velg tag (enhet). I bunnen av Alias By skriv inn $ tag_device. Du bør nå se flere serier på den ene grafen. Du kan klikke på teksten til hvert element for å slå dem på og av (ctrl klikk fungerer for å velge multipler)

Anbefalt: