Obsah:
- Krok 1: Seznámení s ESP8266
- Krok 2: Vytvořte si účet a kanál Thingspeak
- Krok 3: Budování elektronického obvodu
- Krok 4: Nahrajte kód
- Krok 5: Testování
Video: Přečtěte si měřič elektřiny a plynu (belgický/nizozemský) a nahrajte ho do programu Thingspeak: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:18
Pokud se obáváte o svou spotřebu energie nebo jen o trochu blbce, pravděpodobně budete chtít vidět data ze svého fantastického nového digitálního měřiče na svém smartphonu.
V tomto projektu získáme aktuální data z belgického nebo nizozemského digitálního měřiče elektřiny a plynu a nahrajeme je do Thingspeak. Tato data zahrnují aktuální a denní spotřebu energie a vstřikování (pokud máte solární panely), napětí a proudy a spotřebu plynu (pokud je k elektroměru připojen digitální plynoměr). Prostřednictvím aplikace lze tyto hodnoty odečíst v reálném čase na vašem smartphonu.
Funguje pro belgický nebo holandský digitální měřič, který dodržuje protokol DSMR (Dutch Smart Meter Requirements), což by měly být všechny nedávné měřiče. Pokud žijete někde jinde, váš měřič pravděpodobně použije jiný protokol. Obávám se tedy, že tento Instructable je trochu regionálně omezený.
Použijeme port P1 měřiče, který přijímá kabel RJ11/RJ12, hovorově známý jako telefonní kabel. Ujistěte se, že instalační technik měřiče aktivoval port P1. Například u společnosti Fluvius v Belgii postupujte podle těchto pokynů.
Ke zpracování dat a nahrávání na internet používáme ESP8266, což je levný mikročip s integrovanou wifi. Stojí to jen něco jako 2 dolary. Navíc lze programovat pomocí Arduino IDE. Data ukládáme do cloudu na Thingspeak, který je zdarma maximálně pro čtyři kanály. Pro tento projekt používáme pouze jeden kanál. Data lze poté zobrazit na smartphonu pomocí aplikace, jako je IoT ThingSpeak.
Díly:
- Jeden ESP8266, jako nodemcu v2. Všimněte si, že nodemcu v3 je příliš široký pro standardní prkénko, takže dávám přednost v2.
- Kabel micro USB na USB.
- USB nabíječka.
- Jeden tranzistor NPN BC547b.
- Dva 10k odpory a jeden 1k odpor.
- Jeden šroubový konektor RJ12.
- Prkénko.
- Propojovací vodiče.
- Volitelně: jeden 1nF kondenzátor.
Celkově to stojí něco jako 15 EUR na AliExpress nebo podobném. Odhad bere v úvahu, že některé součásti, jako jsou odpory, tranzistory a vodiče, přicházejí v mnohem větším množství, než pro tento projekt potřebujete. Pokud tedy již máte sadu komponent, bude to levnější.
Krok 1: Seznámení s ESP8266
Vybral jsem NodeMCU v2, protože není nutné pájení a má připojení micro USB, které umožňuje snadné programování. Výhodou NodeMCU v2 oproti NodeMCU v3 je, že je dostatečně malý, aby se vešel na prkénko a ponechal na boku volné otvory pro navázání spojení. Je tedy lepší se NodeMCU v3 vyhnout. Pokud však dáváte přednost jiné desce ESP8266, je to také v pořádku.
ESP8266 lze snadno naprogramovat pomocí Arduino IDE. Podrobně to vysvětlují další pokyny, takže zde budu velmi stručný.
- Nejprve si stáhněte Arduino IDE.
- Podpora druhé instalace pro desku ESP8266. V nabídce Soubor - Předvolby - Nastavení přidejte URL https://arduino.esp8266.com/stable/package_esp8266com_index.json na URL dalších Board Manager. Dále v nabídce Nástroje - Deska - Správce desek nainstalujte esp8266 od komunity esp8266.
- Za třetí vyberte desku nejblíže vašemu ESP8266. V mém případě jsem zvolil NodeMCU v1.0 (modul ESP 12-E).
- Nakonec vyberte v části Nástroje - Velikost Flash velikost, která obsahuje SPIFFS, například 4M (1M SPIFFS). V tomto projektu používáme SPIFFS (SPI Flash File System) k ukládání denních energetických hodnot, takže se neztratí, pokud ESP8266 ztratí výkon, a to i když je přeprogramován.
Nyní máme vše připraveno k programování ESP8266! Skutečný kód probereme v pozdějším kroku. Nejprve si vytvoříme účet Thingspeak.
Krok 2: Vytvořte si účet a kanál Thingspeak
Přejděte na https://thingspeak.com/ a vytvořte si účet. Jakmile jste přihlášeni, vytvořte kanál kliknutím na tlačítko Nový kanál. V Nastavení kanálu vyplňte jméno a popis, jak chcete. Dále pojmenujeme pole kanálu a aktivujeme je kliknutím na zaškrtávací políčka vpravo. Pokud použijete můj kód beze změny, pole jsou následující:
- Pole 1: špičková spotřeba dnes (kWh)
- Pole 2: Dnešní spotřeba mimo špičku (kWh)
- Pole 3: Špičkové vstřikování dnes (kWh)
- Pole 4: Vstřikování mimo špičku dnes (kWh)
- Pole 5: spotřeba proudu (W)
- Pole 6: proudová injekce (W)
- Pole 7: Dnešní spotřeba plynu (m3)
Zde špička a mimo špičku odkazují na tarif elektřiny. V polích 1 a 2 se spotřeba vztahuje na dnešní čistou spotřebu elektřiny: spotřeba elektřiny dnes v tarifním období od půlnoci minus injekce elektřiny (vyráběné solárními panely) dnes v tarifním období od půlnoci s minimem nuly. To druhé znamená, že pokud by dnes došlo k většímu vstřiku než spotřebě, hodnota by byla nulová. Podobně se injekce v polích 3 a 4 týká čisté injekce elektřiny. Pole 5 a 6 udávají čistou spotřebu a injekci v aktuálním okamžiku. Nakonec pole 7 je spotřeba plynu od půlnoci.
Pro budoucí použití si poznamenejte ID kanálu, klíč rozhraní API pro čtení a klíč rozhraní API pro zápis, které najdete v klíčích API nabídky.
Krok 3: Budování elektronického obvodu
Odečteme elektroměr pomocí portu P1, který vyžaduje kabel RJ11 nebo RJ12. Rozdíl je v tom, že kabel RJ12 má 6 vodičů, zatímco RJ11 má pouze 4. V tomto projektu nenapájíme ESP8266 z portu P1, takže ve skutečnosti potřebujeme pouze 4 vodiče, takže RJ11 ano.
Použil jsem RJ12 breakout zobrazený na obrázku. Je trochu široký a v mém metru kolem portu P1 není mnoho místa. Hodí se, ale je těsný. Alternativně můžete použít kabel RJ11 nebo RJ12 a odizolovat konektor na jednom konci.
Pokud držíte vylamování jako na obrázku, jsou kolíky očíslovány zprava doleva a mají následující význam:
- Pin 1: Napájení 5V
- Pin 2: Data Request
- Pin 3: Data Ground
- Pin 4: není připojen
- Pin 5: Datový řádek
- Kolík 6: Uzemnění napájení
K napájení ESP8266 lze použít kolíky 1 a 6, ale toto jsem netestoval. Na ESP8266 byste museli připojit Pin 1 k Vin, takže vnitřní regulátor napětí desky slouží ke snížení napětí z 5V na 3,3V, které ESP8266 přijímá. Nepřipojujte jej tedy ke kolíku 3,3 V, protože by to mohlo poškodit ESP8266. Také napájení z portu P1 by časem vybilo baterii digitálního měřiče.
Nastavení pin 2 high signalizuje měřiči odesílání datových telegramů každou sekundu. Aktuální data jsou odesílána přes Pin 5 s přenosovou rychlostí 115200 pro moderní digitální měřič (DSMR 4 a 5). Signál je obrácen (nízký je 1 a vysoký je 0). U staršího typu (DSMR 3 a nižší) je rychlost 9600 baudů. U takového měřiče musíte změnit přenosovou rychlost v kódu firmwaru dalšího kroku: změnit řádek Serial.begin (115200); v nastavení ().
Role NPN tranzistoru je dvojí:
- Zvrátit signál tak, aby mu ESP8266 porozuměl.
- Chcete-li změnit logickou úroveň z 5 V portu P1 na 3,3 V očekávaného portem RX na ESP8266.
Vytvořte tedy elektronický obvod na prkénku podle schématu. Kondenzátor zvyšuje stabilitu, ale funguje také bez.
Odpojte připojení kolíku RX, dokud nenaprogramujete ESP8266 v dalším kroku. Ve skutečnosti je pin RX také potřebný ke komunikaci přes USB mezi ESP8266 a vaším počítačem.
Krok 4: Nahrajte kód
Zpřístupnil jsem kód na GitHub, je to jen jeden soubor: P1-Meter-Reader.ino. Stačí si jej stáhnout a otevřít v Arduino IDE. Nebo můžete vybrat Soubor - Nový a zkopírovat/vložit kód.
Na začátku souboru musíte vyplnit několik údajů: název a heslo WLAN, kterou chcete použít, a klíč ID kanálu a klíč API rozhraní ThingSpeak Channel.
Kód dělá následující:
- Čte datový telegram z měřiče každých UPDATE_INTERVAL (v milisekundách). Výchozí hodnota je každých 10 sekund. Normálně existuje datový telegram z měřiče každou sekundu, ale nastavení vysoké frekvence přetíží ESP8266, takže již nemůže provozovat webový server.
- Nahrává data o elektřině na kanál Thingspeak každých SEND_INTERVAL (v milisekundách). Výchozí hodnota je každou minutu. Při rozhodování o této frekvenci vezměte v úvahu, že odesílání dat nějakou dobu trvá (obvykle několik sekund) a že pro bezplatný účet je na frekvenci aktualizací na Thingspeak omezení. Je to asi 8200 zpráv denně, takže maximální frekvence by byla asi jednou za 10 sekund, pokud nepoužíváte Thingspeak na nic jiného.
- Při změně nahraje údaje o plynu. Měřič obvykle aktualizuje údaje o spotřebě plynu přibližně každé 4 minuty.
- Měřič sleduje celkovou spotřebu a hodnoty vstřikování od začátku. Aby se získala denní spotřeba a injekce, kód ukládá celkové hodnoty každý den o půlnoci. Poté se tyto hodnoty odečtou od aktuálních celkových hodnot. Hodnoty o půlnoci jsou uloženy v SPIFFS (SPI Flash File System), který přetrvává, pokud ESP8266 ztratí napájení nebo dokonce i když je přeprogramován.
- ESP8266 provozuje mini webový server. Pokud ve svém prohlížeči otevřete jeho IP adresu, získáte přehled o všech aktuálních hodnotách elektřiny a plynu. Ty pocházejí z nejnovějšího telegramu a obsahují informace, které nejsou nahrány do Thingspeak, například napětí a proudy na fázi. Výchozí nastavení je, že adresu IP dynamicky určuje váš router. Je ale pohodlnější použít statickou IP adresu, která je vždy stejná. V tomto případě musíte do kódu vyplnit staticIP, gateway, dns a subnet a odkomentovat řádek WiFi.config (staticIP, dns, gateway, subnet); ve funkci connectWifi ().
Jakmile provedete tyto změny, jste připraveni nahrát firmware do ESP8266. Připojte ESP8266 pomocí kabelu USB k počítači a stiskněte ikonu se šipkou v Arduino IDE. Pokud se vám nepodaří připojit k ESP8266, zkuste změnit port COM v nabídce Nástroje - Port. Pokud to stále nefunguje, je možné, že budete muset ručně nainstalovat ovladač pro USB virtuální COM port.
Krok 5: Testování
Po nahrání firmwaru odpojte USB a připojte vodič RX na ESP8266. Pamatujte, že pro nahrání firmwaru jsme potřebovali kanál RX na ESP8266, takže jsme ho dříve nepřipojili. Nyní zapojte RJ12 breakout do digitálního měřiče a znovu připojte ESP8266 k počítači.
V Arduino IDE otevřete Serial Monitor v nabídce Nástroje a ujistěte se, že je nastaven na 115200 baudů. Pokud musíte změnit přenosovou rychlost, možná budete muset zavřít a znovu otevřít sériový monitor, než bude fungovat.
Nyní byste měli vidět výstup kódu v Serial Monitor. Měli byste zkontrolovat, zda nejsou nějaké chybové zprávy. Měli byste také vidět telegramy. Pro mě vypadají takto:
/FLU5 / xxxxxxxxx_x
0-0: 96.1.4 (50213) 0-0: 96.1.1 (3153414733313030334436363535) // Měřič sériového čísla hexadecimální 0-0: 1,0,0 (200831181442S) // Časové razítko S: letní čas (léto), W: ne letní úspory (zimní) 1-0: 1,8,1 (000016,308*kWh) // Celková špičková čistá spotřeba 1-0: 1,8,2 (000029,666*kWh) // Celková čistá spotřeba mimo špičku 1-0: 2,8,1 (000138.634*kWh) // Celkový špičkový čistý nástřik 1-0: 2,8,2 (000042,415*kWh) // Celkový čistý nástřik mimo špičku 0-0: 96,14,0 (0001) // Tarif 1: špičkový, 2: mimo špičku 1-0: 1,7,0 (00 000*kW) // Spotřeba proudu 1-0: 2,7,0 (00,553*kW) // Vstřikování proudu 1-0: 32,7,0 (235,8*V) // Fáze 1 napětí 1-0: 52,7,0 (237,0*V) // napětí fáze 2 1-0: 72,7,0 (237,8*V) // napětí fáze 3 1-0: 31,7,0 (001*A) // Fáze 1 proud 1-0: 51,7,0 (000*A) // Fáze 2 proud 1-0: 71,7,0 (004*A) // Fáze 3 proud 0-0: 96,3,10 (1) 0-0: 17,0,0 (999,9*kW) // Maximální výkon 1-0: 31,4,0 (999*A) // Maximální proud 0-0: 96,13,0 () // Zpráva 0-1: 24,1,0 (003) // ostatní zařízení na sběrnici M-bus 0-1: 96.1.1 (37464C4F32313230313037393338) // sériové číslo plynový meteor r hexadecimální 0-1: 24,4,0 (1) 0-1: 24,2,3 (200831181002S) (00005,615*m3) // celková spotřeba časového razítka plynu! E461 // kontrolní součet CRC16
Pokud je něco v nepořádku, můžete zkontrolovat, zda máte stejné tagy a případně budete muset změnit kód analyzující telegramy ve funkci readTelegram.
Pokud vše funguje, můžete nyní esp8266 napájet z USB nabíječky.
Nainstalujte si do smartphonu aplikaci IoT ThingSpeak Monitor, vyplňte ID kanálu a klíč API pro čtení a je hotovo!
Doporučuje:
Jak odečíst měřič elektřiny přes Arduino: 3 kroky
Jak odečítat elektroměr přes Arduino: Často by bylo zajímavé znát aktuální spotřebu energie nebo celkovou spotřebu energie vašeho domova, abyste omezili náklady na elektřinu a chránili životní prostředí. To opravdu není problém, protože většinou najdete chytrý digitální el
Alexa Skill: Přečtěte si nejnovější tweet (v tomto případě boží): 6 kroků
Alexa Skill: Přečtěte si nejnovější tweet (v tomto případě boží): Vytvořil jsem Alexa Skill ke čtení " Boží nejnovější tweet " - obsah, tj. z @TweetOfGod, účtu předplatitele 5 milionů+ vytvořeného bývalým autorem komedií Daily Show. Používá IFTTT (If This Then That), tabulku Google a
Inteligentní měřič elektřiny: 3 kroky
Inteligentní elektroměr: Téměř všechny digitální elektroměry (chytré nebo ne) mají kontrolku, která bliká při každém použití určitého množství energie - často jednou za každou watthodinu (obvykle označeno jako 1 000 imp/kWh). zjistíte to jednoduchým Light Depen
Přečtěte si svůj hlavní měřič elektrické energie (ESP8266, WiFi, MQTT a Openhab): 6 kroků (s obrázky)
Přečtěte si svůj hlavní měřič elektrické energie (ESP8266, WiFi, MQTT a Openhab): V tomto Instructable zjistíte, jak jsem četl své hlavní využití elektrické energie v mém domě a publikoval jej prostřednictvím ESP8266, Wifi, MQTT v mé domácí automatizaci Openhab. Mám „inteligentní měřič“ISKRA typ MT372, ale není snadné jej exportovat
Vytvořte analogový měřič spotřeby elektřiny: 8 kroků (s obrázky)
Vybudujte si analogový měřič spotřeby elektřiny: Použil jsem Kill A Watt (http://www.p3international.com/products/special/P4400/P4400-CE.html) na chvíli elektroměr a já jsem se rozhodl postavit analogový. Tento projekt se stal jednoduchým, s jediným panelovým ampérmetrem