Älykäs mittarilukija
Asetettu päälleTä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:
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.
Jos et halua käyttää DSMR-loggerin piirilevyä, tarvitset myös palan kokeellista levyä.
Kokonaiskustannukset ovat noin 20 €
- 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ä.
Ä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
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.
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
Tässä näet Smart Meteriin yhdistetyn lopputuloksen:
DSRM – PCB-kokeilu valmis
Kun kävi ilmi, että kaikki toimii suunnitellusti, suunnittelin piirilevyn KiCADilla.
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.
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:
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ä:
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
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:
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-
Wi-Fi-määritys
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:
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
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.
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
Napsauttamalla välilehtiä voit tarkastella erityyppisiä tietoja.
DSMR viikoittainen yleiskatsaus
telnet-istunto:
Jos haluat muodostaa yhteyden DSMRloggeriin telnetin kautta, kirjoita seuraava komento pääteikkunaan:telnet ESP01-DSMR.localSen jälkeen voit nähdä livenä mitä DSMRlogger tekee. Painamalla
DSMR Telnet
HUOM! DSMRlogger voi käsitellä vain yhtä aktiivista telnet-istuntoa.
Seuraavassa blogikirjoituksessa näytän sinulle, kuinka näitä tietoja käytetään Home-Assistantissa.
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.jsonDSMRlogger 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
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...
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
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!
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!