Inhoudsopgave:

Home Appliance Raspberry PI Based Power Monitor - Ajarnpa
Home Appliance Raspberry PI Based Power Monitor - Ajarnpa

Video: Home Appliance Raspberry PI Based Power Monitor - Ajarnpa

Video: Home Appliance Raspberry PI Based Power Monitor - Ajarnpa
Video: IoT Based Raspberry Pi Smart Energy Monitor [2022] 2024, Juli-
Anonim
Huishoudelijke apparaten Raspberry PI-gebaseerde vermogensmonitor
Huishoudelijke apparaten Raspberry PI-gebaseerde vermogensmonitor
Huishoudelijke apparaten Raspberry PI-gebaseerde vermogensmonitor
Huishoudelijke apparaten Raspberry PI-gebaseerde vermogensmonitor

Dit was een klein project dat ik deed om het stroomverbruik van individuele apparaten in huis te monitoren en grafieken van hun stroomverbruik in de loop van de tijd weer te geven. Het is eigenlijk een van de eenvoudigere op Raspberry PI gebaseerde projecten die ik heb gedaan, geen solderen of hacken van open producten vereist. Het hoeft geen Raspberry PI-project te zijn, het kan gemakkelijk op een Linux-box of misschien Windows worden gedaan.

De kosten bedragen $ 50 AUD voor een set van 4 van de power monitor/smart plugs en de kosten van een Raspberry PI. Dit kan op een Pi Zero of de originele PI draaien, hoewel ik vond dat het een beetje traag was. De enige andere PI die ik heb is een PI 3 en ik vond hem erg pittig, dus dat zou ik aanraden. Merk op dat als u het op een oudere PI wilt uitvoeren, u de frequentie van gegevensverzameling kunt verminderen (ik gebruikte 10 seconden).

Dit project heeft ook het extra voordeel dat de slimme stekker wordt bevrijd van de firmware van de fabrikant, zodat u hun specifieke apps en cloudservices niet hoeft te gebruiken. Ze kunnen dus worden gebruikt met Home Assist of gewoon met je eigen python-scripts.

Let op: ik ga ervan uit dat je weet hoe je het besturingssysteem op de PI moet installeren, er verbinding mee moet maken en een aantal basis-linux-commando's moet uitvoeren. Ik ga er ook van uit dat je weet hoe je het IP-adres van je slimme stekker kunt vinden zodra deze verbinding maakt met je wifi.

Benodigdheden

2 pakjes of 4 pakjes slimme stekkers vanaf hier:

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

1 framboos PI

Vaardigheden:

Mogelijkheid om een Raspberry PI. in te stellen

Basis linux-opdrachtregel

Teksteditor zoals vi of nano (nano is gebruiksvriendelijker, vi is sneller als je het eenmaal leert kennen)

Mogelijkheid om IP van apparaten op uw netwerk te vinden.

Stap 1: Koop wat slimme stekkers

Koop wat slimme stekkers
Koop wat slimme stekkers

De slimme stekker die ik gebruikte was van hier:

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

Merk op dat er een hele reeks slimme stekkers is die compatibel zijn, de meeste (alle?) zijn op ESP8266 (WEMOS) gebaseerde apparaten en zijn heel gemakkelijk te flitsen. Zorg ervoor dat u iets krijgt dat stroombewaking heeft, zoals velen niet hebben. Deze pagina toont een grote lijst met compatibele apparaten:

templates.blakadder.com/plug.html

Stap 2: Het apparaat knipperen

Dit onderdeel was verrassend eenvoudig. U downloadt in feite gewoon de software, voert deze uit en u wordt erdoorheen geleid.

Hiervoor heb je een Raspberry PI of Linux box met wifi nodig. U moet uw primaire verbinding met dit apparaat hebben, NIET WiFi. Voor mijn PI3 was dit gemakkelijk omdat ik via Ethernet was verbonden. Als je een PI Zero hebt, moet je op de ouderwetse manier verbinding maken, met een toetsenbord en monitor.

Ik neem aan dat je weet hoe je een PI moet instellen en er verbinding mee moet maken met SSH of een toetsenbord, dus daar ga ik niet doorheen. Als je het niet zeker weet, zijn er tal van tutorials op internet.

Voordat we beginnen, even wat achtergrondinformatie over de apparaten. Er is een bedrijf in China genaamd Tuya dat slimme stekkers pompt voor verschillende klanten. Ze maken aanpassingen voor verschillende klanten en bieden een standaardfirmware en stellen bedrijven in staat hun eigen wijzigingen aan te brengen. Het probleem hiermee is dat als je een heleboel producten van verschillende leveranciers hebt, je uiteindelijk een heleboel apps moet uitvoeren, waarvan sommige beter werken dan andere. Door een open source firmware te flashen bevrijd je jezelf van dat alles. Dit is dus goed voor algemene domotica.

Dus …. zonder verder oponthoud, hier zijn de instructies:

1) Voer deze commando's uit op de PI, hierdoor wordt de benodigde software geïnstalleerd.

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

2) Steek de slimme stekker in het stopcontact

3) Zet hem aan met de knop

4) Houd de aan / uit-knop ingedrukt totdat het blauwe lampje begint te knipperen

5) Wacht 10 seconden. Dit is niet essentieel, maar ik vond dat het beter werkte als je dat deed.

6) Voer deze opdracht uit:

./start_flash.sh

Vanaf hier volg je gewoon de aanwijzingen, behalve dat je aan het einde "2. Tasmota" selecteert. Er is een optie voor een andere firmware, maar dat heb ik niet geprobeerd, dus ik weet niet zeker hoe het is.

Merk op dat ik dit meer dan eens moest doen, ik dacht eerst dat ik het apparaat had dichtgemetseld, ik had geen lampjes, geen relaisklik, geen teken van leven. Maar ik zette het uit en voer het laatste commando opnieuw uit en het werkte. Ik moest dit doen met 3 van de 4 apparaten die ik flitste, slechts één ging er rechtdoor, denk ik vanwege stap 5.

Volledige instructies hier:

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

Stap 3: Voor de eerste keer verbinding maken met de firmware

Voor de eerste keer verbinding maken met de firmware
Voor de eerste keer verbinding maken met de firmware
Voor de eerste keer verbinding maken met de firmware
Voor de eerste keer verbinding maken met de firmware
Voor de eerste keer verbinding maken met de firmware
Voor de eerste keer verbinding maken met de firmware

Als je tasmota eenmaal op het apparaat hebt geflitst, zal het niet veel tekenen van leven vertonen. De reden hiervoor is dat het moet worden geconfigureerd. Dit doen is vrij eenvoudig, ik vond het het beste om het met mijn telefoon te doen. Stappen zijn:

1) Zoeken naar wifi-toegangspunten

2) Maak verbinding met degene met het label tasmota_xxxx (waarbij x getallen is)

3) De telefoon zou u naar de standaardpagina moeten leiden, zo niet, ga dan naar 192.168.4.1

Let op: op sommige telefoons krijg je een bericht met de tekst "geen internettoegang, wil je verbonden blijven", selecteer ja.

4) Op de pagina die verschijnt, voert u de naam van uw WiFi-netwerk en het wachtwoord in de eerste 2 vakken in. Klik op de optie om het wachtwoord weer te geven en controleer driemaal of je het juiste wachtwoord hebt ingevoerd. Als je het verkeerde wachtwoord hebt ingevoerd, denk ik dat het moeilijk kan zijn om terug te gaan naar dit configuratiescherm. Merk op dat je ook kunt scannen op wifi-netwerken, hoewel je uiteraard nog steeds het wachtwoord moet invoeren.

5) De stekker zou nu verbonden moeten zijn met uw wifi-netwerk. U moet naar de configuratiepagina van uw router gaan en het IP-adres van uw apparaat vinden.

6) Open een webbrowser op uw pc en ga naar https://[device_ip] U zou het configuratiescherm van Tasmota moeten zien.

Gefeliciteerd, je hebt de stekker met succes geflitst.

Stap 4: De plug configureren

De stekker configureren
De stekker configureren

Het bedrijf dat deze apparaten maakt, maakt blijkbaar 10.000 apparaten met veel verschillende configuraties. We hebben zojuist een nieuwe firmware geflitst en de firmware weet niet op welke apparaten het is geflitst. Dus voordat iets werkt, moeten we het configureren. Om dit te doen, moeten we de details van ons apparaat op internet vinden en die specifieke configuratie laden.

Zoek hiervoor uw apparaat op deze pagina:

templates.blakadder.com/plug.html

Voor het apparaat dat ik heb gebruikt, is de configuratie hier:

templates.blakadder.com/kogan-KASPEMHUSBA….

Om de configuratie in te stellen, kopiëren we gewoon de tekst onder Sjabloon. In dit geval is het:

Vervolgens

1) Ga naar de configuratiepagina van uw apparaat https://[IP of smart plug]

2) Klik op configureren, andere configureren

3) Plak in je sjabloonstring

4) Vink "MQTT inschakelen" aan

5) Klik op activeren en opslaan.

Om te testen of dit heeft gewerkt, klikt u op "Hoofdmenu" om terug te gaan naar de startpagina en u zou nu de stroomverbruikcijfers moeten zien. Ze zullen allemaal nul zijn, zelfs de spanning, maar dit is een goed teken. Klik op de schakelknop en u zou het relais moeten horen klikken en de spanning zien stijgen.

Stap 5: Spanning kalibreren

Kalibreer spanning
Kalibreer spanning

Ik merkte dat de spanningsmeting behoorlijk hoog was. Als je een andere spanningsbron in huis hebt (bijv. slimme meter misschien??), dan kun je de stekker heel gemakkelijk kalibreren. Om dit te doen

1) Verkrijg de juiste spanningswaarde

2) Schakel het relais in de slimme stekker in

3) Klik op Console op de startpagina van het apparaat

4) Voer het commando "VoltageSet 228" in en druk op enter (vervang 228 door uw voltage)

De spanning zou nu correct moeten worden weergegeven.

Stap 6: Software installeren op de PI

Er zijn een paar pakketten die op de PI moeten worden geïnstalleerd. Deze zijn eenvoudig te installeren en kunnen gedaan worden volgens de instructies uit de verschillende pakketten. Ik zal de instructies hier geven, maar houd er rekening mee dat ze in de loop van de tijd kunnen veranderen, dus mijn instructies zullen dateren. De pakketten zijn:

Grafana (voor het weergeven van grafieken)

Influxdb (tijdreeksdatabase waarin onze gegevens worden opgeslagen)

Telegraf (gebruikt om gegevens naar Influxdb te pushen)

Mosquitto (berichtbus die wordt gebruikt om gegevens door te geven, de slimme stekker duwt de gegevens hier)

De keten van gegevensstroom is als volgt:

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

Als je vraagt waarom we Mosquitto en Telegraf niet kunnen overslaan, dan is dat een goede vraag. In theorie zou de Smart Plug naar Influx kunnen pushen. Het probleem daarmee is dat het dan configureerbaar moet zijn voor honderden verschillende eindpunten en het zou ons uitsluiten van een aantal keuzes. De meeste dingen in domotica gebruiken Mosquitto om berichten door te geven. We kunnen bijvoorbeeld de stekker in- en uitschakelen door berichten naar Mosquitto te sturen en de slimme stekker zal deze ontvangen en reageren.

Stap 7: Grafana installeren

Grafana installeren
Grafana installeren

Van:

grafana.com/grafana/download?platform=arm

Of veel andere opties hier:

grafana.com/grafana/download

Voor Pi 1 en Pi Zero (ARMv6)

sudo apt-get install -y adduser libfontconfig1#vind de nieuwste versie van de pagina op de 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 grafana-serversudo inschakelen /bin/systemctl grafana-server starten

Voor nieuwere PI's (ARMv7)

sudo apt-get install -y adduser libfontconfig1#vind de nieuwste versie van de pagina op de 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 grafana-serversudo inschakelen /bin/systemctl grafana-server starten

Testen:

Ga naar https://[IP van PI]:3000

gebruikersnaam/wachtwoord is admin/admin, het zal je vragen om het te veranderen, je kunt het nu overslaan

Als je een GUI krijgt, dan is alles goed, ga naar de volgende stap

Stap 8: InfluxDB installeren

Voer deze opdrachten uit op de 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 stable" | 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 activeer influxdbsudo systemctl start influxdb

Test door "instroom" te typen. Dit zou je in de influxdb-opdrachtregel moeten plaatsen. Typ "show databases", er zullen nog geen databases zijn, maar als je een lege lijst krijgt zonder fouten, dan is alles goed.

Stap 9: Telegraf installeren

Deze is heel eenvoudig, omdat we de influxdb-repo's hebben toegevoegd die we gewoon kunnen typen:

sudo apt-get installeer telegrafsudo systemctl activeer telegrafsudo systemctl start telegraf

Op dit moment zal Telegraf al systeemstatistieken loggen in influxdb. Je kunt ze zien door deze commando's te typen:

instroom toon databasesgebruik telegraf toon serieSELECT * FROM cpu LIMIT 10;

Stap 10: Installeer Mosquito

Dit deel is eenvoudig, omdat we gewoon de standaardversie installeren die is verpakt met raspian:

sudo apt-get -y install mosquittosudo apt-get -y install mosquitto-clientssudo systemctl activeer mosquittosudo systemctl start mosquitto# maak een wachtwoord voor mosquittosudo mosquitto_passwd -c /etc/mosquitto/tasmota tasmota#voer een wachtwoord in. Schrijf dit wachtwoord op, want we moeten dit aan smart plug geven

Testen:

voer dit uit in één SSH-sessie:

mosquitto_sub -t test

Voer dit in een ander uit

mosquitto_pub -t test -m mijn bericht

Je zou je bericht in de eerste SSH-sessie moeten zien

Stap 11: Gegevens verzenden van de Smart Plug naar Mosquitto

Gegevens verzenden van de Smart Plug naar Mosquitto
Gegevens verzenden van de Smart Plug naar Mosquitto

Nu we Mosquitto hebben draaien, moeten we de slimme plug configureren om gegevens naar Mosquitto te sturen. Dit is redelijk eenvoudig te doen. We hebben het wachtwoord nodig dat is ingevoerd voor mug uit de vorige stap.

1) Log in op uw webpagina met slimme stekkers

2) Klik op Configuratie en vervolgens op Logboekregistratie configureren

3) Stel de telemetrieperiode in op 10 en klik op opslaan.

4) Klik op MQTT configureren

5) Voer bij host het IP-adres van uw PI in

6) Voer voor gebruikersnaam tasmota in

7) Voer voor wachtwoord het wachtwoord van de vorige stap in:

8) Voer voor onderwerp tasmota1. in

9) Klik op opslaan

Testen:

Typ de onderstaande opdracht bij de PI. Binnen 10 seconden zou je gegevens moeten zien binnenkomen.

mosquitto_sub -t tele/tasmota1/SENSOR

Gegevens zouden er als volgt uit moeten zien:

Stap 12: Gebruik Telegraf om gegevens van Mosquitto naar Influx te pushen

We gaan Telegraf nu configureren om de gegevens van mug te lezen en naar influxdb te pushen. Op de PI:

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

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

Opmerking vi is niet supervriendelijk voor nieuwe gebruikers, als je de voorkeur geeft aan een op menu's gebaseerde teksteditor, gebruik dan nano:

sudo nano /etc/telegraf/telegraf.conf

3) Plak de configuratie uit het bijgevoegde bestand

4) sudo systemctl herstart telegraf

Om dit te testen typt u dit op de PI:

toestroom

toon databases

je zou de testdatabase moeten zien. Als je de naamtest niet leuk vindt, kun je dest_db wijzigen in het bestand telegraf.conf.

Stap 13: Maak ten slotte grafieken in Grafana

Maak ten slotte grafieken in Grafana
Maak ten slotte grafieken in Grafana

Eindelijk krijgen we wat gegevens te zien:-):-)

Eerst moeten we een verbinding maken met de database. Ga naar de grafana-webpagina http:[ip of PI]:3000

1) Log in met admin/admin

2) Klik in de linkerkolom op het tandwielpictogram en gegevensbronnen

3) Klik op gegevensbron toevoegen

4) Klik op instroomdb

5) Voer voor URL https://localhost:8086 in

6) Voer test in voor database:

7) Voer voor HTTP GET. in

8) Voer voor min tijdsinterval 10s. in

9) Klik op Opslaan en testen, er zou moeten staan "Gegevensbron werkt"

OK, nu we een verbinding hebben met de database kunnen we een grafiek maken … eindelijk.

1) Klik in de linkerkolom op + en vervolgens op Dashboard en Nieuw paneel toevoegen

2) Klik voor database op InfluxDB

3) Klik op meting en selecteer Kogan

4) Selecteer in het veld Energy_Power.

5) Geef bij alias je serie een naam (bijv. Vaatwasser)

6) Geef het aan de rechterkant voor Paneeltitel een naam, bijv. Macht.

7) Dat is alles, u zou gegevens moeten zien. Klik op de linkerpijlknop om uit bewerken te gaan en klik vervolgens op opslaan, geef uw dashboard een naam.

Als je zo ver bent gekomen, geweldig werk, serieus.

Stap 14: Nog een paar tips

Nog een paar tips
Nog een paar tips
Nog een paar tips
Nog een paar tips

De standaard Telegraf-configuratie die ik heb verstrekt, was een beetje onderhoudsintensief omdat voor elk apparaat een nieuwe sectie moest worden toegevoegd en Telegraf opnieuw moest worden opgestart. Met de onderstaande wijzigingen maakt het de zaken veel dynamischer doordat apparaten kunnen worden toegevoegd of hernoemd in de Tasmota-configuratie zonder dat Telegraf hoeft te worden gewijzigd.

De eerste wijziging is om de + in de naam van het onderwerp te plaatsen, dit is in feite een jokerteken. Dit alleen zou voldoende zijn, behalve wanneer je grafieken maakt in Grafana, de apparaten verschijnen met de naam "tele/WashingMachine/SENSOR". Het tweede deel van de Telegraf-configuratie hieronder is de regex-processor. Het haalt de tekst "WashingMachine" uit het midden en verandert het in een nieuwe tag die naar InfluxDB wordt gepusht.

Opmerking: zorg ervoor dat u voor elk apparaat een andere onderwerpnaam instelt in de Tasmota-configuratie

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

Zodra dit is gebeurd, is het heel eenvoudig om Grafana te configureren om meerdere apparaten in één grafiek weer te geven. De foto bij deze stap laat zien wat er moet gebeuren. Klik gewoon op het + teken op de groep per regel en selecteer tag (apparaat). Voer onderaan bij Alias By $tag_device in. U zou nu meerdere reeksen op de ene grafiek moeten zien. U kunt op de tekst van elk item klikken om ze aan en uit te zetten (Ctrl-klik werkt om veelvouden te selecteren)

Aanbevolen: