Obsah:

Prečítajte si merač elektriny a plynu (belgický/holandský) a nahrajte ho do služby Thingspeak: 5 krokov
Prečítajte si merač elektriny a plynu (belgický/holandský) a nahrajte ho do služby Thingspeak: 5 krokov

Video: Prečítajte si merač elektriny a plynu (belgický/holandský) a nahrajte ho do služby Thingspeak: 5 krokov

Video: Prečítajte si merač elektriny a plynu (belgický/holandský) a nahrajte ho do služby Thingspeak: 5 krokov
Video: POULET ROTI MONSIEUR CUISINE PLUS & CONNECT (CUISSON VAPEUR + FOUR) RECETTE 2024, Júl
Anonim
Prečítajte si merač elektriny a plynu (belgický/holandský) a nahrajte ho do služby Thingspeak
Prečítajte si merač elektriny a plynu (belgický/holandský) a nahrajte ho do služby Thingspeak
Prečítajte si merač elektriny a plynu (belgický/holandský) a nahrajte ho do služby Thingspeak
Prečítajte si merač elektriny a plynu (belgický/holandský) a nahrajte ho do služby Thingspeak

Ak máte obavy o svoju spotrebu energie alebo sa len trochu zbláznite, pravdepodobne budete chcieť vidieť údaje zo svojho nového elegantného digitálneho merača vo svojom smartfóne.

V tomto projekte získame aktuálne údaje z belgického alebo holandského digitálneho merača elektriny a plynu a nahráme ich do Thingspeak. Tieto údaje zahŕňajú aktuálnu a dennú spotrebu a injekciu energie (ak máte solárne panely), napätie a prúdy a spotrebu plynu (ak je k elektromeru pripojený digitálny plynomer). Prostredníctvom aplikácie je možné tieto hodnoty odčítať v reálnom čase na vašom smartfóne.

Funguje to na belgický alebo holandský digitálny merač, ktorý dodržiava protokol DSMR (Dutch Smart Meter Requirements), čo by mali byť všetky najnovšie merače. Ak žijete niekde inde, bohužiaľ váš merač pravdepodobne použije iný protokol. Obávam sa preto, že tento návod je trochu regionálne obmedzený.

Použijeme port P1 meradla, ktorý prijíma kábel RJ11/RJ12, hovorovo známy ako telefónny kábel. Uistite sa, že inštalátor merača aktivoval port P1. Napríklad pre spoločnosť Fluvius v Belgicku postupujte podľa týchto pokynov.

Na spracovanie údajov a nahratie na internet používame ESP8266, čo je lacný mikročip so vstavaným wifi. Stojí to len niečo ako 2 doláre. Navyše je možné ho naprogramovať pomocou Arduino IDE. Dáta ukladáme v cloude na Thingspeak, ktorý je zadarmo maximálne pre štyri kanály. Na tento projekt používame iba jeden kanál. Údaje je potom možné zobraziť na vašom smartfóne pomocou aplikácie, ako je IoT ThingSpeak.

Diely:

  • Jeden ESP8266, ako nodemcu v2. Všimnite si toho, že nodemcu v3 je príliš široký na štandardný dosku, preto dávam prednosť v2.
  • Kábel micro USB na USB.
  • USB nabíjačka.
  • Jeden tranzistor NP5 BC547b.
  • Dva 10k odpory a jeden 1k odpor.
  • Jeden skrutkový konektor RJ12.
  • Chlebník.
  • Prepojovacie vodiče.
  • Voliteľné: jeden 1nF kondenzátor.

Celkovo to stojí niečo ako 15 EUR na AliExpress alebo podobných. Odhad berie do úvahy, že niektoré komponenty, ako sú odpory, tranzistory a vodiče, sa dodávajú v oveľa väčšom množstve, ako potrebujete pre tento projekt. Takže ak už máte súpravu komponentov, bude to lacnejšie.

Krok 1: Zoznámte sa s ESP8266

Vybral som si NodeMCU v2, pretože nie je potrebné spájkovanie a má pripojenie micro USB, ktoré umožňuje ľahké programovanie. Výhodou NodeMCU v2 oproti NodeMCU v3 je, že je dostatočne malý na to, aby sa zmestil na dosku a ponechal na boku voľné otvory na vytváranie spojení. Preto je lepšie sa vyhnúť NodeMCU v3. Ak však dávate prednosť inej doske ESP8266, je to tiež v poriadku.

ESP8266 je možné ľahko naprogramovať pomocou Arduino IDE. Existujú aj ďalšie pokyny, ktoré to podrobne vysvetľujú, takže tu budem veľmi stručný.

  • Najprv si stiahnite Arduino IDE.
  • Podpora druhej inštalácie pre dosku ESP8266. V ponuke Súbor - Predvoľby - Nastavenia pridajte adresu URL https://arduino.esp8266.com/stable/package_esp8266com_index.json na dodatočné adresy URL správcu tabule. Ďalej v ponuke Nástroje - Doska - Správca dosiek nainštalujte esp8266 od komunity esp8266.
  • Po tretie vyberte dosku, ktorá je najbližšie k vášmu ESP8266. V mojom prípade som vybral NodeMCU v1.0 (modul ESP 12-E).
  • Nakoniec vyberte v časti Nástroje - Flash Size veľkosť, ktorá obsahuje SPIFFS, napríklad 4M (1M SPIFFS). V tomto projekte používame SPIFFS (SPI Flash File System) na ukladanie denných energetických hodnôt, aby sa nestratili, ak ESP8266 stratí napájanie a dokonca aj vtedy, keď je preprogramovaný.

Teraz máme všetko pripravené na programovanie ESP8266! Skutočný kód prediskutujeme v neskoršom kroku. Najprv si vytvoríme účet Thingspeak.

Krok 2: Vytvorte si účet a kanál Thingspeak

Prejdite na https://thingspeak.com/ a vytvorte si účet. Po prihlásení vytvorte kanál kliknutím na tlačidlo Nový kanál. V nastaveniach kanála zadajte meno a popis, ako sa vám páči. Ďalej pomenujeme polia kanála a aktivujeme ich kliknutím na začiarkavacie políčka vpravo. Ak použijete môj kód nezmenený, polia budú nasledujúce:

  • Pole 1: Dnešná špičková spotreba (kWh)
  • Pole 2: Dnešná spotreba mimo špičku (kWh)
  • Pole 3: Špičkové vstrekovanie dnes (kWh)
  • Pole 4: vstrekovanie mimo špičku dnes (kWh)
  • Pole 5: prúdová spotreba (W)
  • Pole 6: prúdové vstrekovanie (W)
  • Pole 7: Dnešná spotreba plynu (m3)

Špička a mimo špičky sa tu týkajú tarify za elektrinu. V poliach 1 a 2 sa spotreba vzťahuje na dnešnú čistú spotrebu elektrickej energie: spotreba elektrickej energie dnes v tarifnom období od polnoci mínus injekcia elektrickej energie (vyrábanej solárnymi panelmi) dnes v tarifnom období od polnoci s minimom nuly. To druhé znamená, že ak by bolo dnes viac injekcií ako spotreby, hodnota by bola nulová. Podobne injekcia v poliach 3 a 4 sa týka čistého vstrekovania elektriny. Polia 5 a 6 uvádzajú čistú spotrebu a vstrekovanie v aktuálnom okamihu. Nakoniec je v poli 7 spotreba plynu od polnoci.

Pre budúce použitie si zapíšte ID kanála, kľúč rozhrania API na čítanie a kľúč rozhrania API na zápis, ktoré nájdete v kľúčoch ponuky API.

Krok 3: Budovanie elektronického obvodu

Budovanie elektronického obvodu
Budovanie elektronického obvodu
Budovanie elektronického obvodu
Budovanie elektronického obvodu

Elektromer odčítame pomocou portu P1, ktorý používa kábel RJ11 alebo RJ12. Rozdiel je v tom, že kábel RJ12 má 6 vodičov, zatiaľ čo RJ11 má iba 4. V tomto projekte nezapájame ESP8266 z portu P1, takže v skutočnosti potrebujeme iba 4 vodiče, takže RJ11 by to stačilo.

Použil som RJ12 breakout zobrazený na obrázku. Je trochu široký a okolo portu P1 v mojom merači nie je veľa miesta. Hodí sa, ale je tesný. Alternatívne môžete použiť iba kábel RJ11 alebo RJ12 a na jednom konci odizolovať konektor.

Ak podržíte prerušenie ako na obrázku, kolíky sú očíslované sprava doľava a majú nasledujúci význam:

  • Pin 1: Napájanie 5V
  • Pin 2: Žiadosť o údaje
  • Kolík 3: Územie údajov
  • Kolík 4: nie je pripojený
  • Pin 5: Dátový riadok
  • Kolík 6: Napájacie uzemnenie

Na napájanie ESP8266 je možné použiť pin 1 a pin 6, ale toto som netestoval. Na ESP8266 by ste museli pripojiť pin 1 na Vin, takže vnútorný regulátor napätia dosky slúži na zníženie napätia z 5V na 3,3V, ktoré ESP8266 akceptuje. Nepripájajte ho preto k 3,3V pinu, pretože by to mohlo poškodiť ESP8266. Napájanie z portu P1 by časom vybilo batériu digitálneho merača.

Nastavenie vysokého pinu 2 signalizuje meraču odosielanie dátových telegramov každú sekundu. Aktuálne údaje sa odosielajú cez pin 5 s prenosovou rýchlosťou 115 200 pre moderný digitálny merač (DSMR 4 a 5). Signál je obrátený (nízky je 1 a vysoký je 0). Pri staršom type (DSMR 3 a nižšie) je rýchlosť 9600 baudov. Pre takýto merač musíte zmeniť prenosovú rýchlosť v kóde firmvéru v nasledujúcom kroku: zmeňte riadok Serial.begin (115200); v nastavení ().

Úloha tranzistora NPN je dvojaká:

  • Na zvrátenie signálu, aby mu ESP8266 porozumel.
  • Na zmenu logickej úrovne z 5 V portu P1 na 3,3 V očakávaného portom RX na ESP8266.

Vytvorte teda elektronický obvod na doske ako na obrázku. Kondenzátor zvyšuje stabilitu, ale funguje aj bez neho.

Odpojte pripojenie kolíka RX, kým nenaprogramujete ESP8266 v nasledujúcom kroku. Pin RX je skutočne potrebný aj na komunikáciu cez USB medzi ESP8266 a vašim počítačom.

Krok 4: Nahrajte kód

Sprístupnil som kód na GitHub, je to len jeden súbor: P1-Meter-Reader.ino. Stačí si ho stiahnuť a otvoriť v Arduino IDE. Alebo môžete vybrať Súbor - Nový a skopírovať/prilepiť kód.

Na začiatku súboru je potrebné vyplniť niekoľko informácií: názov a heslo siete WLAN, ktorú chcete použiť, a kľúč Channel ID a kľúč API rozhrania ThingSpeak Channel.

Kód robí nasledujúce:

  • Načíta dátový telegram z merača každých UPDATE_INTERVAL (v milisekundách). Predvolená hodnota je každých 10 sekúnd. Normálne existuje dátový telegram z merača každú sekundu, ale nastavenie vysokej frekvencie preťaží ESP8266, takže už nemôže prevádzkovať webový server.
  • Odošle údaje o elektrine na kanál Thingspeak každých SEND_INTERVAL (v milisekundách). Predvolená hodnota je každú minútu. Pri rozhodovaní o tejto frekvencii vezmite do úvahy, že odoslanie údajov trvá určitý čas (zvyčajne niekoľko sekúnd) a že frekvencia aktualizácií bezplatného účtu na Thingspeak je obmedzená. Je to asi 8200 správ za deň, takže maximálna frekvencia by bola asi raz za 10 sekúnd, ak nepoužívate Thingspeak na nič iné.
  • Odošle údaje o plyne, keď sa zmení. Merač obvykle aktualizuje údaje o spotrebe plynu iba každé 4 minúty.
  • Merač sleduje celkovú hodnotu spotreby a vstrekovania od začiatku. Aby sa získal denný príjem a injekcia, kód ukladá celkové hodnoty každý deň o polnoci. Potom sa tieto hodnoty odpočítajú od súčasných celkových hodnôt. Hodnoty o polnoci sú uložené v SPIFFS (SPI Flash File System), ktorý pretrváva, ak ESP8266 stratí napájanie alebo dokonca aj vtedy, keď je preprogramovaný.
  • ESP8266 prevádzkuje mini webový server. Ak v prehliadači otvoríte jeho IP adresu, získate prehľad o všetkých aktuálnych hodnotách elektriny a plynu. Tieto sú z posledného telegramu a obsahujú informácie, ktoré nie sú nahrané do Thingspeak, napríklad napätie a prúdy na fázu. Predvolené nastavenie je, že adresu IP dynamicky určuje váš smerovač. Ale je pohodlnejšie použiť statickú IP adresu, ktorá je vždy rovnaká. V takom prípade musíte do kódu vyplniť staticIP, bránu, dns a podsieť a odkomentovať riadok WiFi.config (staticIP, dns, gateway, subnet); vo funkcii connectWifi ().

Po vykonaní týchto zmien ste pripravení nahrať firmvér do ESP8266. Pripojte ESP8266 pomocou kábla USB k počítaču a stlačte ikonu so šípkou v Arduino IDE. Ak sa vám nepodarí pripojiť k ESP8266, skúste zmeniť port COM v ponuke Nástroje - Port. Ak to stále nefunguje, je možné, že budete musieť manuálne nainštalovať ovládač pre virtuálny port USB COM.

Krok 5: Testovanie

Po nahraní firmvéru odpojte USB a pripojte kábel RX zariadenia ESP8266. Pamätajte si, že na odoslanie firmvéru sme potrebovali kanál RX ESP8266, takže sme ho predtým nepripojili. Teraz zapojte RJ12 breakout do digitálneho merača a znova pripojte ESP8266 k počítaču.

V Arduino IDE otvorte Sériový monitor v ponuke Nástroje a uistite sa, že je nastavený na 115200 baudov. Ak chcete zmeniť prenosovú rýchlosť, možno budete musieť sériový monitor znova zatvoriť a znova otvoriť.

Teraz by ste mali vidieť výstup kódu v sériovom monitore. Mali by ste skontrolovať, či neexistujú nejaké chybové hlásenia. Mali by ste tiež vidieť telegramy. U mňa vyzerajú takto:

/FLU5 / xxxxxxxxx_x

0-0: 96.1.4 (50213) 0-0: 96.1.1 (3153414733313030334436363535) // Merač sériového čísla hexadecimálny 0-0: 1,0,0 (200831181442S) // Časová pečiatka S: letný čas (leto), W: nie letné úspory (zima) 1-0: 1,8,1 (000016,308*kWh) // Celková špičková čistá spotreba 1-0: 1,8,2 (000029,666*kWh) // Celková čistá spotreba mimo špičky 1-0: 2,8,1 (000138,634*kWh) // Celkový špičkový čistý nástrek 1-0: 2,8,2 (000042,415*kWh) // Celkový čistý nástrek mimo špičku 0-0: 96,14,0 (0001) // Tarif 1: špičkový, 2: mimo špičky 1-0: 1,7,0 (00 000*kW) // Prúdová spotreba 1-0: 2,7,0 (00,553*kW) // Prúdové vstrekovanie 1-0: 32,7,0 (235,8*V) // Fáza 1 napätie 1-0: 52,7,0 (237,0*V) // napätie fázy 2 1-0: 72,7,0 (237,8*V) // napätie fázy 3 1-0: 31,7,0 (001*A) // Fáza 1 prúd 1-0: 51,7,0 (000*A) // Fáza 2 prúd 1-0: 71,7,0 (004*A) // Fáza 3 prúd 0-0: 96,3,10 (1) 0-0: 17,0,0 (999,9*kW) // Maximálny výkon 1-0: 31,4,0 (999*A) // Max. Prúd 0-0: 96,13,0 () // Správa 0-1: 24,1,0 (003) // ostatné zariadenia na M-bus 0-1: 96.1.1 (37464C4F32313230313037393338) // Sériové číslo plynový meteor r hexadecimálne 0-1: 24,4,0 (1) 0-1: 24,2,3 (200831181002S) (00005,615*m3) // celková spotreba časovej značky plynu! E461 // kontrolný súčet CRC16

Ak niečo nie je v poriadku, môžete skontrolovať, či máte rovnaké štítky a prípadne budete musieť zmeniť kód analyzujúci telegramy vo funkcii readTelegram.

Ak všetko funguje, teraz môžete esp8266 napájať z nabíjačky USB.

Nainštalujte si aplikáciu IoT ThingSpeak Monitor do svojho smartfónu, zadajte identifikátor kanála a kľúč rozhrania API na čítanie a máte hotovo!

Odporúča: