Innehållsförteckning:
- Tillbehör
- Steg 1: Köp några smarta kontakter
- Steg 2: Blinkar enheten
- Steg 3: Anslutning till firmware för första gången
- Steg 4: Konfigurera kontakten
- Steg 5: Kalibrera spänning
- Steg 6: Installera programvara på PI
- Steg 7: Installera Grafana
- Steg 8: Installera InfluxDB
- Steg 9: Installera Telegraf
- Steg 10: Installera Mosquitto
- Steg 11: Skicka data från Smart Plug till Mosquitto
- Steg 12: Använd Telegraf för att flytta data från mygga till tillströmning
- Steg 13: Slutligen, skapa grafer i Grafana
- Steg 14: Några fler tips
Video: Hushållsapparat Raspberry PI Based Power Monitor: 14 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:38
Detta var ett litet projekt jag gjorde för att övervaka strömförbrukningen för enskilda apparater runt huset och visa diagram över deras energianvändning över tid. Det är faktiskt ett av de enklare Raspberry PI -baserade projekten jag har gjort, ingen lödning eller hackning av öppna produkter krävs. Det behöver inte vara ett Raspberry PI -projekt, det kan enkelt göras på en Linux -låda eller kanske Windows.
Kostnaden är $ 50 AUD för en uppsättning av 4 av strömmonitorn/smarta kontakter och kostnaden för en Raspberry PI. Detta kan köras på en Pi Zero eller Original PI även om jag tyckte att det var lite långsamt. Den enda andra PI jag har är en PI 3 och jag tyckte att den var väldigt snygg, så det är vad jag skulle rekommendera. Observera att om du vill köra den på en äldre PI kan du minska datainsamlingsfrekvensen (jag använde 10 sekunder).
Detta projekt har också den extra fördelen eller att frigöra den smarta kontakten från tillverkarens firmware, så du behöver inte använda deras specifika appar och molntjänster. Så de kan användas med Home Assist eller bara med dina egna python -skript.
Observera att jag antar att du vet hur du installerar operativsystemet på PI, ansluter till det och kör några grundläggande Linux -kommandon. Jag antar också att du vet hur du hittar IP -adressen till din smarta kontakt när den ansluts till din WiFi.
Tillbehör
2 -pack eller 4 -pack smarta kontakter härifrån:
www.kogan.com/au/buy/kogan-smarterhome-sma…
1 hallon PI
Kompetens:
Möjlighet att konfigurera en hallon -PI
Grundläggande Linux -kommandorad
Textredigerare som vi eller nano (nano är mer användarvänligt, vi är snabbare när du lär känna det)
Möjlighet att hitta IP för enheter i ditt nätverk.
Steg 1: Köp några smarta kontakter
Den smarta kontakten jag använde var härifrån:
www.kogan.com/au/buy/kogan-smarterhome-sma…
Observera att det finns en rad smarta kontakter som är kompatibla, de flesta (alla?) Är ESP8266 (WEMOS) -baserade enheter och är mycket lätta att blinka. Se till att skaffa något som har effektövervakning som många inte har. Denna sida visar en stor lista över kompatibla enheter:
templates.blakadder.com/plug.html
Steg 2: Blinkar enheten
Denna del var förvånansvärt lätt. Du laddar i princip bara ner programvaran, kör den och den tar dig igenom.
För detta behöver du en Raspberry PI- eller Linux -låda med WiFi. Du måste ha din primära anslutning till den här enheten INTE vara WiFi. För min PI3 var det enkelt eftersom jag var ansluten via Ethernet. Om du har en PI Zero måste du ansluta det gammaldags sättet med ett tangentbord och en bildskärm.
Jag antar att du vet hur du konfigurerar en PI och ansluter till den med SSH eller ett tangentbord så jag kommer inte att gå igenom det. Om du är osäker finns det gott om självstudier på webben.
Innan vi börjar, bara lite bakgrund på enheterna. Det finns ett företag i Kina som heter Tuya som pumpar ut smarta kontakter för olika kunder. De gör anpassningar för olika kunder och tillhandahåller en standard firmware och tillåter företag att göra sina egna ändringar. Problemet med detta är om du har ett gäng produkter från olika leverantörer så måste du köra ett gäng appar, varav några fungerar bättre än andra. Genom att blinka en öppen källkodsprogramvara befriar du dig från allt detta. Så det här är bra för allmän hemautomation.
Så…. utan vidare, här är instruktionerna:
1) Kör dessa kommandon på PI, detta installerar nödvändig programvara.
# git-klon https://github.com/ct-Open-Source/tuya-convert# cd tuya-convert#./install_prereq.sh
2) Anslut den smarta kontakten till strömmen
3) Slå på den med knappen
4) Håll strömknappen intryckt tills det blå ljuset börjar blinka
5) Vänta 10 sekunder. Detta är inte nödvändigt men jag tyckte att det fungerade bättre om du gjorde det.
6) Kör det här kommandot
./start_flash.sh
Härifrån följer du bara anvisningarna utom i slutet väljer du "2. Tasmota". Det finns ett alternativ för en annan firmware men jag har inte provat det så jag är inte säker på hur det är.
Observera att jag var tvungen att göra detta mer än en gång, först trodde jag att jag hade murat enheten, jag hade inga lampor, inget reläklick, inga tecken på liv. Men jag stängde av den och körde det sista kommandot igen och det fungerade. Jag var tvungen att göra detta med 3 av de 4 enheter som jag blinkade, bara en gick rakt igenom, jag tror att på grund av steg 5.
Fullständiga instruktioner här:
github.com/ct-Open-Source/tuya-convert
Steg 3: Anslutning till firmware för första gången
När du har blinkat tasmota till enheten kommer det inte att visa många tecken på liv. Anledningen till detta är att det måste konfigureras. Det här är ganska enkelt, jag tyckte att det var bäst att göra det med min telefon. Stegen är:
1) Sök efter WiFi -åtkomstpunkter
2) Anslut till den som är märkt tasmota_xxxx (där x är tal)
3) Telefonen bör hänvisa dig till standardsidan, om inte gå till 192.168.4.1
Observera att på vissa telefoner kan det ge dig ett meddelande som säger "ingen internetuppkoppling, vill du hålla kontakten", välj ja.
4) På sidan öppnas namnet på ditt WiFi -nätverk och lösenordet i de två första rutorna. Klicka på alternativet för att visa lösenord och trippelkolla att du har angett rätt lösenord. Om du har angett fel lösenord tror jag att det kan vara svårt att komma tillbaka till denna konfigurationsskärm. Observera att du också kan söka efter WiFi -nätverk, även om du självklart fortfarande behöver ange lösenordet.
5) Pluggen ska nu ha anslutit till ditt WiFi -nätverk. Du måste gå till konfigurationssidan för din router och hitta din enhets IP -adress.
6) Öppna en webbläsare på din dator och gå till https:// [device_ip] Du bör se konfigurationsskärmen från Tasmota.
Grattis, du har lyckats blinka kontakten.
Steg 4: Konfigurera kontakten
Företaget som tillverkar dessa enheter tillverkar tydligen 10 000 enheter med många olika konfigurationer. Vi har just blinkat en ny firmware och firmware vet inte vilka enheter den har blinkats på. Så innan någonting kommer att fungera måste vi konfigurera det. För att göra det måste vi hitta detaljerna om vår enhet på webben och ladda den specifika konfigurationen.
För detta, hitta din enhet på den här sidan:
templates.blakadder.com/plug.html
För enheten jag använde är konfigurationen här:
templates.blakadder.com/kogan-KASPEMHUSBA….
För att ställa in konfigurationen kopierar vi bara texten under Mall. I det här fallet är det:
Sedan
1) Gå till enhetens konfigurationssida https:// [IP för smart plug]
2) Klicka på konfigurera, konfigurera annat
3) Klistra in i din mallsträng
4) Markera "Aktivera MQTT"
5) Klicka på aktivera och Spara.
För att testa detta har fungerat, klicka på "Huvudmeny" för att gå tillbaka till hemsidan och du bör nu se energiförbrukningssiffror. De kommer alla att vara noll, även spänningen men detta är ett bra tecken. Klicka på växlingsknappen och du bör höra reläklicket och se spänningen gå upp.
Steg 5: Kalibrera spänning
Jag tyckte att spänningsavläsningen visade sig ganska hög. Om du har en annan spänningskälla i huset (t.ex. smart mätare kanske) kan du kalibrera kontakten väldigt enkelt. Att göra detta
1) Få rätt spänningsmätning
2) Slå på reläet i smartkontakten
3) Klicka på Konsol på enhetens hemsida
4) Ange kommandot "VoltageSet 228" och tryck enter (ersätt 228 med din spänning)
Spänningen ska nu visas korrekt.
Steg 6: Installera programvara på PI
Det finns några paket som måste installeras på PI. Dessa är enkla att installera och kan göras enligt instruktionerna från de olika paketen. Jag ger instruktionerna här men notera att de kan ändras med tiden så att mina instruktioner kommer att dateras. Paketen är:
Grafana (för att visa grafer)
Influxdb (tidsseriedatabas som lagrar våra data)
Telegraf (används för att pressa in data i Influxdb)
Mosquitto (meddelandebuss som används för att vidarebefordra data, den smarta kontakten skjuter data hit)
Dataflödeskedjan är så här:
Smart Plug -> Mosquitto -> Telegraf -> InfluxDB -> Grafana
Om du frågar varför vi inte kan hoppa över Mosquitto och Telegraf är det en bra fråga. I teorin kan Smart Plug driva till Influx. Problemet med det är att det då måste vara konfigurerbart för 100 -tal olika slutpunkter och det skulle låsa oss från några val. De flesta saker inom hemautomation använder Mosquitto för att skicka meddelanden. Som ett exempel kan vi slå på och av kontakten genom att skicka meddelanden till Mosquitto och den smarta kontakten tar emot dem och svarar.
Steg 7: Installera Grafana
Från:
grafana.com/grafana/download?platform=arm
Eller många andra alternativ här:
grafana.com/grafana/download
För Pi 1 och Pi Zero (ARMv6)
sudo apt-get install -y adduser libfontconfig1#hitta den senaste versionen från sidan 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 aktivera grafana-serversudo /bin /systemctl starta grafana-server
För nyare PI (ARMv7)
sudo apt -get install -y adduser libfontconfig1#hitta den senaste versionen från sidan 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 aktivera grafana-serversudo/bin/systemctl starta grafana-server
Att testa:
Gå till https:// [IP of PI]: 3000
användarnamn/lösenord är admin/admin, det kommer att be dig att ändra det, du kan hoppa över för tillfället
Om du får ett GUI är allt bra, gå vidare till nästa steg
Steg 8: Installera InfluxDB
Kör dessa kommandon 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 aktivera influxdbsudo systemctl starta influxdb
Testa genom att skriva "tillströmning". Detta bör placera dig på kommandoraden influxdb. Skriv "visa databaser", det kommer inte att finnas några databaser än, men om du får en tom lista utan fel är allt bra.
Steg 9: Installera Telegraf
Det här är verkligen enkelt, eftersom vi har lagt till de influxdb -repor som vi bara kan skriva:
sudo apt-get install telegrafsudo systemctl aktivera telegrafsudo systemctl start telegraf
Vid denna tidpunkt loggar Telegraf redan systemmätvärden till influxdb. Du kan se dem genom att skriva dessa kommandon:
inflyttshow -databaseranvänd telegrafshow -serierVÄLJ * FRÅN cpu LIMIT 10;
Steg 10: Installera Mosquitto
Den här delen är enkel eftersom vi bara installerar standardversionen som är förpackad med raspian:
sudo apt -get -y install mosquittosudo apt -get -y install mosquitto -clientssudo systemctl aktivera mosquittosudo systemctl start mosquitto# skapa ett lösenord för mosquittosudo mosquitto_passwd -c/etc/mosquitto/tasmota tasmota# ange ett lösenord. Skriv ner det här lösenordet eftersom vi måste ge detta till smart plug
Att testa:
kör detta i en SSH -session:
mygg_sub -t test
Kör detta i en annan
mosquitto_pub -t test -m mymessage
Du bör se meddelandet i den första SSH -sessionen
Steg 11: Skicka data från Smart Plug till Mosquitto
Nu har vi mygg igång, vi måste konfigurera den smarta kontakten för att skicka data till myggan. Detta är ganska enkelt att göra. Vi kommer att behöva ange lösenordet för mygg från föregående steg.
1) Logga in på din webbsida för smarta kontakter
2) Klicka på Konfiguration och sedan på Konfigurera loggning
3) Ställ in telemetriperioden till 10 och klicka på Spara.
4) Klicka på Konfigurera MQTT
5) Ange IP -adressen för din PI för värden
6) Ange tasmota för användarnamn
7) Ange lösenordet från föregående steg för lösenord
8) Ange tasmota1 för ämnet
9) Klicka på Spara
Att testa:
Skriv kommandot nedan på PI. Inom 10 sekunder bör du se data komma igenom.
mosquitto_sub -t tele/tasmota1/SENSOR
Data ska se ut så här:
Steg 12: Använd Telegraf för att flytta data från mygga till tillströmning
Vi kommer nu att konfigurera Telegraf för att läsa data från mygga och fortsätta till influxdb. På PI:
1) sudo mv /etc/telegraf/telegraf.conf /etc/telegraf/telegraf.conf.bak
2) sudo vi /etc/telegraf/telegraf.conf
Not vi är inte supervänlig för nya användare, om du föredrar en menybaserad textredigerare använder du nano istället:
sudo nano /etc/telegraf/telegraf.conf
3) Klistra in i konfigurationen från den bifogade filen
4) sudo systemctl starta om telegraf
För att testa, skriv detta på PI:
tillströmning
visa databaser
du borde se testdatabasen. Om du inte gillar namnetestet kan du ändra dest_db i filen telegraf.conf.
Steg 13: Slutligen, skapa grafer i Grafana
Äntligen får vi se lite data:-):-)
Först måste vi skapa en anslutning till databasen. Gå till grafanas webbsida http: [ip of PI]: 3000
1) Logga in med admin/admin
2) Klicka på kugghjulsikonen och datakällor i den vänstra kolumnen
3) Klicka på lägg till datakälla
4) Klicka på influxdb
5) För URL anger du https:// localhost: 8086
6) Ange test för databas
7) Ange GET för
8) Ange 10s för min tidsintervall
9) Klicka på Spara och testa, det ska stå "Datakälla fungerar"
OK, nu har vi en anslutning till databasen vi kan skapa en graf … äntligen.
1) I den vänstra kolumnen klickar du på + och sedan på Dashboard och Lägg till ny panel
2) Klicka på InfluxDB för databasen
3) Klicka på mätning och välj Kogan
4) Välj Energy_Power för fältet.
5) För alias, ge din serie ett namn (t.ex. diskmaskin)
6) Ge den ett namn till höger om paneltiteln, t.ex. Power.
7) Det är det, du bör se data. Klicka på vänster pilknapp för att gå ur redigeringen och klicka sedan på Spara, ge instrumentpanelen ett namn.
Om du har kommit så långt, bra jobbat, på allvar.
Steg 14: Några fler tips
Standard Telegraf -konfigurationen jag angav var lite underhållskrävande genom att en ny sektion måste läggas till för varje enhet och en omstart av Telegraf måste göras. Med ändringarna nedan gör det saker och ting mycket mer dynamiska genom att enheter kan läggas till eller bytas namn i Tasmota -konfigurationen utan att behöva ändra Telegraf.
Den första ändringen är att sätta in + i ämnesnamnet, detta är i princip ett jokertecken. Detta i sig skulle vara tillräckligt förutom när du gör grafer i Grafana kommer enheterna upp som heter "tele/WashingMachine/SENSOR". Den andra delen av Telegraf -konfigurationen nedan är regex -processorn. Den drar ut texten "WashingMachine" ur mitten och gör den till en ny tagg som skjuts till InfluxDB.
Obs! Se till att ställa in ett annat ämnesnamn i Tasmota -konfigurationen för varje enhet
[inputs.mqtt_consumer.tags] dest_db = "test"
När detta är gjort är det väldigt enkelt att konfigurera Grafana för att visa flera enheter på en graf. Bilden som bifogas detta steg visar vad som behöver göras. Klicka bara på + -tecknet i gruppen för rad och välj tagg (enhet). Längst ner på Alias By skriv in $ tag_device. Du bör nu se flera serier på en graf. Du kan klicka på texten för varje objekt för att slå dem på och av (ctrl -klick fungerar för att välja multiplar)
Rekommenderad:
Tinyduino LoRa Based Pet Tracker: 7 steg
Tinyduino LoRa Based Pet Tracker: Vem vill inte ha husdjur ?? De furiga vännerna kan fylla dig med kärlek och lycka, men smärtan av att sakna dem är förödande. Vår familj hade en katt som heter Thor (bilden ovan) och han var en äventyrsälskande vandrare. Många gånger återvände han
DIY Lab - HD Centrifuge Arduino Based: 3 steg
DIY Lab - HD Centrifuge Arduino Baserat: PT // Konstruerar en central funktion för att använda HD för att styra hastigheten på Arduino. SV // Vi byggde en centrifug med en gammal HD med hastighetskontroll baserad på Arduino
Raspberry Pi Based Touch Free Automatic Hand Wash System för Covid-19: 4 steg
Raspberry Pi Based Touch Free Automatic Hand Wash System för Covid-19: Det är ett enkelt handtvättsystem som använder pir-sensorer och ett Raspberry pi-kort. Denna applikation är huvudsakligen utformad för hygieniska ändamål. Modellen kan placeras på offentliga platser, sjukhus, gallerior etc
Crack the Code Game, Arduino Based Puzzle Box: 4 Steg (med bilder)
Crack the Code Game, Arduino Based Puzzle Box: I den här instruktionsboken kommer jag att visa dig hur du bygger ditt eget crack -kodspel där du använder en roterande kodare för att gissa den slumpmässigt genererade koden till kassaskåpet. Det finns 8 lysdioder på framsidan av kassaskåpet för att berätta hur många av de
My DIY Steampunk Operation Game, Arduino Based: 9 Steg (med bilder)
My DIY Steampunk Operation Game, Arduino Based: Detta projekt är ganska omfattande. Det kräver inte många verktyg eller förkunskaper, men det kommer att lära vem som helst (jag inklusive) mycket på många olika avdelningar att göra! Som Captive-sensing med en Arduino, multitasking med Arduino