Sadržaj:
- Korak 1: Upoznajte ESP8266
- Korak 2: Izradite Thingspeak račun i kanal
- Korak 3: Izgradnja elektroničkog kruga
- Korak 4: Prenesite kôd
- Korak 5: Testiranje
Video: Pročitajte mjerač električne energije i plina (belgijski/nizozemski) i prenesite na Thingspeak: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:32
Ako ste zabrinuti zbog svoje potrošnje energije ili ste samo štreber, vjerojatno biste htjeli vidjeti podatke s vašeg novog digitalnog mjerača na svom pametnom telefonu.
U ovom projektu dobit ćemo trenutne podatke iz belgijskog ili nizozemskog digitalnog mjerača električne energije i plina i prenijeti ih na Thingspeak. Ti 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 mjerač električne energije). Putem aplikacije te se vrijednosti mogu očitati u stvarnom vremenu na vašem pametnom telefonu.
Radi za belgijsko ili nizozemsko digitalno brojilo koje slijedi protokol DSMR (nizozemski zahtjevi za pametnim mjeračem), što bi trebala biti sva novija mjerila. Ako živite negdje drugdje, nažalost, vaš će mjerač vjerojatno koristiti drugi protokol. Zato se bojim da je ovaj Instructable malo regionalno ograničen.
Koristit ćemo P1-priključak mjerača koji prihvaća kabel RJ11/RJ12, kolokvijalno poznat kao telefonski kabel. Provjerite je li instalater mjerača aktivirao P1 port. Na primjer, za Fluvius u Belgiji slijedite ove upute.
Za obradu podataka i prijenos na internet koristimo ESP8266, koji je jeftin mikročip s ugrađenim WiFi-jem. Košta samo oko 2 dolara. Štoviše, može se programirati pomoću Arduino IDE -a. Podatke pohranjujemo u oblak na Thingspeaku, 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 ploču, pa preferiram v2.
- Kabel mikro USB na USB.
- USB punjač.
- Jedan BC547b NPN tranzistor.
- Dva 10k otpornika i jedan 1k otpornik.
- Jedan priključak s vijčanim priključkom RJ12.
- Matična ploča.
- Kratkospojne žice.
- Izborno: jedan 1nF kondenzator.
Sve to na AliExpressu ili slično košta otprilike 15 EUR. 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 u tome š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 jednostavno 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 Alati - Veličina bljeskalice, veličina koja uključuje SPIFFS, poput 4 M (1 M SPIFFS). U ovom projektu koristimo SPIFFS (SPI Flash File System) za pohranu dnevnih energetskih vrijednosti, tako da se one ne izgube ako ESP8266 izgubi napajanje, pa čak i kada se ponovno programira.
Sada imamo sve na mjestu za programiranje ESP8266! O stvarnom kodu ćemo razgovarati u kasnijem koraku. Prvo ćemo napraviti Thingspeak račun.
Korak 2: Izradite Thingspeak račun i kanal
Idite na https://thingspeak.com/ i stvorite račun. Nakon što ste prijavljeni, kliknite gumb Novi kanal za stvaranje 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: današnja najveća potrošnja (kWh)
- Polje 3: najveće ubrizgavanje danas (kWh)
- Polje 4: ubrizgavanje izvan vrha danas (kWh)
- Polje 5: potrošnja struje (W)
- Polje 6: ubrizgavanje struje (W)
- Polje 7: Današnja potrošnja plina (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 razdoblju od ponoći umanjena za ubrizgavanje električne energije (koju proizvode solarni paneli) danas u tarifnom razdoblju 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 uporabu zapišite ID kanala, API ključ za čitanje i API ključ za pisanje koji se mogu pronaći u API ključevima izbornika.
Korak 3: Izgradnja elektroničkog kruga
Očitali smo mjerač električne energije pomoću priključka P1 koji uzima kabel RJ11 ili RJ12. Razlika je u tome što kabel RJ12 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 to učinio.
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 mogli bi se koristiti za napajanje ESP8266, ali ovo nisam testirao. Morali biste spojiti Pin 1 na Vin ESP8266, pa se unutarnji regulator napona ploče koristi za smanjenje napona s 5 V na 3,3 V koje prihvaća ESP8266. Zato ga nemojte spajati na pin 3.3V jer bi to moglo oštetiti ESP8266. Također napajanje iz P1 priključka s vremenom bi ispraznilo bateriju digitalnog mjerača.
Postavljanje visokog pina 2 signalizira mjeraču da šalje telegrame s podacima svake sekunde. Stvarni podaci šalju se 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 redak Serial.begin (115200); u setup ().
Uloga NPN tranzistora je dvostruka:
- Obrnuti signal tako da ga ESP8266 može razumjeti.
- Za promjenu logičke razine s 5V P1 priključka na 3.3V koje očekuje RX port ESP8266.
Napravite elektronički krug na ploči kao na dijagramu. Kondenzator povećava stabilnost, ali radi i bez.
Pričekajte povezivanje RX pina dok ne programirate ESP8266 u sljedećem koraku. Doista, RX pin je također potreban za komunikaciju preko USB -a između ESP8266 i vašeg računala.
Korak 4: Prenesite 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.
Na početku datoteke morate unijeti neke podatke: naziv i lozinku WLAN -a za korištenje te ID kanala i API API ključ kanala ThingSpeak.
Kod radi sljedeće:
- Očitava telegram podataka s mjerača 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 pa više ne može pokrenuti web poslužitelj.
- Svake SEND_INTERVAL (u milisekundama) prenosi podatke o električnoj energiji na kanal Thingspeak. Zadana vrijednost je svaka minuta. Da biste odlučili o ovoj učestalosti, uzmite u obzir da slanje podataka traje neko vrijeme (obično nekoliko sekundi) i da postoji ograničenje učestalosti ažuriranja na Thingspeaku za besplatni račun. Radi se o 8200 poruka dnevno, pa bi maksimalna učestalost bila otprilike jednom u 10 sekundi ako ne koristite Thingspeak za bilo što drugo.
- Prenosi podatke o plinu kad se promijene. Obično brojilo ažurira podatke o potrošnji plina samo svake 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 svaki dan u ponoć. Zatim se te vrijednosti oduzimaju od trenutnih ukupnih vrijednosti. Vrijednosti u ponoć pohranjuju se u SPIFFS (SPI Flash File System), koji ostaje pri gubitku napajanja ESP8266 ili čak i pri ponovnom programiranju.
- ESP8266 pokreće mini web poslužitelj. Otvorite li njegovu IP adresu u pregledniku, dobit ćete pregled svih trenutnih vrijednosti električne energije i plina. To su iz najnovijeg telegrama i uključuju informacije koje se ne prenose na 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 te raskomentirati liniju WiFi.config (staticIP, dns, gateway, subnet); u funkciji connectWifi ().
Nakon što ste izvršili ove promjene, spremni ste za postavljanje firmvera na ESP8266. Spojite ESP8266 putem USB kabela na računalo i pritisnite ikonu sa strelicom u Arduino IDE -u. Ako se ne uspijete povezati s ESP8266, pokušajte promijeniti COM port pod izbornikom 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 prije nismo povezali. Sada priključite prekidač RJ12 u digitalni mjerač i ponovno 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 pogrešci. Također, 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 vršno ubrizgavanje 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) // Napon 2 faze 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 za raščlanjivanje telegrama u funkciji readTelegram.
Ako sve radi, sada možete napajati esp8266 iz USB punjača.
Instalirajte aplikaciju IoT ThingSpeak Monitor na svoj pametni telefon, ispunite ID kanala i Pročitajte API ključ i gotovo!
Preporučeni:
Kako očitati mjerač električne energije putem Arduina: 3 koraka
Kako očitati mjerač električne energije putem Arduina: Često bi bilo zanimljivo znati trenutnu potrošnju energije ili ukupnu potrošnju energije vašeg doma kako biste ograničili svoje troškove za električnu energiju i zaštitili okoliš. To zapravo i nije problem jer ćete uglavnom pronaći pametan digitalni el
Potrošnja električne energije i nadzor okoliša putem Sigfoxa: 8 koraka
Potrošnja električne energije i nadzor okoliša putem Sigfoxa: OpisOvaj projekt će vam pokazati kako povećati potrošnju električne energije u prostoriji na trofaznu distribuciju energije, a zatim je poslati na poslužitelj koristeći Sigfoxovu mrežu svakih 10 minuta. Kako mjeriti snagu? Imamo tri strujne stezaljke iz
Jeftin način za dobivanje visokonaponske električne energije: 5 koraka
Jeftin način dobivanja električne energije visokog napona: Visoko napon je teško nabaviti jeftino. Ovaj će vam vodič pokazati kako proizvesti oko 75 000 volti električne energije za manje od 30 dolara
Pročitajte svoj glavni mjerač električne energije (ESP8266, WiFi, MQTT i Openhab): 6 koraka (sa slikama)
Pročitajte svoj glavni mjerač električne energije (ESP8266, WiFi, MQTT i Openhab): U ovom uputu saznat ćete kako čitam potrošnju svoje električne energije u svojoj kući i objavljujem ga putem ESP8266, Wifi, MQTT u svojoj Openhab kućnoj automatizaciji. Imam 'pametno brojilo' ISKRA tipa MT372, međutim nema laku mogućnost izvoza
Izgradite analogni mjerač potrošnje električne energije: 8 koraka (sa slikama)
Izgradite analogni mjerač potrošnje električne energije: Koristio sam Kill A Watt (http://www.p3international.com/products/special/P4400/P4400-CE.html) električno brojilo neko vrijeme i ja sam odlučio izgraditi analogni. Ovaj je projekt postao jednostavan, s jednim panelnim ampermetrom