Älykäs mittarilukija

Asetettu päälle
Tässä blogikirjoituksessa kuvailen, kuinka voit helposti ja pienellä rahalla tehdä tämän DSMR-loggerin itse (DSMR on lyhenne sanoista "Hollannin älymittarin vaatimukset") voi tehdä. DSMR-loggeria kehitettäessä haluamme saavuttaa seuraavat:
  • Laitteiston on oltava yksinkertainen ja halpa valmistaa;
  • DSMR-loggerin laiteohjelmiston on voitava päivittää "Over The Air";
  • Rajoitettu historia on säilytettävä ja säilytettävä sisäisesti;
  • DSMR-loggerin on oltava käytettävissä ulkoisen päätteen (telnet) kautta;
  • (historialliset) tiedot on voitava hakea DSMR-loggerista FTP:n kautta mahdollista ulkoista käsittelyä varten;
  • DSMR-loggerin on esitettävä tiedot Smart Meteristä selaimen kautta;
  • Tietoja on voitava pyytää REST API:n kautta;
  • Luetun tiedon tulee olla helposti jatkokäsittelyä.
Seuraavassa blogikirjoituksessa näytän, kuinka voimme lähettää tiedot MQTT-välittäjälle ja miten Home-Assistant määritetään esittämään nämä tiedot Home-Assistantissa.


Älykäs mittaritekniikka

Smart Meter lähettää tiedot P1-portin (RJ12) kautta sähkeenä. Kuinka Smart Meter tekee tämän ja kuinka sähke rakentuu, kuvataan kohdassa Tämä asiakirja. Luku 5 on erityisen mielenkiintoinen, koska se kuvaa kuinka fyysinen käyttöliittymä rakennetaan. Tämä osoittaa muun muassa, että Smart Meter -mittarin on kyettävä syöttämään 5 volttia 250 mA:lla, jolloin lyhytaikainen huippuvirran pieneneminen on 300 mA. Luvussa 6 kuvataan protokolla ja eri kentät.

Kun tämä dokumentti on käsissäsi ja googlaa hieman, löydät pian lisää tietoa. Emme ole ensimmäiset emmekä varmasti ainoat, jotka tuntevat tarvetta lukea Smart Meter.
Esimerkiksi Matthijs Kooijman on kirjoittanut todella ylevän ohjelmiston jäsentääkseen mittarin sähkeet ja tallentaakseen ne pienikokoisiin muuttujiin. Tietysti käytämme tätä kirjastoa. Voit hänet tässä ladata.

Tarvikkeet

DSMR-loggerin tärkein osa on prosessori. Käytämme tähän ESP8266:ta, koska nopean ja riittävän muistin lisäksi se pystyy kommunikoimaan myös WiFin kautta. Kustannusten pitämiseksi alhaisina oletamme ESP-01-kortin (musta versio), jossa on 1 Mt muistia. Lisäksi kuuden vastuksen ja kolmen kondensaattorin (C4 ei todellakaan ole välttämätön, mutta voit lisätä sen, jos sinulla on ongelmia WiFi-verkkoon yhdistämisessä) lisäksi tarvitsemme NPN-transistorin (BC547) ja jännitesäätimen (MCP1700-3302E). DSMR-loggerin liittämiseksi Smart Meteriin tarvitset RJ12-liittimen, jossa on johto. Ostin Internetistä RJ12-kaapelin (kahdella RJ12-urosliittimellä) ja leikkasin sen kahtia.

Jos et halua käyttää DSMR-loggerin piirilevyä, tarvitset myös palan kokeellista levyä.
Kokonaiskustannukset ovat noin 20 €

DSMR-loggerin kaavio

Alla näet kaavion DSMR-loggerista:
Scheme DSMR Logger Scheme DSMR Logger
Karkeasti ottaen kaavio koostuu neljästä osasta (viides, joka sisältää 5 volttia ja GND PWR_FLAG:t, on KiCADin teknisesti vaatima, mutta se ei itse asiassa ole osa kaaviota).

Ensinnäkin Smart Meterin ja DSMR-loggerin välinen yhteys. Helpoin on juottaa kaapeli suoraan DSMR-loggeriin, mutta voit käyttää myös Molex-urosliitintä. Et voi kytkeä Molex-liittimiä "väärin päin" (se olisi ärsyttävää, koska silloin kytket Smart Meterin 5 voltin ja maadoituksen maahan ja 5 voltin DSMR-loggerin vastaavasti, mitä ESP-01 ei varmasti kestä! ). DSMR-loggerin liitännät ovat samat kuin RJ12-liittimessä (1 on kytketty 1:een, 2:een 2 jne.).

Toinen osa koostuu jännitesäätimestä, joka muuntaa Smart Meterin 5 voltin jännitteen 3v3:ksi ESP-01:tä varten. ESP-01:n tietolehden mukaan se käyttää normaalisti 80mA ja huipuissa 200-250mA. Käytetty MCP1700 voi syöttää enintään 250 mA. Riittää tähän sovellukseen.

Itse ESP-01:ssä on vain 8 liitäntää. Kaksi virtalähteelle (Vcc ja GND), yksi tiedonsiirtoon Smart Meterin (TxD) kanssa ja kolme nastaa, joiden on oltava "korkealla" käynnistyksen aikana (CH_PD, GPIO0 ja GPIO2). Kahta viimeistä nastaa (RST ja TxD) ei käytetä.

Viimeisellä piiriosalla, BC547-transistorin ympärillä, on kaksi toimintoa. Ensinnäkin se varmistaa, että Smart Meterin 5 voltin tiedot eivät ylikuormita ESP8266:n 3,3 voltin tuloa. Se on siis ensisijaisesti Level-Shifter. Mutta se on myös invertteri, joka muuntaa Smart Meterin käänteisen signaalin ei-invertoiduksi signaaliksi ESP8266:lle.

Laitteisto

Todisteeksi konseptista juotin DSMR-loggerin ensimmäisen version kokeelliselle levylle.
DSRM - Kokeilutulostus DSRM - Kokeilutulostus
Tässä näet Smart Meteriin yhdistetyn lopputuloksen:
DSRM – PCB-kokeilu valmis DSRM – PCB-kokeilu valmis
Kun kävi ilmi, että kaikki toimii suunnitellusti, suunnittelin piirilevyn KiCADilla.
Suunnittele DSRM Logger Suunnittele DSRM Logger

Asenna laiteohjelmisto ESP-01:een

Yksi suunnittelun tavoitteista on, että laiteohjelmistoTietoja The Airista” (ilmateitse) pitäisi voida laittaa DSMR-loggeriin. Tämäkin onnistui, mutta sinun on aina asennettava laiteohjelmisto ESP-01:een, joka tarjoaa tämän toiminnon ensimmäistä kertaa. Siksi et voi välttää laiteohjelmiston lähettämistä langallisen yhteyden kautta DSMR-loggeriin ainakin kerran. Lisäksi ohjelmiston kehittämisen aikana minulle sattui useaan otteeseen, että esitin virheen, jonka vuoksi OTA-lataus ei enää toiminut. Silloinkin ainoa tapa on lähettää laiteohjelmisto ilman virhettä DSMR-loggeriin johdolla.

Tarvitset ohjelmoijan ESP-01:n ohjelmointiin. Toinen halpa ratkaisu on ladata erityinen ohjelma Arduino UNO:han ja tehdä sitten useita yhteyksiä Arduino ja ESP-01-kortin välille.
Helpoin tapa on ostaa "ESP-01- USB sovitin" ja tehdä pieni muutos (katso blogikirjoitukseni).

Ohjelmisto

Periaatteessa ohjelmisto on hyvin yksinkertainen (katso DMSR-kirjaston mukana toimitettu esimerkki). Jos kuitenkin haluat lisää vaihtoehtoja, siitä tulee nopeasti melkoinen projekti!

DSMR-loggeri käyttää seuraavia kirjastoja:
Siksi ne on asennettava Arduino -IDE -ympäristöösi.

Käytämme myös yksinkertaista FTP-palvelinta David Paiva. Tämä sisällytetään lähteenä suoraan DSMRlogger2HTTP-luonnokseen (kaksi välilehteä), ja siksi käytät lainausmerkkejä (“) merkinnän "vähemmän ja suuren" sijasta.
Erikoiskohtelu oli tarpeen, koska tein pieniä muutoksia lähteeseen enkä halua niiden katoavan kirjastopäivityksen yhteydessä.

Luonnos koostuu yhteensä kahdeksasta välilehdestä. Pääohjelma, FTPserver.cpp, FTPserver.h, SPIFFSstuff, TimeStuff, UpdateHTML, WiFiStuff ja menuStuff. Voit ladata ohjelmiston ZIP-tiedostona osoitteesta GitHub ja pura sitten Arduino projektikansioosi. Jos koneellesi on asennettu git, voit myös kloonata arkiston komennolla:

git-klooni https://github.com/mrWheel/DSMRlogger2HTTP.git

Sitten se luo hakemistoon, jossa suoritat komennon (mieluiten Arduino projektikansioon), kansion nimeltä "DSMRlogger2HTTP", joka sisältää kaiken koodin, mukaan lukien "data"-hakemiston ESP-tiedostojärjestelmän tallentamiseen. -01 (tämä myös sisältää tiedoston "index.html").

Pseudokoodissa ohjelma näyttää tältä:
Pääohjelma toistetaan loputtomasti ja koostuu seuraavista vaiheista:

Aloita DSMRloggerin käyttö

Ennen kuin voit käyttää DSMRloggeria, sinun on ladattava laiteohjelmiston lisäksi myös tiedostojärjestelmä sisältöineen DSMRloggeriin. Mukavuuden vuoksi oletan, että osaat ladata laiteohjelmiston ja rajoitan selittämään, kuinka tiedostojärjestelmä saadaan DSMRloggeriin.
Jos et, niin lue toinen blogini aiheesta tekee ArduinoIDEsta sopivan ESP8266:lle.


Napsauta Arduino IDE:ssä seuraavaa valikkovaihtoehtoa:
Arduino IDE -tietojen lataus Arduino IDE -tietojen lataus
Kaikki tämän projektin "data"-hakemistossa olevat tiedostot on nyt sijoitettu ESP-01:n muistin erityiseen osaan.

HUOM! Tiedostojärjestelmän lataaminen menee pieleen, jos "Serial Monitor" on auki!

Nyt voit yhdistää DSMRloggerin Smart Meteriin, mutta se ei tiedä WiFi-verkkosi tietoja. Siksi se luo itse Access Pointin (AP), johon sinun on rekisteröitävä tietokoneesi. Tunnistat tukiaseman nimellä "ESP01-DSMR-xx-". Kun olet muodostanut yhteyden tukiasemaan, käynnistä selain ja siirry -osoitteeseen tukiaseman nimen mukaisesti. Siirryt sitten WiFi-asetusvalikkoon:
Wi-Fi-määritys Wi-Fi-määritys
WiFi-määritystukipiste WiFi-määritystukipiste
Napsauta [Configure WiFi] -painiketta, jonka jälkeen oikealla näkyvä sivu tulee näkyviin.

Valitse tällä sivulla sinulle kuuluva WiFi-verkko ja anna salasana. Paina sitten [tallenna]-painiketta.

Jos kaikki meni hyvin, näet seuraavan tekstin:
Vahvistus WiFi tallennettu Vahvistus WiFi tallennettu
DSMRlogger käynnistyy nyt uudelleen ja muodostaa yhteyden WiFi-verkkoosi. Käynnistyksen aikana näet sinisestä LED-valosta, mitä DSMRlogger tekee

1. 3 hidasta välähdystä - ensimmäinen käynnistys
2. 5 nopeaa välähdystä - yhdistetty WiFi-verkkoon
3. Sen jälkeen sininen LED vilkkuu joka kerta, kun uusi viesti käsitellään

Jos merkkivalo jää palamaan kolmen ensimmäisen hitaan välähdyksen jälkeen, DSMRlogger ei pystynyt muodostamaan yhteyttä WiFi-verkkoosi ja käynnistää oman tukiasemansa uudelleen. Tämä voi johtua siitä, että verkkosi oli tilapäisesti poissa käytöstä tai sitä oli vaikea tavoittaa tai koska et antanut WiFi-verkkosi tietoja oikein. Siinä tapauksessa DSMRlogger käynnistyy automaattisesti uudelleen muutaman minuutin kuluttua ja yrittää muodostaa yhteyden uudelleen WiFi-verkkoosi. Tätä prosessia toistetaan, kunnes yhteys on muodostettu tai kunnes annat uudelleen WiFi-verkkosi tiedot yllä kuvatulla tavalla.

DSMRlogger-verkkoliittymä

Kun DSMRlogger on yhdistetty WiFi-verkkoosi, voit siirtyä selaimellasi osoitteeseen:
http://ESP01-DSMR.local/ 
Alla oleva sivu tulee näkyviin selaimeesi. Näkemäsi tiedot päivitetään automaattisesti.
DSMR GUI DSMR GUI
Napsauttamalla välilehtiä voit tarkastella erityyppisiä tietoja.
DSMR viikoittainen yleiskatsaus DSMR viikoittainen yleiskatsaus

telnet-istunto:

Jos haluat muodostaa yhteyden DSMRloggeriin telnetin kautta, kirjoita seuraava komento pääteikkunaan:
telnet ESP01-DSMR.local
Sen jälkeen voit nähdä livenä mitä DSMRlogger tekee. Painamalla näet valikon, jonka avulla voit järjestää joitain kotitalousasioita. Suljet telnet-istunnon näppäinyhdistelmällä ctrl+] q (pidä ohjausnäppäintä alhaalla, paina “]”, vapauta molemmat ja paina “q”).
DSMR Telnet DSMR Telnet
HUOM! DSMRlogger voi käsitellä vain yhtä aktiivista telnet-istuntoa.

REST API

Jos haluat käyttää Smart Meter -mittarin tietoja toisesta ohjelmasta, voit hakea ne pyytämällä tätä URL-osoitetta:
http://ESP01-DSMR.local/getActual.json
DSMRlogger palauttaa sitten json-merkkijonon, joka näyttää tältä:
>

Seuraavassa blogikirjoituksessa näytän sinulle, kuinka näitä tietoja käytetään Home-Assistantissa.

Päivitä laiteohjelmisto

Tulee aika, jolloin haluat säätää DSMRloggerin laiteohjelmiston omiin näkemyksiisi ja tarpeisiisi.
On sitten ärsyttävää kävellä mittarin kaappiin jokaista säätöä varten irrottaaksesi DSMRloggerin, poistaaksesi ESP-01:n loggerista ja toimittaaksesi sille uuden laiteohjelmiston valitsemallasi ohjelmoijalla. Onneksi ei tarvitse. Arduino IDE:ssä et voi valita vain sarjaportteja, joihin DSMRlogger on kytketty. Valintavalikko sisältää myös "Verkkoportit":
Arduino IDE -portin valinta Arduino IDE -portin valinta
Minun tapauksessani Verkkoportti "ESP01-DSMR osoitteessa 192.168.12.142" on DSMRloggerin verkkoportti. Kun valitset tämän portin ja käännät ja lataat uuden laiteohjelmiston, se lähetetään langattomasti DSMRloggeriin (huomaat, että tämä on jopa nopeampaa kuin USB kaapelilla!).

Varmista vain, että lataamasi laiteohjelmisto ei sisällä ärsyttäviä virheitä. Minulle on sattunut useaan otteeseen, että esitän bugin, jonka takia laiteohjelmiston Over The Air -lataus lakkaa toimimasta (yleensä koko DSMRlogger lakkaa toimimasta tällaisessa tapauksessa), joten minun piti silti mennä mittarin kaappiin...

DSRM-loggerisarja

Ei ole enää käytettävissä
Versiossa 3 on samat toiminnot kuin versiossa 1, mutta siinä on myös joitain päivityksiä, jotka helpottavat juottamista.
Opencircuit on yhdessä Willem Aandewielin kanssa koonnut sarjan piirilevyllä ja kaikki tarvittavat osat rakentaaksesi tämän DSMR-loggerin itse.

Tällä sarjalla voit rakentaa DSRM-loggerin itse selkeästi jäsennellylle piirilevylle. Tämä ei vain säästä aikaa, vaan myös näyttää paljon kauniimmalta!
lähettänyt Verkkosivusto Willem Aandewiel (1955) on tausta elektroniikasta ja digitaalitekniikasta. Suurimman osan työelämästään hän on kuitenkin työskennellyt automaation parissa, jossa hän on työskennellyt lähes kaikilla aloilla ohjelmoijasta projektijohtajaan ja projektipäälliköön. Willem oli yksi ensimmäisistä hollantilaisista, joilla oli mikrotietokone (KIM-1, 1976) aikana, jolloin PC:tä ei ollut vielä keksitty. Nykyään hän keskittyy pääasiassa pienten mikroprosessoreilla varustettujen elektronisten piirien suunnitteluun ja tuotantoon. Hänen "elämäntehtävänsä" on saada ihmiset innostumaan omien elektronisten piirien, mikrotietokoneiden ja ohjelmoinnin tekemisestä.

Kommentit

The Netherlands Verkenner
Tässä sama ongelma kuin Joahn Krabe kirjoitti 12.10.2019. Yhteys DSMR (versio 4.5) puhelimesta/PC:stä toimii, mutta älymittarin tiedot pysyvät salassa, tässä myös Kamstrup 382 mittari, 5 voltin virtalähde mukana, ilman tulos. Mikä hätänä? Mittari toimii P1-näytön kanssa, jossa on TOON. Kiitos ehdotuksista.
Asetettu päälle 
The Netherlands Johan Krabbe
Bart: https://github.com/mrWheel/DSMRlogger2HTTP Tiedosto KiCad sisältää tulosteisiin tarvittavat tiedostot, toimii täydellisesti
Asetettu päälle 
Belgium Bart De Pauw
Hei Willem, olen jo etsinyt, myös sivustoltasi, mutta en löytänyt, voidaanko tätä käyttää myös DSMR 5.0.2 P1 -sähkeissä (nykyisessä versiossa). Ilmeisesti belgialaiset Fluvius/Eandis-digitaalimittarit ovat hieman erilaisia. hollantilainen DSMR 4 https://www.feebel.be/data/content/file/201804-technische-specificaties-gebruikerspoorten-digitale-meters.pdf Ehkä on aika julkaista v5? Olen aina valmis auttamaan versiotestauksessa (olen itse elektroniikkainsinööri vuodesta 1992) Muuten, huomasin, että tee-se-itse-sarjoja ei enää ollut saatavilla? Onko mahdollista vapauttaa painolevytiedostot niin, että voimme tehdä ne itse? Kiitos jo etukäteen tästä upeasta projektista (ja sitten odotan hetken ennen kuin aloitan sellaisen kokonaan itse, se olisi turhaa kaiken sen työn jälkeen, jonka olet jo tehnyt...)
Asetettu päälle 
1
The Netherlands Wim
Tulostus ei ole enää saatavilla. Onko jotain muuta tapaa saada tuloste? Ja vielä yksi kysymys: Puhut ESP-01:stä, mutta etkö tarkoita ESP-01S:ää? Siinä on kaksi kertaa enemmän flash-muistia. Jos hän haluaa käyttää OTA:ta, mielestäni tarvitset sitä. Vai olenko nyt väärässä?
Asetettu päälle 
The Netherlands Wim Nijntjes
Kysymys: Mikset käytä mittarin nastaa 2? Se on nyt kytketty 5 volttiin. Se voidaan helposti liittää GPIO-0/2:een (sisäinen optoerotin) ja sinulla on kättely. Ehkä FTP toimii silloin.
Asetettu päälle 
Webwinkelkeur Kiyoh Trustpilot Opencircuit