Kazalo:
- 1. korak: Spoznajte ESP8266
- Korak: Ustvarite račun in kanal Thingspeak
- 3. korak: Izdelava elektronskega vezja
- 4. korak: Naložite kodo
- 5. korak: Testiranje
Video: Preberite merilnik električne energije in plina (belgijski/nizozemski) in naložite v Thingspeak: 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Če ste zaskrbljeni zaradi porabe energije ali ste le malo nergači, si boste verjetno želeli podatke pametnega novega digitalnega števca ogledati na svojem pametnem telefonu.
V tem projektu bomo pridobili trenutne podatke iz belgijskega ali nizozemskega digitalnega števca električne energije in plina ter jih naložili v Thingspeak. Ti podatki vključujejo trenutno in dnevno porabo energije in vbrizgavanje (če imate sončne celice), napetosti in tokove ter porabo plina (če je na števec električne energije priključen digitalni števec plina). Z aplikacijo lahko te vrednosti v realnem času odčitate na svojem pametnem telefonu.
Deluje za belgijski ali nizozemski digitalni števec, ki sledi protokolu DSMR (nizozemske zahteve za pametne merilnike), ki bi morali biti vsi nedavni števci. Če živite nekje drugje, bo vaš števec verjetno uporabil drug protokol. Zato se bojim, da je ta Instructable nekoliko regionalno omejen.
Uporabili bomo vrata P1 na merilniku, ki sprejema kabel RJ11/RJ12, pogovorno znan kot telefonski kabel. Prepričajte se, da je monter števca aktiviral vrata P1. Na primer, za Fluvius v Belgiji sledite tem navodilom.
Za obdelavo podatkov in nalaganje v internet uporabljamo ESP8266, ki je poceni mikročip z vgrajenim wifi. Stane le 2 dolarja. Poleg tega ga je mogoče programirati z uporabo Arduino IDE. Podatke hranimo v oblaku na Thingspeaku, ki je brezplačen za največ štiri kanale. Za ta projekt uporabljamo samo en kanal. Podatki se nato lahko prikažejo na vašem pametnem telefonu z aplikacijo, kot je IoT ThingSpeak.
Deli:
- En ESP8266, kot nodemcu v2. Upoštevajte, da je nodemcu v3 preširok za standardno ploščo, zato imam raje v2.
- Kabel mikro USB v USB.
- USB polnilec.
- En tranzistor BC547b NPN.
- Dva upora 10k in en upor 1k.
- En vijačni priključek RJ12.
- Tla.
- Mostične žice.
- Izbirno: en kondenzator 1nF.
Skupaj to na AliExpressu ali podobnem stane približno 15 EUR. Ocena upošteva, da so nekatere komponente, kot so upori, tranzistorji in žice, v veliko večjih količinah, kot jih potrebujete za ta projekt. Torej, če že imate komplet komponent, bo ceneje.
1. korak: Spoznajte ESP8266
Izbral sem NodeMCU v2, saj spajkanje ni potrebno in ima priključek micro USB, ki omogoča enostavno programiranje. Prednost NodeMCU v2 pred NodeMCU v3 je, da je dovolj majhen, da se prilega na mizo in pušča proste luknje ob strani za vzpostavitev povezav. Zato se je bolje izogniti NodeMCU v3. Če pa imate raje drugo ploščo ESP8266, je to tudi v redu.
ESP8266 je mogoče enostavno programirati z uporabo Arduino IDE. Obstajajo še drugi navodili, ki to podrobno razlagajo, zato bom tukaj zelo kratek.
- Najprej prenesite Arduino IDE.
- Druga podpora za namestitev plošče ESP8266. V meniju Datoteka - Nastavitve - Nastavitve dodajte URL https://arduino.esp8266.com/stable/package_esp8266com_index.json na dodatne URL -je upravitelja plošč. Naprej v meniju Orodja - deska - upravitelj plošč namestite esp8266 skupnosti esp8266.
- Tretjič, izberite ploščo, ki je najbližja vašemu ESP8266. V mojem primeru sem izbral NodeMCU v1.0 (modul ESP 12-E).
- Na koncu izberite pod Orodja - Velikost bliskavice, velikost, ki vključuje SPIFFS, na primer 4M (1M SPIFFS). V tem projektu uporabljamo SPIFFS (SPI Flash File System) za shranjevanje dnevnih energijskih vrednosti, tako da se ne izgubijo, če ESP8266 izgubi moč in tudi ko je ponovno programiran.
Zdaj imamo vse pripravljeno za programiranje ESP8266! O dejanski kodi bomo razpravljali v naslednjem koraku. Najprej bomo ustvarili račun Thingspeak.
Korak: Ustvarite račun in kanal Thingspeak
Pojdite na https://thingspeak.com/ in ustvarite račun. Ko ste prijavljeni, kliknite gumb Nov kanal, da ustvarite kanal. V nastavitvah kanala vnesite ime in opis, kot želite. Nato poimenujemo polja kanala in jih aktiviramo s klikom na potrditvena polja na desni. Če uporabljate mojo kodo nespremenjeno, so polja naslednja:
- Polje 1: največja poraba danes (kWh)
- Polje 2: današnja največja poraba (kWh)
- Polje 3: največji vbrizg danes (kWh)
- Polje 4: vbrizg brez vrha danes (kWh)
- Polje 5: trenutna poraba (W)
- Polje 6: vbrizgavanje toka (W)
- Polje 7: Današnja poraba plina (m3)
Tu se najvišji in izven vrha nanašata na tarifo za električno energijo. Na poljih 1 in 2 se poraba nanaša na neto porabo električne energije danes: današnja poraba električne energije v tarifnem obdobju od polnoči minus vbrizgavanje električne energije (ki jo proizvajajo sončne celice) danes v tarifnem obdobju od polnoči z najmanj nič. Slednje pomeni, da če je danes več vbrizgavanja kot porabe, je vrednost nič. Podobno se vbrizgavanje v polja 3 in 4 nanaša na neto vbrizgavanje električne energije. Polji 5 in 6 označujeta neto porabo in vbrizgavanje v trenutnem trenutku. Nazadnje je polje 7 poraba plina od polnoči.
Za prihodnjo uporabo zapišite ID kanala, ključ API za branje in ključ API za pisanje, ki jih najdete v menijskih ključih API.
3. korak: Izdelava elektronskega vezja
Števec električne energije odčitamo s priključkom P1, ki potrebuje kabel RJ11 ali RJ12. Razlika je v tem, da ima kabel RJ12 6 žic, RJ11 pa samo 4. V tem projektu ne napajamo ESP8266 iz vrat P1, zato dejansko potrebujemo le 4 žice, zato bi bil primeren RJ11.
Uporabil sem preboj RJ12, prikazan na sliki. Je nekoliko širok in v mojem števcu ni veliko prostora okoli vrat P1. Prilega se, vendar je tesno. Druga možnost je, da uporabite kabel RJ11 ali RJ12 in odstranite glavo na enem koncu.
Če držite prekinitev, kot je na sliki, so zatiči oštevilčeni od desne proti levi in imajo naslednji pomen:
- Pin 1: 5V Napajanje
- Pin 2: Zahteva za podatke
- Pin 3: Podlaga za podatke
- Pin 4: ni povezan
- Pin 5: Podatkovna vrstica
- Pin 6: Ozemljitev napajanja
Pin 1 in Pin 6 bi lahko uporabili za napajanje ESP8266, vendar tega nisem preizkusil. Pin 1 morate priključiti na Vin ESP8266, zato se notranji regulator napetosti plošče uporablja za zmanjšanje napetosti s 5 V na 3,3 V, ki jo ESP8266 sprejema. Zato ga ne priključite na 3.3V pin, ker bi to lahko poškodovalo ESP8266. Tudi napajanje iz vrat P1 bi sčasoma izpraznilo baterijo digitalnega števca.
Nastavitev visokega zatiča 2 signalizira merilnik za pošiljanje podatkovnih telegramov vsako sekundo. Dejanski podatki se pošiljajo prek Pin 5 s hitrostjo prenosa 115200 za sodoben digitalni števec (DSMR 4 in 5). Signal je obrnjen (nizek je 1, visok pa 0). Za starejšo vrsto (DSMR 3 in manj) je hitrost 9600 baud. Za tak števec morate spremeniti hitrost prenosa v kodi vdelane programske opreme naslednjega koraka: spremenite vrstico Serial.begin (115200); v nastavitvi ().
Vloga tranzistorja NPN je dvojna:
- Če želite signal obrniti, da ga ESP8266 razume.
- Za spremembo logične ravni s 5V na vratih P1 na 3.3V, ki jih pričakujejo vrata RX na ESP8266.
Zato ustvarite elektronsko vezje na plošči, kot je prikazano na diagramu. Kondenzator poveča stabilnost, deluje pa tudi brez.
Pridržite priključitev zatiča RX, dokler v naslednjem koraku ne programirate ESP8266. Dejansko je pin RX potreben tudi za komunikacijo prek USB -ja med ESP8266 in računalnikom.
4. korak: Naložite kodo
Kodo sem dal na voljo na GitHubu, to je samo ena datoteka: P1-Meter-Reader.ino. Prenesite ga in odprite v Arduino IDE. Lahko pa izberete Datoteka - Novo in samo kopirajte/prilepite kodo.
Na začetku datoteke morate vnesti nekaj podatkov: ime in geslo WLAN za uporabo ter ID kanala in ključ API za pisanje kanala ThingSpeak.
Koda naredi naslednje:
- Vsako UPDATE_INTERVAL (v milisekundah) prebere podatkovni telegram z merilnika. Privzeta vrednost je vsakih 10 sekund. Običajno iz merilnika vsako sekundo prehaja podatkovni telegram, vendar nastavitev frekvence na visoko preobremeni ESP8266, zato ne more več zagnati spletnega strežnika.
- Naloži podatke o električni energiji v kanal Thingspeak vsakih SEND_INTERVAL (v milisekundah). Privzeta vrednost je vsaka minuta. Če se želite odločiti o tej pogostosti, upoštevajte, da pošiljanje podatkov traja nekaj časa (običajno nekaj sekund) in da je omejitev pogostosti posodabljanja za Thingspeak za brezplačen račun omejena. Gre za približno 8200 sporočil na dan, zato bi bila največja frekvenca približno enkrat na 10 sekund, če ne uporabljate Thingspeak za kaj drugega.
- Naloži podatke o plinu, ko se spremenijo. Običajno števec posodobi podatke o porabi plina le vsake 4 minute.
- Merilnik spremlja skupno porabo in vrednosti vbrizgavanja od začetka. Za pridobitev dnevne porabe in vbrizgavanja koda vsak dan ob polnoči shrani skupne vrednosti. Nato se te vrednosti odštejejo od trenutnih skupnih vrednosti. Vrednosti ob polnoči se shranijo v SPIFFS (SPI Flash File System), ki se ohrani, če ESP8266 izgubi moč ali celo pri ponovnem programiranju.
- ESP8266 poganja mini spletni strežnik. Če v brskalniku odprete njegov naslov IP, dobite pregled vseh trenutnih vrednosti električne energije in plina. Te so iz najnovejšega telegrama in vključujejo informacije, ki niso naložene v Thingspeak, na primer napetosti in tokove na fazo. Privzeta nastavitev je, da usmerjevalnik dinamično določi naslov IP. Vendar je bolj priročno uporabiti statični naslov IP, ki je vedno enak. V tem primeru morate v kodo vnesti staticIP, prehod, dns in podomrežje ter odkomentirati vrstico WiFi.config (staticIP, dns, prehod, podomrežje); v funkciji connectWifi ().
Ko izvedete te spremembe, ste pripravljeni naložiti vdelano programsko opremo v ESP8266. Priključite ESP8266 prek kabla USB na računalnik in pritisnite ikono s puščico v Arduino IDE. Če se ne uspete povezati z ESP8266, poskusite spremeniti vrata COM v meniju Orodja - Vrata. Če še vedno ne deluje, je mogoče ročno namestiti gonilnik za navidezna vrata USB USB.
5. korak: Testiranje
Ko naložite vdelano programsko opremo, odklopite USB in priključite žico RX na ESP8266. Ne pozabite, da smo za nalaganje vdelane programske opreme potrebovali kanal RX ESP8266, zato ga prej nismo povezali. Zdaj priključite odklop RJ12 v digitalni števec in znova priključite ESP8266 na računalnik.
V Arduino IDE odprite Serial Monitor v meniju Tools in se prepričajte, da je nastavljen na 115200 baud. Če morate spremeniti hitrost prenosa, boste morda morali zapreti in znova odpreti serijski monitor, preden bo deloval.
Zdaj bi morali videti izpis kode v serijskem monitorju. Preverite, ali obstajajo sporočila o napakah. Prav tako bi morali videti telegrame. Zame izgledajo takole:
/FLU5 / xxxxxxxxx_x
0-0: 96.1.4 (50213) 0-0: 96.1.1 (3153414733313030313434363235) // Šestnajstiški števec serijske številke 0-0: 1.0.0 (200831181442S) // Časovni žig S: poletni čas (poletje), W: ne poletni čas (zima) 1-0: 1,8,1 (000016,308*kWh) // Skupna največja neto poraba 1-0: 1,8,2 (000029,666*kWh) // Skupna neto poraba izven vrha 1-0: 2,8,1 (000138.634*kWh) // Skupno največje neto vbrizgavanje 1-0: 2.8.2 (000042.415*kWh) // Skupno neto vbrizgavanje izven vrha 0-0: 96.14.0 (0001) // Tarifa 1: najvišja, 2: izven vrha 1-0: 1.7.0 (00.000*kW) // Poraba toka 1-0: 2.7.0 (00.553*kW) // Tok vbrizgavanja 1-0: 32.7.0 (235.8*V) // Faza 1 napetost 1-0: 52,7,0 (237,0*V) // Napetost 2 faze 1-0: 72,7,0 (237,8*V) // Faza 3 napetost 1-0: 31,7,0 (001*A) // Tok 1 faze 1-0: 51,7,0 (000*A) // tok 2 faze 1-0: 71,7,0 (004*A) // tok 3 faze 0-0: 96,3,10 (1) 0-0: 17,0,0 (999,9*kW) // Največja moč 1-0: 31,4,0 (999*A) // Največji tok 0-0: 96,13,0 () // Sporočilo 0-1: 24,1,0 (003) // druge naprave na M-vodilu 0-1: 96.1.1 (37464C4F32313230313037393338) // Serijska številka plinski met r šestnajstiško 0-1: 24.4.0 (1) 0-1: 24.2.3 (200831181002S) (00005.615*m3) // Skupna poraba časovnega žiga plina! E461 // Kontrolna vsota CRC16
Če je kaj narobe, lahko preverite, ali imate iste oznake in boste morda morali spremeniti kodo, ki razčlenjuje telegrame v funkciji readTelegram.
Če vse deluje, lahko zdaj napajate esp8266 iz polnilnika USB.
Namestite aplikacijo IoT ThingSpeak Monitor na svoj pametni telefon, vnesite ID kanala in Preberite ključ API -ja in končali ste!
Priporočena:
Poraba električne energije in nadzor okolja prek Sigfoxa: 8 korakov
Poraba električne energije in spremljanje okolja prek podjetja Sigfox: Opis Ta projekt vam bo pokazal, kako porabo električne energije v prostoru na trifazni distribuciji električne energije nato poslati na strežnik z uporabo omrežja Sigfox vsakih 10 minut. Kako izmeriti moč? Imamo tri trenutne sponke iz
Brezžični prenos električne energije: 6 korakov
Brezžični prenos električne energije: v tej vadnici vam bom pokazal, kako prenašati električno energijo z zelo preprostim vezjem
Sistem zasilne razsvetljave za merjenje statične električne energije: 8 korakov
Sistem zasilne razsvetljave, ki temelji na merjenju statične električne energije: Ste kdaj pomislili, da bi ob izklopu glavnega napajanja naredili sistem razsvetljave v sili. Ker imate še malo znanja o elektroniki, morate vedeti, da lahko preprosto preverite razpoložljivost električne energije, tako da preprosto izmerite
Merilnik porabe električne energije CHINT + ESP8266 & Matrix Led MAX7912: 9 korakov (s slikami)
Merilnik porabe električne energije CHINT + ESP8266 & Matrix Led MAX7912: Tokrat se bomo vrnili k zanimivemu projektu, merjenju porabe električne energije na invaziven način s fazo CHINT DDS666 Mono, tehnično gre za stanovanjski ali stanovanjski števec, ki ga že imamo predstavljeno v prejšnjih tu
Preberite svoj glavni števec električne energije (ESP8266, WiFi, MQTT in Openhab): 6 korakov (s slikami)
Preberite svoj glavni števec električne energije (ESP8266, WiFi, MQTT in Openhab): V tem navodilu boste izvedeli, kako berem svojo porabo električne energije v svoji hiši, in ga objavili prek ESP8266, Wifi, MQTT v svoji domači avtomatizaciji Openhab. Imam "pameten števec" ISKRA tipa MT372, vendar izvoz ni enostaven