Taula de continguts:

Llegiu Mesurador d’electricitat i gas (belga / holandès) i pengeu a Thingspeak: 5 passos
Llegiu Mesurador d’electricitat i gas (belga / holandès) i pengeu a Thingspeak: 5 passos

Vídeo: Llegiu Mesurador d’electricitat i gas (belga / holandès) i pengeu a Thingspeak: 5 passos

Vídeo: Llegiu Mesurador d’electricitat i gas (belga / holandès) i pengeu a Thingspeak: 5 passos
Vídeo: Сушка груш в электросушилке дома, 2 способа. Расход электроэнергии у сушилки Ветерок-2 за час сушки. 2024, Desembre
Anonim
Llegiu Electricitat i mesurador de gas (belga / holandès) i pengeu a Thingspeak
Llegiu Electricitat i mesurador de gas (belga / holandès) i pengeu a Thingspeak
Llegiu Electricity and Gas Meter (belga / holandès) i pengeu-ho a Thingspeak
Llegiu Electricity and Gas Meter (belga / holandès) i pengeu-ho a Thingspeak

Si us preocupa el vostre consum d’energia o només una mica divertit, és probable que vulgueu veure les dades del vostre nou comptador digital de luxe al vostre telèfon intel·ligent.

En aquest projecte obtindrem les dades actuals d’un comptador digital d’electricitat i gas belga o holandès i les penjarem a Thingspeak. Aquestes dades inclouen el consum i la injecció d’energia actuals i diaris (si teniu plaques solars), voltatges i corrents i el consum de gas (si hi ha un comptador de gas digital connectat al comptador d’electricitat). A través d’una aplicació, aquests valors es poden llegir en temps real al telèfon intel·ligent.

Funciona per a un comptador digital belga o holandès que segueix el protocol DSMR (Dutch Smart Meter Requirements), que haurien de ser tots els comptadors recents. Si viviu en un altre lloc, malauradament, és probable que el vostre comptador utilitzi un altre protocol. Per tant, em temo que aquest instructable està una mica restringit regionalment.

Utilitzarem el port P1 del mesurador, que accepta un cable RJ11 / RJ12, conegut col·loquialment com a cable de telèfon. Assegureu-vos que l’instal·lador del mesurador hagi activat el port P1. Per exemple, per a Fluvius a Bèlgica, seguiu aquestes instruccions.

Per processar les dades i pujar-les a Internet, fem servir un ESP8266, que és un microxip econòmic amb wifi integrat. Només costa 2 dòlars. A més, es pot programar mitjançant l'IDE Arduino. Emmagatzemem les dades al núvol a Thingspeak, que és gratuït per a un màxim de quatre canals. Per a aquest projecte només fem servir un canal. Les dades es poden mostrar al telèfon intel·ligent mitjançant una aplicació com IoT ThingSpeak.

Parts:

  • Un ESP8266, com un nodemcu v2. Tingueu en compte que el nodemcu v3 és massa ampli per a una taula de proves estàndard, així que prefereixo el v2.
  • Un cable micro USB a USB.
  • Un carregador USB.
  • Un transistor NPN BC547b.
  • Dues resistències de 10 k i una resistència de 1 k.
  • Un connector de terminal de cargol RJ12.
  • Una pissarra.
  • Filferros de pont.
  • Opcional: un condensador 1nF.

En total, això costa aproximadament 15 euros a AliExpress o similar. L'estimació té en compte que alguns components, com ara les resistències, els transistors i els cables, presenten quantitats molt més grans de les que necessiteu per a aquest projecte. Per tant, si ja teniu un kit de components, serà més barat.

Pas 1: conèixer l'ESP8266

Vaig triar el NodeMCU v2, ja que no cal soldar i té una connexió micro USB que permet una fàcil programació. L’avantatge del NodeMCU v2 respecte al NodeMCU v3 és que és prou petit per encabir-lo en una taula de pa i deixar forats lliures al costat per fer connexions. Per tant, és millor evitar el NodeMCU v3. Tot i això, si preferiu una altra placa ESP8266, també està bé.

L'ESP8266 es pot programar fàcilment mitjançant l'IDE Arduino. Hi ha altres instruccions que expliquen això en detall, així que seré molt breu aquí.

  • Primer descarregueu l’IDE Arduino.
  • Assistència de segona instal·lació per a la placa ESP8266. Al menú Fitxer - Preferències - Configuració, afegiu l'URL https://arduino.esp8266.com/stable/package_esp8266com_index.json a URL del gestor de taules addicionals. A continuació, al menú Eines - Tauler: el gestor de taules instal·la la comunitat esp8266 per esp8266.
  • En tercer lloc, seleccioneu el tauler més proper al vostre ESP8266. En el meu cas, vaig triar NodeMCU v1.0 (ESP 12-E Module).
  • Finalment, seleccioneu a Eines: mida de Flash, una mida que inclou SPIFFS, com ara 4M (1M SPIFFS). En aquest projecte fem servir SPIFFS (SPI Flash File System) per emmagatzemar els valors energètics diaris, de manera que no es perdin si l’ESP8266 perd energia i fins i tot quan es reprograma.

Ara ja tenim tot preparat per programar l’ESP8266. En un pas posterior discutirem el codi real. Primer farem un compte de Thingspeak.

Pas 2: creeu un compte i un canal de Thingspeak

Aneu a https://thingspeak.com/ i creeu un compte. Un cop hàgiu iniciat la sessió, feu clic al botó Nou canal per crear un canal. A la configuració del canal, empleneu el nom i la descripció que vulgueu. A continuació, anomenem els camps del canal i els activem fent clic a les caselles de selecció de la dreta. Si feu servir el meu codi sense canvis, els camps són els següents:

  • Camp 1: consum màxim actual (kWh)
  • Camp 2: consum baix en l'actualitat (kWh)
  • Camp 3: pic d'injecció avui (kWh)
  • Camp 4: injecció poc punta avui (kWh)
  • Camp 5: consum actual (W)
  • Camp 6: injecció de corrent (W)
  • Camp 7: consum de gas avui (m3)

Aquí, el pic i el pic es refereixen a la tarifa elèctrica. Als camps 1 i 2, el consum fa referència al consum net d’electricitat actual: consum d’electricitat actual en el període tarifari des de mitjanit menys injecció d’electricitat (produïda per plaques solars) avui en el període tarifari des de mitjanit amb un mínim de zero. Això últim significa que si avui hi havia més injecció que consum, el valor és zero. Així mateix, la injecció als camps 3 i 4 es refereix a la injecció neta d’electricitat. Els camps 5 i 6 indiquen el consum net i la injecció en el moment actual. Finalment, el camp 7 és el consum de gas des de mitjanit.

Per a futures referències, escriviu l'identificador de canal, la clau API de lectura i la clau API API, que es pot trobar a les claus API del menú.

Pas 3: Construir el circuit electrònic

Construint el circuit electrònic
Construint el circuit electrònic
Construint el circuit electrònic
Construint el circuit electrònic

Llegim el comptador d’electricitat mitjançant el port P1, que pren un cable RJ11 o RJ12. La diferència és que el cable RJ12 té 6 cables mentre que el RJ11 només en té 4. En aquest projecte no alimentem l’ESP8266 des del port P1, de manera que només necessitem 4 cables, de manera que un RJ11 ho faria.

He utilitzat el brot RJ12 que es mostra a la imatge. És una mica ampla i no hi ha gaire espai al voltant del port P1 al meu comptador. S'adapta, però està ajustat. Com a alternativa, només podeu utilitzar un cable RJ11 o RJ12 i treure la capçalera per un extrem.

Si manteniu el brot com a la imatge, els pins estan numerats de dreta a esquerra i tenen el significat següent:

  • Pin 1: font d'alimentació de 5 V.
  • Pin 2: sol·licitud de dades
  • Pin 3: terra de dades
  • Pin 4: no està connectat
  • Pin 5: línia de dades
  • Pin 6: terra elèctrica

El pin 1 i el pin 6 es podrien utilitzar per alimentar l’ESP8266, però no ho he provat. Hauríeu de connectar el pin 1 a Vin de l’ESP8266, de manera que el regulador de voltatge intern de la placa s’utilitza per reduir el voltatge de 5V a 3,3V que accepta l’ESP8266. Per tant, no el connecteu al pin de 3,3 V, perquè això podria danyar l’ESP8266. El fet d’alimentar-se des del port P1 amb el temps esgotaria la bateria del comptador digital.

La configuració del pin 2 alt indica que el mesurador envia telegrames de dades cada segon. Les dades reals s’envien mitjançant el pin 5 amb una velocitat de transmissió de 115200 per a un comptador digital modern (DSMR 4 i 5). El senyal s’inverteix (el mínim és 1 i l’alt és 0). Per a un tipus anterior (DSMR 3 i inferior), la velocitat és de 9600 baud. Per a aquest mesurador, heu de canviar la velocitat de transmissió en el codi de firmware del següent pas: canvieu la línia Serial.begin (115200); a setup ().

El paper del transistor NPN és doble:

  • Invertir el senyal perquè l'ESP8266 pugui entendre'l.
  • Per canviar el nivell lògic del 5V del port P1 al 3,3V que espera el port RX de l’ESP8266.

Per tant, creeu el circuit electrònic a la taula de proves com al diagrama. El condensador augmenta l'estabilitat, però també funciona sense.

Mantingueu connectat el pin RX fins que hàgiu programat l'ESP8266 al següent pas. De fet, el pin RX també és necessari per comunicar-se per USB entre l’ESP8266 i l’ordinador.

Pas 4: pengeu el codi

He fet que el codi estigui disponible a GitHub, només és un fitxer: P1-Meter-Reader.ino. Només heu de descarregar-lo i obrir-lo a l'IDE Arduino. O bé podeu seleccionar Fitxer - Nou i simplement copiar / enganxar el codi.

Hi ha alguna informació que heu d’emplenar al principi del fitxer: el nom i la contrasenya de la WLAN que voleu utilitzar, i l’identificador de canal i la clau API d’escriptura del canal ThingSpeak.

El codi fa el següent:

  • Llegeix un telegrama de dades del comptador cada UPDATE_INTERVAL (en mil·lisegons). El valor per defecte és cada 10 segons. Normalment, hi ha un telegrama de dades des del comptador cada segon, però establir la freqüència a alta sobrecarregarà l’ESP8266, de manera que ja no podrà executar el servidor web.
  • Penja les dades d’electricitat al canal Thingspeak cada SEND_INTERVAL (en mil·lisegons). El valor per defecte és cada minut. Per decidir sobre aquesta freqüència, tingueu en compte que l'enviament de les dades triga un temps (normalment uns quants segons) i que hi ha un límit de freqüència d'actualització a Thingspeak per a un compte gratuït. Són uns 8200 missatges diaris, de manera que la freqüència màxima seria aproximadament un cop cada 10 segons si no utilitzeu Thingspeak per a res més.
  • Penja les dades del gas quan canvien. Normalment, el comptador actualitza les dades de consum de gas només cada 4 minuts més o menys.
  • El comptador fa un seguiment dels valors de consum i injecció total des del començament. Així, per obtenir el consum i la injecció diàrias, el codi guarda els valors totals cada dia a mitjanit. A continuació, aquests valors es resten dels valors totals actuals. Els valors a mitjanit s’emmagatzemen a l’SPIFFS (SPI Flash File System), que persisteix si l’ESP8266 perd alimentació o fins i tot quan es reprograma.
  • L'ESP8266 executa un mini servidor web. Si obriu la seva adreça IP al navegador, obtindreu una visió general de tots els valors actuals d’electricitat i gas. Aquests són del telegrama més recent i inclouen informació que no es penja a Thingspeak, com ara tensions i corrents per fase. La configuració predeterminada és que l'adreça IP la determina el vostre encaminador dinàmicament. Però és més convenient utilitzar una adreça IP estàtica, que sempre és la mateixa. En aquest cas, heu d'omplir staticIP, passarel·la, dns i subxarxa al codi i descomentar la línia WiFi.config (staticIP, dns, passarel·la, subxarxa); a la funció connectWifi ().

Un cop fets aquests canvis, ja podreu carregar el firmware a l'ESP8266. Connecteu l'ESP8266 a través del cable USB a l'ordinador i premeu la icona amb la fletxa a l'IDE Arduino. Si no aconsegueu connectar-vos a l’ESP8266, proveu de canviar el port COM al menú Eines - Port. Si encara no funciona, és possible que hàgiu d'instal·lar manualment el controlador del port COM virtual USB.

Pas 5: proves

Després de carregar el firmware, desconnecteu l'USB i connecteu el cable RX de l'ESP8266. Recordeu, necessitàvem el canal RX de l’ESP8266 per carregar el firmware, de manera que no el connectàvem abans. Ara connecteu el broc RJ12 al comptador digital i torneu a connectar l’ESP8266 a l’ordinador.

A l’IDE Arduino, obriu el monitor de sèrie al menú Eines i assegureu-vos que estigui configurat a 115200 baud. Si heu de canviar la velocitat de transmissió, potser haureu de tancar i tornar a obrir el monitor de sèrie abans que funcioni.

Ara hauríeu de veure la sortida del codi al monitor sèrie. Heu de comprovar si hi ha cap missatge d'error. A més, hauríeu de poder veure els telegrames. Per a mi, tenen aquest aspecte:

/ FLU5 / xxxxxxxxx_x

0-0: 96.1.4 (50213) 0-0: 96.1.1 (3153414733313030313434363235) // Mesurador de número de sèrie hexadecimal 0-0: 1.0.0 (200831181442S) // Marca horària S: estiu (estiu), W: no estalvi d’hivern (hivern) 1-0: 1.8.1 (000016.308 * kWh) // Consum net màxim màxim 1-0: 1.8.2 (000029.666 * kWh) // Consum net baix pic 1-0: 2.8.1 (000138.634 * kWh) // Injecció neta màxima màxima 1-0: 2.8.2 (000042.415 * kWh) // Injecció neta total baixa 0-0: 96.14.0 (0001) // Tarifa 1: pic, 2: poc pic 1-0: 1,7,0 (00,000 * kW) // Consum actual 1-0: 2,7,0 (00,553 * kW) // Injecció actual 1-0: 32,7,0 (235,8 * V) // Fase 1 tensió 1-0: 52,7,0 (237,0 * V) // Fase 2 tensió 1-0: 72,7,0 (237,8 * V) // Fase 3 tensió 1-0: 31,7,0 (001 * A) // Fase 1 actual 1-0: 51.7.0 (000 * A) // Fase 2 actual 1-0: 71.7.0 (004 * A) // Fase 3 actual 0-0: 96.3.10 (1) 0-0: 17.0.0 (999.9 * kW) // Potència màxima 1-0: 31.4.0 (999 * A) // Corrent màxima 0-0: 96.13.0 () // Missatge 0-1: 24.1.0 (003) // altres dispositius del bus M 0-1: 96.1.1 (37464C4F32313230313037393338) // Número de sèrie gas mete r hexadecimal 0-1: 24.4.0 (1) 0-1: 24.2.3 (200831181002S) (00005.615 * m3) // Consum total de marca de temps de gas! E461 // suma de verificació CRC16

Si hi ha alguna cosa malament, podeu comprovar si teniu les mateixes etiquetes i possiblement haureu de canviar el codi analitzant els telegrames de la funció readTelegram.

Si tot funciona ara podeu alimentar l’esp8266 des del carregador USB.

Instal·leu l'aplicació IoT ThingSpeak Monitor al vostre telèfon intel·ligent, empleneu l'identificador de canal i llegiu la clau de l'API i heu acabat.

Recomanat: