Tartalomjegyzék:

Olvassa el a villany- és gázmérőt (belga/holland), és töltse fel a Thingspeak -re: 5 lépés
Olvassa el a villany- és gázmérőt (belga/holland), és töltse fel a Thingspeak -re: 5 lépés

Videó: Olvassa el a villany- és gázmérőt (belga/holland), és töltse fel a Thingspeak -re: 5 lépés

Videó: Olvassa el a villany- és gázmérőt (belga/holland), és töltse fel a Thingspeak -re: 5 lépés
Videó: Egy villany- és gázóraleolvasó egy teljesen átlagos munkanapja 2024, Július
Anonim
Olvassa el a villany- és gázmérőt (belga/holland), és töltse fel a Thingspeak -re
Olvassa el a villany- és gázmérőt (belga/holland), és töltse fel a Thingspeak -re
Olvassa el a villany- és gázmérőt (belga/holland), és töltse fel a Thingspeak -re
Olvassa el a villany- és gázmérőt (belga/holland), és töltse fel a Thingspeak -re

Ha aggódik az energiafogyasztása miatt, vagy csak egy kis bunkó, akkor valószínűleg szeretné látni az okostelefonján található új digitális mérő adatait.

Ebben a projektben egy belga vagy holland digitális villamosenergia- és gázmérőről szerezzük be az aktuális adatokat, és feltöltjük azokat a Thingspeak -re. Ezek az adatok tartalmazzák az aktuális és napi áramfogyasztást és befecskendezést (ha napelemekkel rendelkezik), feszültségeket és áramokat, valamint a gázfogyasztást (ha digitális gázmérő van csatlakoztatva a villanyórához). Ezeket az értékeket egy alkalmazáson keresztül valós időben leolvashatja okostelefonján.

Egy belga vagy holland digitális mérőhöz működik, amely a DSMR (Dutch Smart Meter Requirements) protokollt követi, amelynek minden friss mérőnek lennie kell. Ha máshol él, sajnos a mérő valószínűleg más protokollt fog használni. Szóval attól tartok, hogy ez az Instructable egy kicsit regionálisan korlátozott.

A mérőeszköz P1-portját fogjuk használni, amely RJ11/RJ12 kábelt fogad el, köznyelven telefonkábelt. Győződjön meg arról, hogy a mérő telepítője aktiválta a P1 portot. Például a belgiumi Fluvius esetében kövesse ezeket az utasításokat.

Az adatok feldolgozásához és az internetre való feltöltéséhez ESP8266-ot használunk, amely egy olcsó mikrochip beépített wifivel. Csak körülbelül 2 dollárba kerül. Ezenkívül az Arduino IDE segítségével programozható. Az adatokat a felhőben tároljuk a Thingspeak -en, amely legfeljebb négy csatorna számára ingyenes. Ehhez a projekthez csak egy csatornát használunk. Az adatok ezután megjeleníthetők az okostelefonon egy olyan alkalmazás segítségével, mint az IoT ThingSpeak.

Alkatrészek:

  • Egy ESP8266, mint egy nodemcu v2. Ne feledje, hogy a nodemcu v3 túl széles a szokásos kenyértáblához, ezért inkább a v2 -t választom.
  • Micro USB -USB kábel.
  • USB töltő.
  • Egy BC547b NPN tranzisztor.
  • Két 10k ellenállás és egy 1k ellenállás.
  • Egy RJ12 csavaros csatlakozó.
  • Egy kenyértábla.
  • Jumper vezetékek.
  • Opcionális: egy 1 nF kondenzátor.

Összességében ez körülbelül 15 euróba kerül az AliExpressen vagy hasonlókon. A becslés figyelembe veszi, hogy egyes alkatrészek, mint például az ellenállások, tranzisztorok és vezetékek, sokkal nagyobb mennyiségben érkeznek, mint amennyi ehhez a projekthez szükséges. Tehát ha már rendelkezik komponens készlettel, akkor olcsóbb lesz.

1. lépés: Ismerkedés az ESP8266 készülékkel

A NodeMCU v2 -t választottam, mivel nincs szükség forrasztásra, és rendelkezik mikro USB -csatlakozással, amely lehetővé teszi a könnyű programozást. A NodeMCU v2 előnye a NodeMCU v3 -hoz képest, hogy elég kicsi ahhoz, hogy elférjen a kenyérsütő táblán, és szabad lyukakat hagyjon az oldalán a csatlakozásokhoz. Tehát jobb elkerülni a NodeMCU v3 -at. Ha azonban egy másik ESP8266 táblát részesít előnyben, az szintén jó.

Az ESP8266 könnyen programozható az Arduino IDE segítségével. Vannak más utasítások is, amelyek ezt részletesen elmagyarázzák, ezért itt nagyon rövid leszek.

  • Először töltse le az Arduino IDE -t.
  • Az ESP8266 kártya második telepítési támogatása. A Fájl - Beállítások - Beállítások menüben adja hozzá a https://arduino.esp8266.com/stable/package_esp8266com_index.json URL -címet a További fórumkezelő URL -címekhez. Ezután az Eszközök - Fórum - Táblákkezelő menüben telepítse az esp8266 by esp8266 közösség alkalmazást.
  • Harmadszor válassza ki az ESP8266 -hoz legközelebb álló táblát. Esetemben a NodeMCU v1.0 (ESP 12-E modul) opciót választottam.
  • Végül válassza az Eszközök - Vakuméret lehetőséget, amely SPIFFS -t tartalmazó méret, például 4M (1M SPIFFS). Ebben a projektben az SPIFFS -t (SPI Flash File System) használjuk a napi energiaértékek tárolására, hogy ne vesszenek el, ha az ESP8266 elveszíti az áramot, és még akkor is, ha átprogramozzák.

Most minden rendelkezésünkre áll az ESP8266 programozásához! A tényleges kódot egy későbbi lépésben tárgyaljuk. Először csináljunk egy Thingspeak fiókot.

2. lépés: Hozzon létre egy Thingspeak -fiókot és csatornát

Lépjen a https://thingspeak.com/ oldalra, és hozzon létre egy fiókot. Miután bejelentkezett, kattintson az Új csatorna gombra a csatorna létrehozásához. A csatorna beállításaiban adja meg a kívánt nevet és leírást. Ezután nevezzük el a csatornamezőket, és aktiváljuk őket a jobb oldali jelölőnégyzetekre kattintva. Ha változatlanul használja a kódomat, a következő mezők vannak:

  • 1. mező: csúcsfogyasztás ma (kWh)
  • 2. mező: csúcsidőn kívüli fogyasztás ma (kWh)
  • 3. mező: csúcsinjektálás ma (kWh)
  • 4. mező: csúcsidőn kívüli befecskendezés ma (kWh)
  • 5. mező: áramfelvétel (W)
  • 6. mező: árambefecskendezés (W)
  • 7. mező: gázfogyasztás ma (m3)

Itt a csúcs és a csúcsidőn kívüli időszak a villamosenergia-tarifára utal. Az 1. és 2. mezőben a fogyasztás a mai nettó villamosenergia -fogyasztásra vonatkozik: az áramfogyasztás ma az éjfél óta eltelt tarifális időszakban, mínusz a (napelemek által előállított) villamos energia befecskendezése ma az éjfél óta tartó vámidőszakban, minimálisan nulla. Ez utóbbi azt jelenti, hogy ha ma több volt az injekció, mint a fogyasztás, akkor az érték nulla. Hasonlóképpen, a befecskendezés a 3. és 4. mezőben a villamos energia nettó befecskendezésére vonatkozik. Az 5. és 6. mező a nettó fogyasztást és injekciót jelzi az adott pillanatban. Végül a 7. mező az éjfél óta eltelt gázfogyasztás.

A későbbiekben írja le a csatornaazonosítót, a Read API -kulcsot és az Write API -kulcsot, amelyek a menü API -kulcsaiban találhatók.

3. lépés: Az elektronikus áramkör kiépítése

Az elektronikus áramkör építése
Az elektronikus áramkör építése
Az elektronikus áramkör építése
Az elektronikus áramkör építése

Az árammérőt a P1 port segítségével olvassuk le, amelyhez RJ11 vagy RJ12 kábel szükséges. A különbség az, hogy az RJ12 kábel 6, míg az RJ11 csak 4 vezetékkel rendelkezik. Ebben a projektben nem tápláljuk az ESP8266 -at a P1 portról, így valójában csak 4 vezetékre van szükségünk, tehát egy RJ11 -nek igen.

A képen látható RJ12 kitörést használtam. Kicsit széles, és nincs sok hely a mérőm P1 portja körül. Elfér, de szoros. Alternatív megoldásként használhat egy RJ11 vagy RJ12 kábelt, és levághatja a fejlécet az egyik végén.

Ha a kitörést úgy tartja, mint a képen, a csapok jobbról balra vannak számozva, és a következő jelentéssel bírnak:

  • 1. tű: 5V -os tápegység
  • 2. tű: Adatkérés
  • 3. tű: Data Ground
  • 4. tű: nincs csatlakoztatva
  • 5. tű: Adatsor
  • 6. tű: áramellátás

Az 1 -es és a 6 -os csap használható az ESP8266 tápellátására, de ezt még nem teszteltem. Az 1. tűt az ESP8266 Vin -hez kell csatlakoztatnia, így a kártya belső feszültségszabályozóját használjuk arra, hogy csökkentsük a feszültséget 5 V -ról 3,3 V -ra, amelyet az ESP8266 elfogad. Tehát ne csatlakoztassa a 3,3 V -os tűhöz, mert ez károsíthatja az ESP8266 -ot. A P1 portból történő áramellátás idővel lemeríti a digitális mérő elemét.

A 2. tű magas beállítása jelzi a mérőnek, hogy másodpercenként küldjön adatüzeneteket. A tényleges adatokat az 5. tűn keresztül küldik, 115200 bites sebességgel egy modern digitális mérőhöz (DSMR 4 és 5). A jel megfordul (alacsony 1, magas 0). Egy régebbi típusnál (DSMR 3 és régebbi) az arány 9600 baud. Egy ilyen mérő esetében meg kell változtatnia az átviteli sebességet a következő lépés firmware kódjában: módosítsa a Serial.begin (115200) sort; beállításban ().

Az NPN tranzisztor szerepe kettős:

  • Megfordítani a jelet, hogy az ESP8266 megértse.
  • A logikai szint megváltoztatása a P1-port 5 V-ról az ESP8266 RX-portja által várt 3,3 V-ra.

Tehát hozza létre az elektronikus áramkört a kenyértáblán, mint az ábrán. A kondenzátor növeli a stabilitást, de anélkül is működik.

Hagyja abba az RX csap csatlakoztatását, amíg be nem programozza az ESP8266 -at a következő lépésben. Valójában az RX tűre is szükség van az ESP8266 és a számítógép közötti USB -n keresztüli kommunikációhoz.

4. lépés: Töltse fel a kódot

A kódot elérhetővé tettem a GitHubon, ez csak egy fájl: P1-Meter-Reader.ino. Csak töltse le és nyissa meg az Arduino IDE -ben. Vagy válassza a Fájl - Új lehetőséget, és csak másolja/illessze be a kódot.

Néhány adatot meg kell adnia a fájl elején: a használni kívánt WLAN nevét és jelszavát, valamint a ThingSpeak csatorna csatornaazonosítóját és Write API kulcsát.

A kód a következőket teszi:

  • Adat táviratot olvas a mérőről minden UPDATE_INTERVAL (ezredmásodpercben). Az alapértelmezett érték 10 másodpercenként. Általában másodpercenként érkezik adat távirat a mérőből, de a frekvencia magasra állítása túlterheli az ESP8266 -ot, így nem tudja tovább futtatni a webszervert.
  • Feltölti a villamosenergia -adatokat a Thingspeak csatornára minden SEND_INTERVAL (ezredmásodpercben). Az alapértelmezett érték minden perc. Ennek a gyakoriságnak a meghatározásakor vegye figyelembe, hogy az adatok elküldése némi időt (általában néhány másodpercet) vesz igénybe, és hogy a Thingspeak frissítési gyakorisága korlátozott egy ingyenes fiók esetében. Ez körülbelül 8200 üzenet naponta, így a maximális gyakoriság körülbelül 10 másodpercenként lenne, ha nem használja a Thingspeak -et másra.
  • Feltölti a gázadatokat, amikor azok megváltoznak. Általában a mérő csak körülbelül 4 percenként frissíti a gázfogyasztási adatokat.
  • A mérő a kezdés óta nyomon követi a teljes fogyasztást és a befecskendezési értékeket. Tehát a napi fogyasztás és injekció megszerzéséhez a kód minden nap éjfélkor menti az összes értéket. Ezután ezeket az értékeket kivonják az aktuális összes értékekből. Az éjfélkor megadott értékeket a SPIFFS (SPI Flash File System) rendszer tárolja, amely továbbra is fennáll, ha az ESP8266 leáll, vagy akár újraprogramozásra kerül.
  • Az ESP8266 mini webszervert futtat. Ha megnyitja IP -címét a böngészőben, áttekintést kap az összes jelenlegi villamosenergia- és gázértékről. Ezek a legutóbbi táviratból származnak, és olyan információkat tartalmaznak, amelyeket nem töltöttek fel a Thingspeak -re, például a feszültségeket és áramokat fázisonként. Az alapértelmezett beállítás az, hogy az útválasztó dinamikusan határozza meg az IP -címet. De kényelmesebb statikus IP -címet használni, amely mindig ugyanaz. Ebben az esetben ki kell töltenie a staticIP, gateway, dns és alhálózatot a kódba, és ki kell választania a WiFi.config sort (staticIP, dns, gateway, subnet); a connectWifi () funkcióban.

A módosítások elvégzése után készen áll a firmware feltöltésére az ESP8266 készülékre. Csatlakoztassa az ESP8266 -ot az USB -kábellel a számítógéphez, és nyomja meg az ikont a nyíllal az Arduino IDE -ben. Ha nem sikerül csatlakozni az ESP8266 -hoz, próbálja meg megváltoztatni a COM portot az Eszközök - Port menüben. Ha továbbra sem működik, lehetséges, hogy manuálisan kell telepítenie az USB virtuális COM -port illesztőprogramját.

5. lépés: Tesztelés

A firmware feltöltése után húzza ki az USB -kábelt, és csatlakoztassa az ESP8266 RX vezetékét. Ne feledje, szükségünk volt az ESP8266 RX csatornájára a firmware feltöltéséhez, így korábban nem csatlakoztattuk. Most csatlakoztassa az RJ12 megszakítót a digitális mérőhöz, és csatlakoztassa újra az ESP8266 -ot a számítógéphez.

Az Arduino IDE -ben nyissa meg a Soros monitort az Eszközök menüben, és győződjön meg arról, hogy 115200 baudra van állítva. Ha módosítania kell az átviteli sebességet, talán be kell zárnia és újra meg kell nyitnia a soros monitort, mielőtt működne.

Most látnia kell a kód kimenetét a Soros monitorban. Ellenőrizze, hogy vannak -e hibaüzenetek. Ezenkívül látnia kell a táviratokat. Nekem így néznek ki:

/FLU5 / xxxxxxxxx_x

0-0: 96.1.4 (50213) 0-0: 96.1.1 (3153414733313030313434363235) // Sorszámmérő hexadecimális 0-0: 1.0.0 (200831181442S) // Időbélyeg: nyári időszámítás (nyár), W: nem nyári időszámítás (téli) 1-0: 1.8.1 (000016.308*kWh) // Teljes nettó csúcsfogyasztás 1-0: 1.8.2 (000029.666*kWh) // Csúcsidőn kívüli teljes nettó fogyasztás 1-0: 2.8.1 (000138.634*kWh) // Teljes csúcs nettó injekció 1-0: 2.8.2 (000042.415*kWh) // Csúcson kívüli teljes nettó injekció 0-0: 96.14.0 (0001) // 1. tarifa: csúcs, 2: csúcsidőn kívüli 1-0: 1.7.0 (00.000*kW) // áramfelvétel 1-0: 2.7.0 (00.553*kW) // árambefecskendezés 1-0: 32.7.0 (235.8*V) // fázis 1 feszültség 1-0: 52,7,0 (237,0*V) // Fázis 2 feszültség 1-0: 72,7,0 (237,8*V) // Fázis 3 feszültség 1-0: 31,7,0 (001*A) // 1. fázis áram 1-0: 51.7.0 (000*A) // 2. fázis 1-0: 71.7.0 (004*A) // 3. fázis áram 0-0: 96.3.10 (1) 0-0: 17.0.0 (999.9*kW) // Maximális teljesítmény 1-0: 31.4.0 (999*A) // Maximális áram 0-0: 96.13.0 () // Üzenet 0-1: 24.1.0 (003) // egyéb eszközök az M-buszon 0-1: 96.1.1 (37464C4F32313230313037393338) // Sorszám gázmér r hexadecimális 0-1: 24.4.0 (1) 0-1: 24.2.3 (200831181002S) (00005.615*m3) // Gáz időbélyegző teljes fogyasztás! E461 // CRC16 ellenőrző összeg

Ha valami baj van, ellenőrizheti, hogy ugyanazok a címkék vannak -e, és esetleg módosítania kell a táviratok elemző kódját a readTelegram függvényben.

Ha minden működik, akkor az esp8266 -ot az USB -töltőről töltheti.

Telepítse okostelefonjára az IoT ThingSpeak Monitor alkalmazást, töltse ki a csatornaazonosítót és a Read API kulcsot, és kész!

Ajánlott: