Sadržaj:

Pročitajte mjerač električne energije i plina (belgijski/holandski) i otpremite na Thingspeak: 5 koraka
Pročitajte mjerač električne energije i plina (belgijski/holandski) i otpremite na Thingspeak: 5 koraka

Video: Pročitajte mjerač električne energije i plina (belgijski/holandski) i otpremite na Thingspeak: 5 koraka

Video: Pročitajte mjerač električne energije i plina (belgijski/holandski) i otpremite na Thingspeak: 5 koraka
Video: ISKRA Electrical scale / ISKRA Elektricno mjerilo 2024, Juli
Anonim
Pročitajte mjerač električne energije i plina (belgijski/holandski) i otpremite na Thingspeak
Pročitajte mjerač električne energije i plina (belgijski/holandski) i otpremite na Thingspeak
Pročitajte mjerač električne energije i plina (belgijski/holandski) i otpremite na Thingspeak
Pročitajte mjerač električne energije i plina (belgijski/holandski) i otpremite na Thingspeak

Ako ste zabrinuti zbog svoje potrošnje energije ili ste samo štreber, vjerojatno biste htjeli vidjeti podatke sa svog novog digitalnog mjerača na svom pametnom telefonu.

U ovom projektu ćemo pribaviti trenutne podatke iz belgijskog ili holandskog digitalnog brojila električne energije i plina i učitati ih na Thingspeak. Ovi podaci uključuju trenutnu i dnevnu potrošnju energije i ubrizgavanje (ako imate solarne panele), napone i struje te potrošnju plina (ako je digitalno brojilo plina spojeno na brojilo električne energije). Putem aplikacije ove se vrijednosti tada mogu očitati u stvarnom vremenu na vašem pametnom telefonu.

Radi za belgijsko ili holandsko digitalno brojilo koje slijedi DSMR (Dutch Smart Meter Requirements) protokol, što bi trebala biti sva novija brojila. Nažalost, ako živite negdje drugdje, vaš mjerač će vjerojatno koristiti drugi protokol. Zato se bojim da je ovaj Instructable malo regionalno ograničen.

Koristit ćemo P1 port mjerača koji prihvaća kabel RJ11/RJ12, kolokvijalno poznat kao telefonski kabel. Uvjerite se da je instalater mjerača aktivirao P1 port. Na primjer, za Fluvius u Belgiji slijedite ove upute.

Za obradu podataka i učitavanje na internet koristimo ESP8266, koji je jeftin mikročip s ugrađenim WiFi-jem. Košta samo oko 2 dolara. Osim toga, može se programirati pomoću Arduino IDE -a. Pohranjujemo podatke u oblaku na Thingspeak -u, koji je besplatan za najviše četiri kanala. Za ovaj projekt koristimo samo jedan kanal. Podaci se tada mogu prikazati na vašem pametnom telefonu pomoću aplikacije poput IoT ThingSpeak.

Dijelovi:

  • Jedan ESP8266, poput nodemcu v2. Imajte na umu da je nodemcu v3 preširok za standardnu matičnu ploču, pa preferiram v2.
  • Kabel mikro USB na USB.
  • USB punjač.
  • Jedan tranzistor BC547b NPN.
  • Dva 10k otpornika i jedan 1k otpornik.
  • Jedan konektor sa vijčanim priključkom RJ12.
  • Matična ploča.
  • Žice za kratkospojnike.
  • Opciono: jedan 1nF kondenzator.

Ukupno ovo košta otprilike 15 EUR na AliExpressu ili slično. Procjena uzima u obzir da neke komponente, poput otpornika, tranzistora i žica, dolaze u mnogo većim količinama nego što vam je potrebno za ovaj projekt. Dakle, ako već imate komplet komponenti, bit će jeftinije.

Korak 1: Upoznajte ESP8266

Odabrao sam NodeMCU v2 jer nije potrebno lemljenje i ima mikro USB vezu koja omogućuje jednostavno programiranje. Prednost NodeMCU v2 u odnosu na NodeMCU v3 je što je dovoljno mali da stane na matičnu ploču i ostavi slobodne rupe sa strane za povezivanje. Zato je bolje izbjegavati NodeMCU v3. Međutim, ako više volite drugu ploču ESP8266, to je također u redu.

ESP8266 može se lako programirati pomoću Arduino IDE -a. Postoje i drugi instruktori koji to detaljno objašnjavaju pa ću ovdje biti vrlo kratak.

  • Prvo preuzmite Arduino IDE.
  • Druga podrška za instalaciju ploče ESP8266. U izborniku Datoteka - Postavke - Postavke dodajte URL https://arduino.esp8266.com/stable/package_esp8266com_index.json u dodatne URL -ove upravitelja odbora. Sljedeće u izborniku Alati - Ploča - Upravitelj ploča instalirajte esp8266 zajednice esp8266.
  • Treće, odaberite ploču koja je najbliža vašem ESP8266. U mom slučaju odabrao sam NodeMCU v1.0 (ESP 12-E modul).
  • Na kraju odaberite pod Tools - Flash Size, veličina koja uključuje SPIFFS, poput 4M (1M SPIFFS). U ovom projektu koristimo SPIFFS (SPI Flash File System) za pohranjivanje dnevnih vrijednosti energije, tako da se one ne izgube ako ESP8266 izgubi napajanje, pa čak i kada se reprogramira.

Sada imamo sve na mjestu za programiranje ESP8266! O stvarnom kodu ćemo razgovarati u kasnijem koraku. Prvo ćemo napraviti Thingspeak račun.

Korak 2: Kreirajte Thingspeak račun i kanal

Idite na https://thingspeak.com/ i kreirajte račun. Nakon što ste prijavljeni, kliknite gumb Novi kanal za kreiranje kanala. U postavkama kanala unesite naziv i opis kako želite. Zatim imenujemo polja kanala i aktiviramo ih klikom na potvrdne okvire s desne strane. Ako koristite moj kôd nepromijenjen, polja su sljedeća:

  • Polje 1: najveća potrošnja danas (kWh)
  • Polje 2: potrošnja izvan vrha danas (kWh)
  • Polje 3: najveće ubrizgavanje danas (kWh)
  • Polje 4: ubrizgavanje izvan vrha danas (kWh)
  • Polje 5: trenutna potrošnja (W)
  • Polje 6: ubrizgavanje struje (W)
  • Polje 7: Potrošnja plina danas (m3)

Ovdje se vršni i izvan vrha odnose na tarifu električne energije. U poljima 1 i 2 potrošnja se odnosi na današnju neto potrošnju električne energije: potrošnja električne energije danas u tarifnom periodu od ponoći umanjena za ubrizgavanje električne energije (koju proizvode solarni paneli) danas u tarifnom periodu od ponoći s minimalnom nulom. Ovo posljednje znači da ako je danas bilo više ubrizgavanja nego potrošnje, vrijednost je nula. Slično, ubrizgavanje u polja 3 i 4 odnosi se na neto ubrizgavanje električne energije. Polja 5 i 6 označavaju neto potrošnju i ubrizgavanje u trenutnom trenutku. Konačno, polje 7 je potrošnja plina od ponoći.

Za buduću upotrebu zapišite ID kanala, API API ključ i API API ključ koji se mogu pronaći u API ključevima menija.

Korak 3: Izgradnja elektroničkog kola

Izgradnja elektroničkog kola
Izgradnja elektroničkog kola
Izgradnja elektroničkog kola
Izgradnja elektroničkog kola

Očitali smo mjerač električne energije pomoću P1 priključka, koji uzima kabel RJ11 ili RJ12. Razlika je u tome što RJ12 kabel ima 6 žica, dok RJ11 ima samo 4. U ovom projektu ne napajamo ESP8266 s P1 priključka pa nam zapravo trebaju samo 4 žice, pa bi RJ11 mogao.

Koristio sam proboj RJ12 prikazan na slici. Malo je širok i nema mnogo prostora oko priključka P1 u mom mjeraču. Odgovara, ali je tijesan. Alternativno, možete jednostavno upotrijebiti kabel RJ11 ili RJ12 i skinuti zaglavlje s jednog kraja.

Ako držite prekid kao na slici, iglice su numerirane zdesna nalijevo i imaju sljedeće značenje:

  • Pin 1: 5V napajanje
  • Pin 2: Zahtjev za podatke
  • Pin 3: Uzemljenje podataka
  • Pin 4: nije povezan
  • Pin 5: Linija podataka
  • Pin 6: Uzemljenje za napajanje

Pin 1 i Pin 6 bi se mogli koristiti za napajanje ESP8266, ali ovo nisam testirao. Morali biste spojiti Pin 1 na Vin na ESP8266, pa se unutarnji regulator napona ploče koristi za smanjenje napona sa 5 V na 3,3 V koje prihvaća ESP8266. Zato ga nemojte spajati na pin 3.3V jer to može oštetiti ESP8266. Napajanje iz P1 porta vremenom bi ispraznilo bateriju digitalnog brojila.

Postavljanje visokog pina 2 signalizira mjeraču da šalje telegrame s podacima svake sekunde. Stvarni podaci se šalju preko Pin -a 5 sa brzinom prijenosa od 115200 za moderno digitalno brojilo (DSMR 4 i 5). Signal je obrnut (nisko je 1, a visoko 0). Za starije vrste (DSMR 3 i niže) brzina je 9600 bauda. Za takav mjerač morate promijeniti brzinu prijenosa u kodu firmvera sljedećeg koraka: promijeniti liniju Serial.begin (115200); u setup ().

Uloga NPN tranzistora je dvostruka:

  • Obrnuti signal tako da ga ESP8266 može razumjeti.
  • Za promjenu logičkog nivoa sa 5V P1-porta na 3.3V koje očekuje RX port ESP8266.

Zato stvorite elektroničko kolo na matičnoj ploči kao na dijagramu. Kondenzator povećava stabilnost, ali radi i bez njega.

Odložite povezivanje RX pina dok ne programirate ESP8266 u sljedećem koraku. Zaista, RX pin je takođe potreban za komunikaciju preko USB -a između ESP8266 i vašeg računara.

Korak 4: Otpremite kôd

Učinio sam kôd dostupnim na GitHubu, to je samo jedna datoteka: P1-Meter-Reader.ino. Samo ga preuzmite i otvorite u Arduino IDE -u. Ili možete odabrati Datoteka - Novo i samo kopirati/zalijepiti kôd.

Postoje neki podaci koje morate popuniti na početku datoteke: ime i lozinka WLAN -a za korištenje te ID kanala i API API ključ za ThingSpeak kanal.

Kod radi sljedeće:

  • Očitava telegram podataka sa brojila svakih UPDATE_INTERVAL (u milisekundama). Zadana vrijednost je svakih 10 sekundi. Obično se svake sekunde šalje telegram s mjerača, ali postavljanje frekvencije na visoku preopteretit će ESP8266 tako da više ne može pokrenuti web poslužitelj.
  • Prenosi podatke o električnoj energiji na kanal Thingspeak svakih SEND_INTERVAL (u milisekundama). Zadana vrijednost je svaki minut. Da biste odlučili o ovoj frekvenciji, uzmite u obzir da slanje podataka traje neko vrijeme (obično nekoliko sekundi) i da postoji ograničenje učestalosti ažuriranja na Thingspeak -u za besplatni račun. Radi se o 8200 poruka dnevno, pa bi maksimalna frekvencija bila otprilike jednom u 10 sekundi ako ne koristite Thingspeak za bilo što drugo.
  • Otprema podatke o plinu kada se promijene. Obično brojilo ažurira podatke o potrošnji plina svaka otprilike 4 minute.
  • Mjerač prati ukupnu potrošnju i vrijednosti ubrizgavanja od početka. Dakle, za dobivanje dnevne potrošnje i ubrizgavanja, kôd sprema ukupne vrijednosti svakog dana u ponoć. Zatim se ove vrijednosti oduzimaju od trenutnih ukupnih vrijednosti. Vrijednosti u ponoć pohranjuju se u SPIFFS (SPI Flash File System), koji ostaje prisutan ako ESP8266 izgubi napajanje ili čak i kada se ponovo programira.
  • ESP8266 pokreće mini web server. Ako otvorite njegovu IP adresu u pregledniku, dobit ćete pregled svih trenutnih vrijednosti električne energije i plina. Ovo su iz najnovijeg telegrama i uključuju informacije koje nisu učitane u Thingspeak, poput napona i struje po fazi. Zadana postavka je da IP adresu dinamički određuje vaš usmjerivač. No, prikladnije je koristiti statičku IP adresu, koja je uvijek ista. U tom slučaju morate unijeti staticIP, gateway, dns i podmrežu u kôd i dekomentirati liniju WiFi.config (staticIP, dns, gateway, subnet); u funkciji connectWifi ().

Nakon što ste izvršili ove promjene, spremni ste za postavljanje firmvera na ESP8266. Priključite ESP8266 putem USB kabla na računar i pritisnite ikonu sa strelicom u Arduino IDE -u. Ako se ne uspijete povezati s ESP8266, pokušajte promijeniti COM port u izborniku Alati - Port. Ako i dalje ne radi, moguće je da morate ručno instalirati upravljački program za USB virtualni COM port.

Korak 5: Testiranje

Nakon učitavanja firmvera, isključite USB i spojite RX žicu ESP8266. Upamtite, trebao nam je RX kanal ESP8266 za učitavanje firmvera, pa ga ranije nismo povezivali. Sada priključite prekidač RJ12 u digitalni mjerač i ponovo spojite ESP8266 na računalo.

U Arduino IDE -u otvorite Serial Monitor putem izbornika Tools i provjerite je li postavljen na 115200 bauda. Ako morate promijeniti brzinu prijenosa, možda ćete morati zatvoriti i ponovno otvoriti serijski monitor prije nego što počne raditi.

Sada biste trebali vidjeti izlaz koda u serijskom monitoru. Trebali biste provjeriti postoje li poruke o grešci. Takođe, trebali biste moći vidjeti telegrame. Za mene izgledaju ovako:

/FLU5 / xxxxxxxxx_x

0-0: 96.1.4 (50213) 0-0: 96.1.1 (3153414733313030313434363235) // Mjerilo serijskog broja heksadecimalno 0-0: 1.0.0 (200831181442S) // Vremenska oznaka S: ljetno računanje vremena (ljeto), W: ne ljetno računanje vremena (zima) 1-0: 1.8.1 (000016.308*kWh) // Ukupna vršna neto potrošnja 1-0: 1.8.2 (000029.666*kWh) // Ukupna neto potrošnja izvan vrha 1-0: 2.8.1 (000138.634*kWh) // Ukupno vršno neto ubrizgavanje 1-0: 2.8.2 (000042.415*kWh) // Ukupno neto ubrizgavanje izvan vrha 0-0: 96.14.0 (0001) // Tarifa 1: vrhunac, 2: izvan vrha 1-0: 1.7.0 (00.000*kW) // Potrošnja struje 1-0: 2.7.0 (00.553*kW) // Ubrizgavanje struje 1-0: 32.7.0 (235.8*V) // Faza 1 napon 1-0: 52,7,0 (237,0*V) // Faza 2 napon 1-0: 72,7,0 (237,8*V) // Faza 3 napon 1-0: 31,7,0 (001*A) // Struja 1. faze 1-0: 51.7.0 (000*A) // Struja 2. faze 1-0: 71.7.0 (004*A) // Struja 3. faze 0-0: 96.3.10 (1) 0-0: 17.0.0 (999,9*kW) // Maksimalna snaga 1-0: 31.4.0 (999*A) // Maksimalna struja 0-0: 96.13.0 () // Poruka 0-1: 24.1.0 (003) // drugi uređaji na M-sabirnici 0-1: 96.1.1 (37464C4F32313230313037393338) // Serijski broj plin r heksadecimalno 0-1: 24.4.0 (1) 0-1: 24.2.3 (200831181002S) (00005.615*m3) // Ukupna potrošnja vremenske oznake plina! E461 // Kontrolni zbroj CRC16

Ako nešto nije u redu, možete provjeriti imate li iste oznake i možda ćete morati promijeniti kôd raščlanjivanjem telegrama u funkciji readTelegram.

Ako sve radi, sada možete napajati esp8266 s USB punjača.

Instalirajte aplikaciju IoT ThingSpeak Monitor na svoj pametni telefon, popunite ID kanala i Pročitajte API ključ i gotovo!

Preporučuje se: