Obsah:
Video: Váš monitor účtov za energie: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
O TOMTO PROJEKTE
Ak naozaj chcete, aby bol váš domov múdrejší, pravdepodobne budete chcieť začať od svojich mesačných účtov (t. J. Energie, plyn atď.…). Ako niektorí hovoria, je to dobré pre planétu, peňaženku a konečný súčet. Open-source hardvér je náš spôsob, ako dosiahnuť udržateľnosť v domácom prostredí! Táto myšlienka nás priviedla k vytvoreniu jednoduchého a bezpečného riešenia, ktoré je možné ľahko integrovať s akýmkoľvek softvérom pre domácu automatizáciu, pretože vystavuje údaje prostredníctvom MQTT (v našom prípade vám ukážeme, ako ho integrovať do Home Assistant).
Prehľad
Aby sme mohli merať spotrebu elektrickej energie, rozhodli sme sa použiť merač energie Finder, pretože je navrhnutý na použitie na lištu DIN a perfektne sa hodí do hlavnej skrinky nášho domu. Super na tomto produkte je, že má rozhranie RS485 Modbus, komunikačný protokol štandardného priemyselného štandardu, vďaka ktorému je rozprávanie s Arduino skutočne jednoduché. Arduino v skutočnosti vydal oficiálny štít, MKR485 a dve knižnice na dekódovanie protokolu. Ako základnú dosku sme vybrali Arduino MKR WiFi 1010, pretože zdieľa tvarový faktor MKR a má pripojenie WiFi.
Inštalácia Varovanie! Pozrite sa na predpisy svojej krajiny týkajúce sa zaobchádzania s vašim domácim elektrickým systémom a buďte veľmi opatrní, pretože to môže byť smrteľné! Ak neviete ako, zavolajte elektrikára. Prvým krokom je inštalácia merača do vašej elektrickej skrinky. Aby ste zaistili, že pracujete v bezpečnom prostredí, vypnite napájanie z elektrického terminálu pred systémom a pomocou multimetra znova skontrolujte, či medzi svorkami nie je napätie. Potom umiestnite merač energie do svojej skrinky a zapojte živé a nulové vodiče z hlavného ističa do vstupu elektromera. Nezabudnite použiť konvenciu farieb (modrá pre neutrál a hnedá/čierna/sivá pre živé napätie v EÚ). Výstup musí byť pripojený k zvyšku systému.
Pripojenia hlavného napätia. Káble vyššie sú vstupné, vodiče za nimi sú výstupy.
Krok 1: Potrebné diely
Krok 2: Softvérové potreby
Softvér
Spustite počítač a otvorte IDE. Môžete použiť Arduino IDE alebo Arduino Create Editor. Kód spĺňa nasledujúce požiadavky: Komunikácia Modbus, WiFi správaMQTT protokol Modbus je a open-source protokol pre priemyselné snímače a stroje. Aby Arduino hovorilo Modbus, použijeme knižnicu Arduino Modbus. Táto knižnica obsahuje všetky ovládače a umožňuje pripojenie akéhokoľvek zariadenia Modbus skutočne rýchlo. Pretože ideme čítať registre, podľa údajového listu meradla nájdeme všetky potrebné informácie, ako sú kódy funkcií, adresa registra a veľkosť registra v slovách. Aby sme to však objasnili, vysvetlite nám, ako Modbus funguje: Správy Modbus majú jednoduchú štruktúru: 01 03 04 00 16 00 02 25 C7 0x01 je adresa zariadenia 0x03 je funkčný kód, ktorý hovorí zariadeniu, či chceme čítať alebo zapisovať údaje. *, v tomto prípade prečítajte udržiavacie registre 0x04 pre počet bajtov 00 16 - Pošleme 4 bajty adresy registra (00 16), ktoré zariadeniu oznámia, čo chceme čítať 00 02 - potom veľkosť registra (00 02) slovami (každé slovo má 2 bajty) Posledné 4 bajty sú kód CRC. Tento kód je generovaný z matematickej funkcie oproti predchádzajúcim bajtom, čo zaisťuje správne prijatie správy.
Integrácia Home Assistant Pridanie merača do Home Assistant je veľmi jednoduché. Za predpokladu, že máte nakonfigurovaného brokera MQTT (Tu je návod), stačí do súboru configuration.yaml pridať nové definície. snímač: - platforma: mqtt názov: "Hlavné napätie" stav_topika: "energia/hlavné/napätie" jednotka_m_merania: "V" Tu musíte zadať názov merania, tému MQTT, ktorá sa má odčítať, a meraciu jednotku veličiny. Uložte súbor, skontrolujte konfiguráciu a znova načítajte Home Assistant, teraz sa merania zobrazia na hlavnej stránke.
Panel spotreby Home Assistant zobrazujúci aktuálne namerané hodnoty
Home Assistant sa postará o vytváranie grafov a automatizáciu procesov spustených vašimi údajmi. Tento tutoriál skončil, teraz je na vás, aby ste pridali funkcie a prispôsobili ich svojim vlastným účelom!
Krok 3: Zostavte
Hotový? Je čas zaskrutkovať pripojenie RS485! Na uzemnenie použijeme krútený jednopárový kábel, ktorý sa bežne používa pre telefónne linky. S týmto káblom môžete prenášať na veľkú vzdialenosť (1,2 km). Na opustenie skrinky však použijeme dostatočne dlhý kábel a Arduino umiestnime na prístupné miesto.
Finder pripojenie RS485
Rozhranie RS485 označuje svoje terminály A, B a COM. Bežným de facto štandardom je použitie TX+/RX+ alebo D+ ako alternatívy pre B (vysoké pre MARK tj. Nečinné), TX-/RX- alebo D- ako alternatívne pre A (nízke pre MARK tj. Nečinné) Pretože Štít MKR podporuje aj Full Duplex, uvidíte ďalšie dva terminály, Y a Z. Tu budeme skrutkovať druhý koniec kábla, pretože z technického listu vieme, že poloduplexná komunikácia sa deje iba na svorkách Y a Z. Terminál COM musí byť pripojený k ISOGND. Pretože používame poloduplexné pripojenie a keďže kabeláž je peer-to-peer, musíme nastaviť prepínače na štíte MKR485 tak, aby zodpovedali nášmu nastaveniu: nastavíme HALF (2 na vypnuté) a ukončenie na YZ (3 na ZAPNUTÉ); na prvom nezáleží. Zakončením je odpor spájajúci dva dátové terminály na tlmenie rušenia.
To je ono Teraz môžete skriňu zavrieť a zamerať sa na softvérovú stránku!
Krok 4: Kód
#zahrnúť
#include #include #include // vaše poverenia pre wifi const char ssid = "**********"; const char pass = "**********";
WiFi klientska sieť; Klient MQTTClient; nepodpísaná dlhá sadzba = 60 000; // predvolená obnovovacia frekvencia v ms bez znamienka dlhá lastMillis = 0;
// funkcia pripojenia void connect () {Serial.print ("kontrola wifi …"); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); oneskorenie (1000); } Serial.print ("\ npripojenie …"); while (! client.connect ("device_name", "user_name", "user_pw")) {// ZMENA PODPORUJE VAŠU NASTAVENIE Serial.print ("."); oneskorenie (1000); } Serial.println ("\ npripojené!"); client.subscribe („energia/hlavná/refreshrate“); // téma na diaľkové nastavenie obnovovacej frekvencie} // mqtt funkcia prijatia spätného volania void messageReceived (String & topic, String & payload) {Serial.println ("incoming:" + topic + " -" + payload); if (topic == "energy/main/refreshrate") {// rýchlosť obsluhy obnovovacej frekvencie = payload.toInt ()*1000; Serial.println („nová sadzba“+reťazec (sadzba)); }}
void setup () {Serial.begin (115200); WiFi.begin (ssid, pass); while (! Serial); client.begin ("broker_ip", net); // ZMENA NA ZHODU S NASTAVENÍM client.onMessage (messageReceived); // spustite klienta Modbus RTU if (! ModbusRTUClient.begin (9600)) {Serial.println ("Spustenie klienta Modbus RTU zlyhalo!"); pričom (1); }}
void loop () {client.loop (); if (! client.connected ()) {// skontrolovať sieťové pripojenie connect (); } // publikovanie správy po uplynutí obnovenia (rutina bez blokovania), ak (millis () - lastMillis> sadzba) {lastMillis = millis (); // uskutočnenie všetkých prečítaných hovorov float volt = readVoltage (); oneskorenie (100); float amp = readCurrent (); oneskorenie (100); dvojitý watt = readPower (); oneskorenie (100); float hz = readFreq (); oneskorenie (100); double wh = readEnergy (); // zverejnenie výsledkov v príbuzných témach client.publish ("energy/main/voltage", String (volt, 3)); client.publish ("energia/hlavný/prúd", reťazec (zosilňovač, 3)); client.publish ("energia/hlavná/výkon", reťazec (watt, 3)); client.publish ("energia/hlavná/frekvencia", reťazec (hz, 3)); client.publish ("energia/hlavná/energia", reťazec (wh, 3)); Serial.print (Reťazec (volt, 3)+"V"+Reťazec (zosilňovač, 3)+"A"+Reťazec (watt, 3)+"W"); Serial.println (String (hz, 3)+"Hz"+String (wh, 3)+"kWh"); oneskorenie (100); }}
/ * Funkcie na čítanie registrov merača energie Finder * * Ak chcete porozumieť kódu, prečítajte si príručku k 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)) {// uskutočnite volanie do registra Serial.print ("nepodarilo sa načítať napätie!"); Serial.println (ModbusRTUClient.lastError ()); // obsluha chýb} else {uint16_t word1 = ModbusRTUClient.read (); // čítanie údajov z vyrovnávacej pamäte uint16_t word2 = ModbusRTUClient.read (); uint32_t millivolt = word1 << 16 | slovo2; // bitová matematika volt = millivolt/1000,0; } vrátiť napätie; } float readCurrent () {float ampere = 0.; if (! ModbusRTUClient.requestFrom (0x01, HOLDING_REGISTERS, 0x0016, 2)) {Serial.print ("nepodarilo sa načítať prúd!"); Serial.println (ModbusRTUClient.lastError ()); } else {uint16_t word1 = ModbusRTUClient.read (); uint16_t word2 = ModbusRTUClient.read (); int32_t milliamp = slovo1 << 16 | slovo2; ampér = miliampér/1000,0; } vrátiť ampér; }
double readPower () {double watt = 0.; if (! ModbusRTUClient.requestFrom (0x01, HOLDING_REGISTERS, 0x0025, 3)) {Serial.print ("zlyhalo čítanie sily!"); 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
Odporúča:
Kĺbový bezdrôtový vysielač energie: 4 kroky
Kĺbový bezdrôtový vysielač energie: Chcete, aby kĺbové rameno nezmyselne sledovalo nabíjanie vášho zariadenia? Toto je projekt. Kombinácia bezdrôtového vysielača a prijímača, ktorá bude nasledovať vaše zariadenie … pokiaľ bude vzdialený asi tri palce
Monitor energie za 15 minút: 3 kroky
Monitor energie za 15 minút: Jedná sa o senzor wifi, ktorý sa dá nalepiť na blikačku vo vašom elektromere. Detekuje záblesky s LDR a zobrazuje napájanie na OLED displeji. Odosiela údaje na ovládací panel Thingsboard, živý príklad tu. Zaregistrujte si bezplatný demo účet: https: //thingsboard.io.
ITea - Váš osobný monitor čaju: 8 krokov
ITea | Váš osobný čajový monitor: Dobrý deň, kolegovia čitatelia, vitajte pri projekte iTea! Pred začatím tohto projektu som premýšľal o niečom, čo by som mohol vo svojom živote zlepšiť pomocou spoločnej robotiky a elektronických súčiastok, ktoré mám doma. Niekoľko týždňov pred napísaním tohto článku
Ako správne zmerať spotrebu energie bezdrôtových komunikačných modulov v období nízkej spotreby energie?: 6 krokov
Ako správne zmerať spotrebu energie bezdrôtových komunikačných modulov v období nízkej spotreby energie ?: Nízka spotreba energie je mimoriadne dôležitým pojmom v rámci internetu vecí. Väčšina uzlov IoT musí byť napájaná batériami. Iba správnym meraním spotreby energie bezdrôtového modulu dokážeme presne odhadnúť, koľko batérie
Ako deaktivovať UAC (kontrola používateľských účtov): 5 krokov
Ako vypnúť UAC (kontrola používateľských účtov): Už ma unavuje hlúpe UAC, ktoré sa vždy objavuje a hovorí mi: „Windows potrebuje vaše povolenie na pokračovanie. &Quot; Viem, že existuje na ochranu pred neoprávnenými zmenami vo vašom počítači, ale mám pocit, že môj počítač je celkom chránený,