INHOUDSOPGAWE:
- Stap 1: Maak kennis met die ESP8266
- Stap 2: Skep 'n Thingspeak -rekening en -kanaal
- Stap 3: Bou die elektroniese stroombaan
- Stap 4: Laai die kode op
- Stap 5: Toets
Video: Lees elektrisiteits- en gasmeter (Belgies/Nederlands) en laai op na Thingspeak: 5 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
As u bekommerd is oor u energieverbruik of net 'n bietjie nerd, wil u waarskynlik die data van u nuwe digitale meter op u slimfoon sien.
In hierdie projek sal ons die huidige data van 'n Belgiese of Nederlandse digitale elektrisiteits- en gasmeter verkry en dit na Thingspeak oplaai. Hierdie data bevat die huidige en daaglikse kragverbruik en inspuiting (as u sonpanele het), spannings en strome en die gasverbruik (as 'n digitale gasmeter aan die elektrisiteitsmeter gekoppel is). Deur middel van 'n app kan hierdie waardes dan intyds op u slimfoon afgelees word.
Dit werk vir 'n Belgiese of Nederlandse digitale meter wat die DSMR (Dutch Smart Meter Requirements) protokol volg, wat alle onlangse meters moet wees. As u êrens anders woon, sal u meter ongelukkig 'n ander protokol gebruik. Ek is dus bevrees dat hierdie instruksie 'n bietjie streekbeperk is.
Ons gebruik die P1-poort van die meter, wat 'n RJ11/RJ12-kabel aanvaar, in die volksmond bekend as 'n telefoonkabel. Maak seker dat die installeerder van die meter die P1 -poort geaktiveer het. Volg byvoorbeeld hierdie instruksies vir Fluvius in België.
Om die data te verwerk en na die internet op te laai, gebruik ons 'n ESP8266, 'n goedkoop mikroskyfie met ingeboude wifi. Dit kos net iets soos 2 dollar. Boonop kan dit met die Arduino IDE geprogrammeer word. Ons stoor die data in die wolk op Thingspeak, wat vir maksimum vier kanale gratis is. Vir hierdie projek gebruik ons slegs een kanaal. Die data kan dan op u slimfoon vertoon word met behulp van 'n app soos IoT ThingSpeak.
Dele:
- Een ESP8266, soos 'n nodemcu v2. Let daarop dat die nodemcu v3 te breed is vir 'n standaard broodbord, so ek verkies die v2.
- 'N Micro USB na USB kabel.
- 'N USB -laaier.
- Een BC547b NPN transistor.
- Twee 10k weerstande en een 1k weerstand.
- Een RJ12 -skroefaansluiting.
- 'N Broodplank.
- Springdrade.
- Opsioneel: een 1nF kapasitor.
In totaal kos dit ongeveer 15 EUR op AliExpress of soortgelyk. Die skatting neem in ag dat sommige komponente soos die weerstande, transistors en drade in baie groter hoeveelhede kom as wat u benodig vir hierdie projek. As u dus reeds 'n komponentstel het, is dit goedkoper.
Stap 1: Maak kennis met die ESP8266
Ek het die NodeMCU v2 gekies, aangesien geen soldeer nodig is nie en 'n mikro -USB -verbinding is wat maklike programmering moontlik maak. Die voordeel van die NodeMCU v2 bo die NodeMCU v3 is dat dit klein genoeg is om op 'n broodbord te pas en vry gate aan die sykant te laat om verbindings te maak. Dit is dus beter om die NodeMCU v3. As u egter 'n ander ESP8266 -bord verkies, is dit ook goed.
Die ESP8266 kan maklik geprogrammeer word met behulp van die Arduino IDE. Daar is ander instruksies wat dit in detail verduidelik, so ek sal hier baie kort wees.
- Laai eers die Arduino IDE af.
- Tweede installeringsondersteuning vir die ESP8266 -bord. Voeg in die spyskaart File - Preferences - Settings die URL https://arduino.esp8266.com/stable/package_esp8266com_index.json by bykomende URL's van die bestuurder. Volgende in die spyskaart Tools - Board - Boards Manager installeer esp8266 deur esp8266 -gemeenskap.
- Kies derdens die bord wat die naaste aan u ESP8266 is. In my geval het ek NodeMCU v1.0 (ESP 12-E Module) gekies.
- Kies laastens onder Tools - Flash Size, 'n grootte wat SPIFFS insluit, soos 4M (1M SPIFFS). In hierdie projek gebruik ons die SPIFFS (SPI Flash File System) om daaglikse energiewaardes te stoor, sodat dit nie verlore gaan as die ESP8266 krag verloor nie en selfs as dit herprogrammeer word.
Nou het ons alles in plek om die ESP8266 te programmeer! Ons bespreek die werklike kode in 'n latere stap. Eerstens maak ons 'n Thingspeak -rekening.
Stap 2: Skep 'n Thingspeak -rekening en -kanaal
Gaan na https://thingspeak.com/ en skep 'n rekening. Sodra u ingeteken het, klik op die knoppie Nuwe kanaal om 'n kanaal te skep. Vul die naam en beskrywing in die kanaalinstellings in soos u wil. Vervolgens noem ons die kanaalvelde en aktiveer dit deur die blokkies regs te klik. As u my kode onveranderd gebruik, is die velde soos volg:
- Veld 1: piekverbruik vandag (kWh)
- Veld 2: verbruik buite die piek vandag (kWh)
- Veld 3: piekinspuiting vandag (kWh)
- Veld 4: inspuiting buite die piek vandag (kWh)
- Veld 5: huidige verbruik (W)
- Veld 6: huidige inspuiting (W)
- Veld 7: gasverbruik vandag (m3)
Hier verwys piek en buite piek na die elektrisiteitstarief. In velde 1 en 2 verwys verbruik na die huidige elektrisiteitsverbruik vandag: elektrisiteitsverbruik vandag in die tariefperiode sedert middernag minus inspuiting van elektrisiteit (vervaardig deur sonpanele) vandag in die tariefperiode sedert middernag met 'n minimum van nul. Laasgenoemde beteken dat as daar vandag meer inspuiting as verbruik was, die waarde nul is. Net so verwys inspuiting in velde 3 en 4 na netto inspuiting van elektrisiteit. Veld 5 en 6 dui die netto verbruik en inspuiting op die huidige tyd aan. Uiteindelik is veld 7 die gasverbruik sedert middernag.
Skryf die kanaal -ID, die lees -API -sleutel en die skryf -API -sleutel neer, wat in die spyskaart -API -sleutels gevind kan word.
Stap 3: Bou die elektroniese stroombaan
Ons lees die elektrisiteitsmeter af met die P1 -poort, wat 'n RJ11- of RJ12 -kabel neem. Die verskil is dat die RJ12 -kabel 6 drade het, terwyl die RJ11 slegs 4. In hierdie projek het ons nie die ESP8266 van die P1 -poort af nie, dus het ons eintlik net 4 drade nodig, so 'n RJ11 sou doen.
Ek het die RJ12 -uitbraak gebruik wat op die foto getoon word. Dit is 'n bietjie breed en daar is nie veel ruimte rondom die P1 -poort in my meter nie. Dit pas, maar dit is styf. U kan ook 'n RJ11- of RJ12 -kabel gebruik en die kop aan die een kant verwyder.
As u die uitbraak hou soos op die foto, is die penne van regs na links genommer en het die volgende betekenis:
- Speld 1: 5V kragtoevoer
- Speld 2: Data -versoek
- Speld 3: Data Ground
- Speld 4: nie gekoppel nie
- Speld 5: Data -lyn
- Speld 6: Kraggrond
Pin 1 en Pin 6 kan gebruik word om die ESP8266 aan te dryf, maar ek het dit nie getoets nie. U moet pen 1 aan Vin van die ESP8266 koppel, sodat die interne spanningsreguleerder van die bord gebruik word om die spanning van 5V na die 3.3V wat die ESP8266 aanvaar, te verminder. Moet dit dus nie aan die 3.3V -pen koppel nie, want dit kan die ESP8266 beskadig. Deur die P1 -poort aan te dryf, sal die battery van die digitale meter mettertyd leegloop.
Deur pin 2 hoog te stel, dui die meter aan dat datatelegramme elke sekonde gestuur moet word. Die werklike data word gestuur oor Pin 5 met 'n baud -tempo van 115200 vir 'n moderne digitale meter (DSMR 4 en 5). Die sein word omgekeer (laag is 1 en hoog is 0). Vir 'n ouer tipe (DSMR 3 en laer) is die tarief 9600 baud. Vir so 'n meter moet u die baud -tempo in die firmware -kode van die volgende stap verander: verander die reël Serial.begin (115200); in opstelling ().
Die rol van die NPN-transistor is tweeledig:
- Om die sein terug te keer sodat die ESP8266 dit kan verstaan.
- Om die logiese vlak te verander van die 5V van die P1-poort na die 3.3V wat deur die RX-poort van die ESP8266 verwag word.
Skep dus die elektroniese stroombaan op die broodbord soos in die diagram. Die kondensator verhoog die stabiliteit, maar dit werk ook sonder.
Hou aan om die RX -pen aan te sluit totdat u die ESP8266 in die volgende stap geprogrammeer het. Die RX -pen is inderdaad ook nodig om via die USB tussen die ESP8266 en u rekenaar te kommunikeer.
Stap 4: Laai die kode op
Ek het die kode op GitHub beskikbaar gestel, dit is net een lêer: P1-Meter-Reader.ino. Laai dit net af en maak dit oop in die Arduino IDE. Of u kan File - New kies en die kode net kopieer/plak.
Daar is 'n paar inligting wat u in die begin van die lêer moet invul: die naam en wagwoord van die WLAN om te gebruik, en die kanaal -ID en skryf API -sleutel van die ThingSpeak -kanaal.
Die kode doen die volgende:
- Lees elke UPDATE_INTERVAL (in millisekondes) 'n datatelegram van die meter. Die standaardwaarde is elke 10 sekondes. Normaalweg is daar elke sekonde 'n datatelegram van die meter, maar as u die frekwensie op hoog stel, sal die ESP8266 oorlaai word sodat die webbediener nie meer kan werk nie.
- Laai elke SEND_INTERVAL (in millisekondes) die elektrisiteitsdata na die Thingspeak -kanaal op. Die standaardwaarde is elke minuut. Om te besluit oor hierdie frekwensie, moet u in ag neem dat die stuur van die data 'n geruime tyd (gewoonlik 'n paar sekondes) neem en dat daar 'n beperking is op die opdateringsfrekwensie op Thingspeak vir 'n gratis rekening. Dit is ongeveer 8200 boodskappe per dag, so die maksimum frekwensie is ongeveer een keer elke 10 sekondes as u Thingspeak vir niks anders gebruik nie.
- Laai die gasdata op wanneer dit verander. Gewoonlik werk die meter die gasverbruikdata slegs elke 4 minute by.
- Die meter hou die totale verbruik en inspuitingswaardes sedert die begin dop. Om die daaglikse verbruik en inspuiting te verkry, stoor die kode elke dag om middernag die totale waardes. Dan word hierdie waardes afgetrek van die huidige totale waardes. Die waardes om middernag word gestoor in die SPIFFS (SPI Flash File System), wat voortduur as die ESP8266 krag verloor of selfs as dit herprogrammeer word.
- Die ESP8266 bedryf 'n mini -webbediener. As u die IP -adres in u blaaier oopmaak, kry u 'n oorsig van alle huidige elektrisiteits- en gaswaardes. Dit kom uit die mees onlangse telegram en bevat inligting wat nie na Thingspeak opgelaai word nie, soos spannings en strome per fase. Die standaardinstelling is dat die IP -adres dinamies deur u router bepaal word. Maar dit is geriefliker om 'n statiese IP -adres te gebruik, wat altyd dieselfde is. In hierdie geval moet u staticIP, gateway, dns en subnet in die kode invul en die reël WiFi.config (staticIP, dns, gateway, subnet) los; in die funksie connectWifi ().
Nadat u hierdie veranderinge aangebring het, is u gereed om die firmware op te laai na die ESP8266. Koppel die ESP8266 deur die USB -kabel aan u rekenaar en druk die ikoon met die pyltjie in die Arduino IDE. As u dit nie regkry om aan die ESP8266 te koppel nie, probeer dan om die COM -poort onder die menu Tools - Port te verander. As dit steeds nie werk nie, is dit moontlik dat u die bestuurder vir die USB virtuele COM -poort handmatig moet installeer.
Stap 5: Toets
Nadat u die firmware opgelaai het, ontkoppel die USB en sluit die RX -kabel van die ESP8266 aan. Onthou, ons het die RX -kanaal van die ESP8266 nodig gehad om die firmware op te laai, sodat ons dit nie voorheen kon koppel nie. Koppel nou die RJ12 -uitbraak in die digitale meter aan en koppel die ESP8266 weer aan op u rekenaar.
Open in die Arduino IDE die Serial Monitor via die menu Tools en maak seker dat dit ingestel is op 115200 baud. As u die baud-tempo moet verander, moet u miskien die Serial Monitor weer sluit en weer oopmaak voordat dit werk.
Nou moet u die uitvoer van die kode in die Serial Monitor sien. U moet kyk of daar foutboodskappe is. U moet ook die telegramme kan sien. Vir my lyk hulle so:
/FLU5 / xxxxxxxxx_x
0-0: 96.1.4 (50213) 0-0: 96.1.1 (3153414733313030313434363235) // Serienommer meter heksadesimaal 0-0: 1.0.0 (200831181442S) // Tydstempel S: dagligbesparing (somer), W: nee dagligbesparing (winter) 1-0: 1.8.1 (000016.308*kWh) // Totale piek netto verbruik 1-0: 1.8.2 (000029.666*kWh) // Totale netto verbruik buite piek 1-0: 2.8.1 (000138.634*kWh) // Totale piek netto inspuiting 1-0: 2.8.2 (000042.415*kWh) // Totale netto inspuiting buite piek 0-0: 96.14.0 (0001) // Tarief 1: piek, 2: buite die piek 1-0: 1.7.0 (00.000*kW) // Stroomverbruik 1-0: 2.7.0 (00.553*kW) // Stroominspuiting 1-0: 32.7.0 (235.8*V) // Fase 1 spanning 1-0: 52.7.0 (237.0*V) // Fase 2 spanning 1-0: 72.7.0 (237.8*V) // Fase 3 spanning 1-0: 31.7.0 (001*A) // Fase 1 huidige 1-0: 51.7.0 (000*A) // Fase 2 huidige 1-0: 71.7.0 (004*A) // Fase 3 huidige 0-0: 96.3.10 (1) 0-0: 17.0.0 (999.9*kW) // Maksimum krag 1-0: 31.4.0 (999*A) // Maksimum stroom 0-0: 96.13.0 () // Boodskap 0-1: 24.1.0 (003) // ander toestelle op M-bus 0-1: 96.1.1 (37464C4F32313230313037393338) // Serienommer gasmete r heksadesimaal 0-1: 24.4.0 (1) 0-1: 24.2.3 (200831181002S) (00005.615*m3) // Gas tydstempel totale verbruik! E461 // CRC16 kontrolesom
As daar iets fout is, kan u kyk of u dieselfde etikette het en moontlik die kode moet verander wat die telegramme in die funksie readTelegram ontleed.
As alles werk, kan u die esp8266 nou via die USB -laaier aanskakel.
Installeer die IoT ThingSpeak Monitor -app op u slimfoon, vul die kanaal -ID in en lees die API -sleutel en u is klaar!
Aanbeveel:
Hoe om 'n elektrisiteitsmeter via Arduino uit te lees: 3 stappe
Hoe om 'n elektrisiteitsmeter via Arduino voor te lees: Dit is dikwels interessant om die huidige kragverbruik of totale kragverbruik van u huis te ken om u elektrisiteitskoste te beperk en die omgewing te beskerm. Dit is nie regtig 'n probleem nie, want meestal vind u 'n slim digitale el
ROBOBAR (Nederlands/Nederlands): 6 stappe
ROBOBAR (Nederlands/Nederlands): ROBOBAR is 'n robot in die vorm van 'n boupakket. hy maak gebruik van Opsoro -dele om interaksie met ons gebruikers te hê. Die ROBOBAR is 'n robot wat ingevoer kan word as mense ander geleenthede besoek. Hy g
Tandentelefoon - Kan Je Horen Met Je Tanden? (Nederlands/Nederlands): 8 stappe
Tandentelefoon - Kan Je Horen Met Je Tanden? (Nederlands/Nederlands): *- * Hierdie instruksie is in Nederlands. Klik hier vir die Engelse weergawe,*-* Deze Instructable is in het Nederlands. Klik hier vir die Engelse weergawe. Is dit wetenskapfiksie? Nee hoor, met hierdie selfgemaakte 'tandentelefoon' k
Laai die waarde van die vibrasiesensor op na IOT ThingSpeak met behulp van NodeMCU: 4 stappe
Laai die trillingsensorwaarde op na IOT ThingSpeak met behulp van NodeMCU: Daar is verskeie kritieke masjiene of duur toerusting wat skade kan veroorsaak as gevolg van trillings. In so 'n geval is 'n vibrasiesensor nodig om vas te stel of die masjien of toerusting trillings produseer of nie. Identifiseer die voorwerp wat
Maak Een Kinegram van Analoge Boomerang (Nederlands/Nederlands): 9 stappe
Maak Een Kinegram van Analoge Boomerang (Nederlands/Nederlands): *- * This Instructable is in Dutch. Klik hier vir die Engelse weergawe. *-* Hierdie Instructable is in die Nederlands. Klik hier vir die Engelse weergawe. Daar is twee soorte mense: die nuwe tegnologie en euml; n omarmen en kan die nostalgiese verlan