Obsah:

Přečtěte si měřič elektřiny a plynu (belgický/nizozemský) a nahrajte ho do programu Thingspeak: 5 kroků
Přečtěte si měřič elektřiny a plynu (belgický/nizozemský) a nahrajte ho do programu Thingspeak: 5 kroků

Video: Přečtěte si měřič elektřiny a plynu (belgický/nizozemský) a nahrajte ho do programu Thingspeak: 5 kroků

Video: Přečtěte si měřič elektřiny a plynu (belgický/nizozemský) a nahrajte ho do programu Thingspeak: 5 kroků
Video: Jiří Gavor: Nabídku na fixaci cen energií bych nyní nevyužil, v budoucnu se nevyplatí 2024, Listopad
Anonim
Přečtěte si měřič elektřiny a plynu (belgický/nizozemský) a nahrajte ho na Thingspeak
Přečtěte si měřič elektřiny a plynu (belgický/nizozemský) a nahrajte ho na Thingspeak
Přečtěte si měřič elektřiny a plynu (belgický/nizozemský) a nahrajte ho na Thingspeak
Přečtěte si měřič elektřiny a plynu (belgický/nizozemský) a nahrajte ho na Thingspeak

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

Budování elektronického obvodu
Budování elektronického obvodu
Budování elektronického obvodu
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: