Obsah:
Video: Váš monitor účtů za energii: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
O TOMTO PROJEKTU
Pokud opravdu chcete, aby byl váš dům chytřejší, budete pravděpodobně chtít začít od svých měsíčních účtů (tj. Energie, plyn atd.…). Jak někteří říkají, Dobré pro planetu, Peněženku a Sečteno a podtrženo. Open-source hardware je náš způsob, jak dosáhnout udržitelnosti v domácím prostředí! Tato myšlenka nás přivedla k vytvoření jednoduchého a bezpečného řešení, které lze snadno integrovat s jakýmkoli softwarem pro domácí automatizaci, protože vystavuje data prostřednictvím MQTT (v našem případě vám ukážeme, jak jej integrovat do Home Assistant).
Přehled
Abychom změřili spotřebu elektrické energie, rozhodli jsme se použít Finder Energy Meter, protože je určen pro použití na lištu DIN a perfektně se hodí do hlavní skříně našeho domu. Skvělou věcí na tomto produktu je, že má rozhraní RS485 Modbus, průmyslový standardní komunikační protokol, díky němuž je rozhovor s Arduinem opravdu snadný. Ve skutečnosti Arduino vydalo oficiální štít, MKR485 a dvě knihovny k dekódování protokolu. Jako základní desku jsme vybrali Arduino MKR WiFi 1010, protože sdílí tvarový faktor MKR a má WiFi připojení.
Nastavení Varování! Podívejte se na předpisy vaší země týkající se nakládání s vaším domácím elektrickým systémem a buďte velmi opatrní, protože to může být smrtelné! Pokud nevíte jak, zavolejte elektrikáře. Prvním krokem je instalace měřiče do vaší elektrické skříně. Abyste zajistili, že pracujete v bezpečném prostředí, vypněte napájení z elektrické svorky před vaším systémem a pomocí multimetru znovu zkontrolujte, zda mezi svorkami není napětí. Poté umístěte měřič energie do skříně a připojte živé a neutrální vodiče z hlavního jističe ke vstupu měřiče, nezapomeňte použít konvenci barev (modrá pro neutrální a hnědá/černá/šedá pro živé v EU). Výstup musí být připojen ke zbytku systému.
Přípojky hlavního napětí. Dráty nahoře jsou vstupy, vodiče za nimi jsou výstupy.
Krok 1: Potřebné součásti
Krok 2: Softwarové potřeby
Software
Spusťte počítač a otevřete IDE. Můžete použít Arduino IDE nebo Arduino Create Editor. Kód splňuje následující požadavky: Komunikace Modbus, správa WiFi Protokol MQTT Modbus je a open-source protokol pro průmyslové senzory a stroje. Aby Arduino promluvilo o Modbusu, použijeme knihovnu Arduino Modbus. Tato knihovna obsahuje všechny ovladače a umožňuje rychlé připojení jakéhokoli zařízení Modbus. Protože se chystáme číst registry, podle datového listu měřiče můžeme najít všechny potřebné informace, jako jsou funkční kódy, adresa registru a velikost registru ve slovech. Aby to bylo jasnější, vysvětlíme si, jak Modbus funguje: Zprávy Modbus mají jednoduchou strukturu: 01 03 04 00 16 00 02 25 C7 0x01 je adresa zařízení 0x03 je funkční kód, který zařízení informuje, zda chceme číst nebo zapisovat data *, v tomto případě přečtěte udržovací registry 0x04 pro počet bytů 00 16 - Pošleme 4 bajty adresy registru (00 16), která zařízení řekne, co chceme číst 00 02 - pak velikost registru (00 02) slovy (každé slovo je 2 bajty dlouhé) Poslední 4 bajty jsou kód CRC. Tento kód je generován z matematické funkce přes předchozí bajty, což zajišťuje, že zpráva byla přijata správně.
Integrace Home Assistant Přidání měřiče do Home Assistant je velmi jednoduché. Za předpokladu, že máte nakonfigurovaného brokera MQTT (zde je průvodce), stačí do souboru configuration.yaml přidat nové definice. čidlo: - platforma: mqtt název: "Main Voltage" stav_topika: "energie/hlavní/napětí" unit_of_measurement: "V" Zde musíte zadat název měření, téma MQTT ke čtení a jednotku měření veličiny. Uložte soubor, zkontrolujte konfiguraci a znovu načtěte Home Assistant, nyní se měření objeví na hlavní stránce.
Panel spotřeby Home Assistant zobrazující aktuální hodnoty
Home Assistant se postará o vytváření grafů a automatizuje procesy spouštěné vašimi odečty. Tento tutoriál skončil, nyní je na vás, abyste přidali funkce a přizpůsobili si je pro své vlastní účely!
Krok 3: Sestavte
Hotovo? Je na čase zašroubovat připojení RS485! Použijeme kroucený jednopárový kabel se zemí, obvykle používaný pro telefonní linky. S tímto kabelem můžete vysílat na velkou vzdálenost (1,2 km). K opuštění skříně a umístění Arduina na přístupné místo však použijeme dostatečně dlouhý kabel.
Finder připojení RS485
Rozhraní RS485 pojmenovává své terminály A, B a COM. Běžným de facto standardem je použití TX+/RX+ nebo D+ jako alternativy pro B (vysoké pro MARK tj. Nečinnosti), TX-/RX- nebo D- jako alternativu pro A (nízké pro MARK tj. Nečinné) Štít MKR podporuje také Full Duplex, uvidíte dva další terminály, Y a Z. Zde se chystáme přišroubovat druhý konec kabelu, protože z datového listu víme, že poloduplexní komunikace probíhá pouze na svorkách Y a Z. Terminál COM musí být připojen k ISOGND. Protože používáme poloduplexní připojení a protože kabeláž je peer-to-peer, musíme nastavit přepínače na stínění MKR485 tak, aby odpovídaly našemu nastavení: nastavíme HALF (2 na off) a ukončení na YZ (3 až NA); na prvním nezáleží. Zakončení je odporem spojujícím dva datové terminály pro tlumení interferencí.
To je ono. Nyní můžete skříň zavřít a soustředit se na softwarovou stránku!
Krok 4: Kód
#zahrnout
#include #include #include // vaše wifi pověření const char ssid = "**********"; const char pass = "**********";
WiFi klientská síť; Klient MQTTClient; nepodepsaná dlouhá sazba = 60 000; // výchozí obnovovací frekvence v ms bez znaménka dlouhá lastMillis = 0;
// funkce připojení void connect () {Serial.print ("kontrola wifi …"); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); zpoždění (1000); } Serial.print ("\ npřipojování …"); while (! client.connect ("název_zařízení", "jméno_uživatele", "uživatel_pw")) {// ZMĚNA SPOJENÍ S NASTAVENÍM Serial.print ("."); zpoždění (1000); } Serial.println ("\ npřipojeno!"); client.subscribe („energie/hlavní/refreshrate“); // téma pro vzdálené nastavení obnovovací frekvence} // mqtt přijímat funkci zpětného volání void messageReceived (String & topic, String & payload) {Serial.println ("incoming:" + topic + " -" + payload); if (topic == "energy/main/refreshrate") {// rychlost obsluhy obnovovací frekvence = payload.toInt ()*1000; Serial.println („nová sazba“+řetězec (sazba)); }}
neplatné nastavení () {Serial.begin (115200); WiFi.begin (ssid, pass); while (! Serial); client.begin ("broker_ip", net); // ZMĚNA K VYROVNÁNÍ VAŠEHO NASTAVENÍ client.onMessage (messageReceived); // spusťte klienta Modbus RTU if (! ModbusRTUClient.begin (9600)) {Serial.println ("Spuštění klienta Modbus RTU se nezdařilo!"); zatímco (1); }}
void loop () {client.loop (); if (! client.connected ()) {// kontrola síťového připojení connect (); } // zveřejnění zprávy po uplynutí aktualizace (neblokující rutina) if (millis () - lastMillis> rate) {lastMillis = millis (); // všechna volání pro čtení float volt = readVoltage (); zpoždění (100); float amp = readCurrent (); zpoždění (100); dvojitý watt = readPower (); zpoždění (100); float hz = readFreq (); zpoždění (100); double wh = readEnergy (); // zveřejnění výsledků v souvisejících tématech client.publish ("energy/main/voltage", String (volt, 3)); client.publish ("energie/hlavní/aktuální", řetězec (zesilovač, 3)); client.publish ("energy/main/power", String (watt, 3)); client.publish ("energie/hlavní/frekvence", řetězec (hz, 3)); client.publish ("energie/hlavní/energie", řetězec (wh, 3)); Serial.print (String (volt, 3)+"V"+String (amp, 3)+"A"+String (watt, 3)+"W"); Serial.println (String (hz, 3)+"Hz"+String (wh, 3)+"kWh"); zpoždění (100); }}
/ * Funkce pro čtení registrů Finder Energy Meter * * Pro pochopení kódu si prostudujte manuál protokolu modbus * https://gfinder.findernet.com/public/attachments/7E/EN/PRT_Modbus_7E_64_68_78_86EN.pdf */float readVoltage () {float volt = 0.; if (! ModbusRTUClient.requestFrom (0x01, HOLDING_REGISTERS, 0x000C, 2)) {// uskutečněte volání do registru Serial.print ("nepodařilo se načíst napětí!"); Serial.println (ModbusRTUClient.lastError ()); // obsluha chyb} else {uint16_t word1 = ModbusRTUClient.read (); // čtení dat z vyrovnávací paměti uint16_t word2 = ModbusRTUClient.read (); uint32_t millivolt = word1 << 16 | slovo2; // bit math volt = millivolt/1000.0; } návrat voltů; } float readCurrent () {float ampere = 0.; if (! ModbusRTUClient.requestFrom (0x01, HOLDING_REGISTERS, 0x0016, 2)) {Serial.print ("nepodařilo se přečíst aktuální!"); Serial.println (ModbusRTUClient.lastError ()); } else {uint16_t word1 = ModbusRTUClient.read (); uint16_t word2 = ModbusRTUClient.read (); int32_t milliamp = word1 << 16 | slovo2; ampér = miliampér/1000,0; } vrátit ampér; }
double readPower () {double watt = 0.; if (! ModbusRTUClient.requestFrom (0x01, HOLDING_REGISTERS, 0x0025, 3)) {Serial.print ("nepodařilo se přečíst moc!"); Serial.println (ModbusRTUClient.lastError ()); } else {uint16_t word1 = ModbusRTUClient.read (); uint16_t word2 = ModbusRTUClient.read (); uint16_t word3 = ModbusRTUClient.read (); uint64_t miliwatt; if (slovo1 >> 7 == 0) {milliwatt = slovo1
Doporučuje:
Kalkulačka spoření na bankovním účtu: 18 kroků
Kalkulačka spoření bankovního účtu: Děkuji, že jste si vybrali mou kalkulačku spoření. Dnes se naučíme, jak naprogramovat třídu BankAccount, abyste měli přehled o svých osobních výdajích a úsporách. Abyste si mohli zřídit bankovní účet pro sledování svých výdajů, budete nejprve potřebovat základní
Představení a vytvoření účtu v platformě The Things Network IoT LoRaWAN: 6 kroků
Představení a vytvoření účtu na platformě The Things Network IoT LoRaWAN: Při této příležitosti vytvoříme účet na platformě The Things Network a uděláme krátké představení, TTN je dobrou iniciativou na vybudování sítě pro internet věcí nebo " IoT " The Things Network implementovalo LoR
Otevření příkazového řádku na omezeném uživatelském účtu: 3 kroky
Otevření příkazového řádku na omezeném uživatelském účtu: Omezené účty, které brání vašim programovacím schopnostem? Škola, vysoká škola nebo práce vás zadržely a chcete se bránit? Vysmívá se váš IT technik kaviáru za vaše omezené náklady? Pak už nehledejte TheKnight je tady
Online zálohování pomocí vašeho účtu Gmail: 4 kroky
Online zálohování pomocí vašeho účtu Gmail: http://www.softpedia.com/progDownload/GMail-Drive-shell-extension-Download-15944.htmlGMail drive je malý program pro operační systém Windows, díky kterému se váš účet Gmail stane online? záloha?. Svůj účet Gmail můžete použít k ukládání souborů, které
Jak zajistit, aby váš notebook šetřil energii baterie s minimální ztrátou výkonu: 4 kroky
Jak zajistit, aby váš notebook šetřil energii baterie s minimální ztrátou výkonu: Kdo říká, že váš notebook musí trpět pomalým výkonem, aby ušetřil trochu energie? Jak moc se změní váš výkon nebo životnost baterie, závisí na stáří vašeho notebooku, stáří baterie a dalších programech a nastaveních. Zde je několik jednoduchých kroků, které vám pomohou zvýšit