Talaan ng mga Nilalaman:

Basahin ang Elektrisidad at Gas Meter (Belgian / Dutch) at Mag-upload sa Thingspeak: 5 Hakbang
Basahin ang Elektrisidad at Gas Meter (Belgian / Dutch) at Mag-upload sa Thingspeak: 5 Hakbang

Video: Basahin ang Elektrisidad at Gas Meter (Belgian / Dutch) at Mag-upload sa Thingspeak: 5 Hakbang

Video: Basahin ang Elektrisidad at Gas Meter (Belgian / Dutch) at Mag-upload sa Thingspeak: 5 Hakbang
Video: Paano Makatipid sa Kuryente Gamit lang ang ELECTRICAL TAPE at Foil ? 🫣😳 2024, Hulyo
Anonim
Basahin ang Elektrisidad at Gas Meter (Belgian / Dutch) at Mag-upload sa Thingspeak
Basahin ang Elektrisidad at Gas Meter (Belgian / Dutch) at Mag-upload sa Thingspeak
Basahin ang Elektrisidad at Gas Meter (Belgian / Dutch) at Mag-upload sa Thingspeak
Basahin ang Elektrisidad at Gas Meter (Belgian / Dutch) at Mag-upload sa Thingspeak

Kung nag-aalala ka tungkol sa iyong pagkonsumo ng enerhiya o kaunting nerd, malamang na nais mong makita ang data mula sa iyong magarbong bagong digital meter sa iyong smartphone.

Sa proyektong ito makukuha namin ang kasalukuyang data mula sa isang Belgian o Dutch digital na kuryente at metro ng gas at i-upload ito sa Thingspeak. Kasama sa data na ito ang kasalukuyan at pang-araw-araw na pagkonsumo at pag-iniksyon ng kuryente (kung mayroon kang mga solar panel), voltages at alon, at pagkonsumo ng gas (kung ang isang digital gas meter ay konektado sa metro ng kuryente). Sa pamamagitan ng isang app ang mga halagang ito ay maaaring mabasa nang real time sa iyong smartphone.

Gumagana ito para sa isang digital na metro ng Belgian o Dutch na sumusunod sa DSMR (Mga Kinakailangan na Smart Meter na Dutch) na protocol, na dapat ay lahat ng mga huling metro. Kung nakatira ka sa ibang lugar, sa kasamaang palad, ang iyong metro ay malamang na gumamit ng isa pang protokol. Kaya't natatakot ako na ang Instructable na ito ay medyo pinagbawalan sa rehiyon.

Gagamitin namin ang P1-port ng metro, na tumatanggap ng isang RJ11 / RJ12 cable, na colloqually na kilala bilang isang cable ng telepono. Tiyaking na-install ng installer ng metro ang P1 port. Halimbawa, para sa Fluvius sa Belgium sundin ang mga tagubiling ito.

Upang maproseso ang data at mai-upload sa internet, gumagamit kami ng isang ESP8266, na kung saan ay isang murang microchip na may built-in na wifi. Nagkakahalaga lamang ito ng isang bagay tulad ng 2 dolyar. Bukod dito maaari itong mai-program gamit ang Arduino IDE. Inimbak namin ang data sa cloud sa Thingspeak, na libre para sa maximum na apat na mga channel. Para sa proyektong ito, isang channel lang ang ginagamit namin. Maaaring ipakita ang data sa iyong smartphone gamit ang isang app tulad ng IoT ThingSpeak.

Mga Bahagi:

  • Isang ESP8266, tulad ng isang nodemcu v2. Tandaan na ang nodemcu v3 ay masyadong malawak para sa isang karaniwang breadboard, kaya mas gusto ko ang v2.
  • Isang micro USB sa USB cable.
  • Isang USB charger.
  • Isang BC547b NPN transistor.
  • Dalawang 10k resistors at isang 1k resistor.
  • Isang konektor ng terminal ng tornilyo ng RJ12.
  • Isang breadboard.
  • Jumper wires.
  • Opsyonal: isang 1nF capacitor.

Sa kabuuan, nagkakahalaga ito ng isang bagay tulad ng 15 EUR sa AliExpress o katulad. Isinasaalang-alang ng pagtatantya na ang ilang mga bahagi tulad ng resistors, transistors at wires, ay dumating sa mas malaking dami kaysa sa kailangan mo para sa proyektong ito. Kaya't kung mayroon ka nang isang sangkap ng kit mas mura ito.

Hakbang 1: Kilalanin ang ESP8266

Pinili ko ang NodeMCU v2, dahil walang kinakailangang paghihinang at mayroon itong isang koneksyon sa micro USB na nagpapahintulot sa madaling pagprograma. Ang bentahe ng NodeMCU v2 sa NodeMCU v3 ay ito ay sapat na maliit upang magkasya sa isang breadboard at iwanan ang mga libreng butas sa gilid upang makakonekta. Kaya mas mahusay na iwasan ang NodeMCU v3. Gayunpaman, kung gusto mo ng isa pang board ng ESP8266 na ayos din.

Ang ESP8266 ay madaling mai-program gamit ang Arduino IDE. Mayroong iba pang Mga Tagubilin na nagpapaliwanag na ito nang detalyado kaya't magiging napakaliit ko rito.

  • I-download muna ang Arduino IDE.
  • Pangalawang pag-install ng suporta para sa board ng ESP8266. Sa menu File - Mga Kagustuhan - Mga setting idagdag ang URL https://arduino.esp8266.com/stable/package_esp8266com_index.json sa Mga Karagdagang URL ng Board Manager. Susunod sa menu Tools - Board - Boards Manager i-install ang esp8266 ng komunidad ng esp8266.
  • Pangatlo piliin ang board na pinakamalapit sa iyong ESP8266. Sa aking kaso pinili ko ang NodeMCU v1.0 (ESP 12-E Module).
  • Panghuli pumili sa ilalim ng Mga Tool - Laki ng Flash, isang sukat na may kasamang SPIFFS, tulad ng 4M (1M SPIFFS). Sa proyektong ito ginagamit namin ang SPIFFS (SPI Flash File System) upang mag-imbak ng mga pang-araw-araw na halaga ng enerhiya, upang hindi sila mawala kung mawalan ng lakas ang ESP8266 at kahit na ito ay muling nai-program.

Ngayon mayroon kaming lahat sa lugar upang mai-program ang ESP8266! Tatalakayin namin ang aktwal na code sa susunod na hakbang. Gagawa muna kami ng isang Thingspeak account.

Hakbang 2: Lumikha ng isang Thingspeak Account at Channel

Pumunta sa https://thingspeak.com/ at lumikha ng isang account. Kapag naka-log in ka na, i-click ang pindutan ng Bagong Channel upang lumikha ng isang channel. Sa Mga Setting ng Channel punan ang pangalan at paglalarawan ayon sa gusto mo. Susunod ay pinangalanan namin ang mga patlang ng channel at pinapagana ang mga ito sa pamamagitan ng pag-click sa mga checkbox sa kanan. Kung gagamitin mo ang aking code na hindi nabago ang mga patlang ay ang mga sumusunod:

  • Larangan 1: rurok na pagkonsumo ngayon (kWh)
  • Field 2: off-peak konsumo ngayon (kWh)
  • Larangan 3: rurok na iniksyon ngayon (kWh)
  • Field 4: off-peak injection ngayon (kWh)
  • Patlang 5: kasalukuyang pagkonsumo (W)
  • Larangan 6: kasalukuyang iniksyon (W)
  • Patlang 7: pagkonsumo ng gas ngayon (m3)

Dito, ang rurok at labas na rurok ay tumutukoy sa taripa ng kuryente. Sa mga patlang na 1 at 2 ang pagkonsumo ay tumutukoy sa pagkonsumo ng netong kuryente ngayon: pagkonsumo ng kuryente ngayon sa panahon ng taripa mula hatinggabi na minus na iniksyon ng elektrisidad (ginawa ng mga solar panel) ngayon sa panahon ng taripa mula hatinggabi na may minimum na zero. Ang huli ay nangangahulugan na kung mayroong maraming iniksyon kaysa sa pagkonsumo ngayon ang halaga ay zero. Gayundin, ang iniksyon sa mga patlang 3 at 4 ay tumutukoy sa net injection ng elektrisidad. Ipinapahiwatig ng Patlang 5 at 6 ang netong pagkonsumo at pag-iniksyon sa kasalukuyang sandali. Sa wakas ang larangan 7 ay ang pagkonsumo ng gas mula hatinggabi.

Para sa sanggunian sa hinaharap isulat ang Channel ID, ang Basahin ang API Key at ang Isulat ang API Key, na matatagpuan sa mga menu key ng API.

Hakbang 3: Pagbuo ng Electronic Circuit

Pagbuo ng Electronic Circuit
Pagbuo ng Electronic Circuit
Pagbuo ng Electronic Circuit
Pagbuo ng Electronic Circuit

Binasa namin ang metro ng kuryente gamit ang P1 port, na tumatagal ng isang RJ11 o RJ12 cable. Ang kaibahan ay ang RJ12 cable ay mayroong 6 na mga wire habang ang RJ11 ay mayroon lamang 4. Sa proyektong ito hindi namin pinapagana ang ESP8266 mula sa P1 port kaya talagang 4 na wires lang ang kailangan namin, kaya ang isang RJ11.

Ginamit ko ang RJ12 breakout na ipinakita sa larawan. Medyo malapad ito at walang gaanong puwang sa paligid ng P1 port sa aking metro. Tama ang sukat, ngunit ito ay masikip. Bilang kahalili, maaari mo lamang gamitin ang isang RJ11 o RJ12 cable at alisin ang header sa isang dulo.

Kung hinahawakan mo ang break-out tulad ng nasa larawan, ang mga pin ay binibilang mula kanan hanggang kaliwa at may sumusunod na kahulugan:

  • Pin 1: 5V Power supply
  • Pin 2: Kahilingan sa Data
  • Pin 3: Ground ng Data
  • Pin 4: hindi nakakonekta
  • Pin 5: Linya ng data
  • Pin 6: Power ground

Maaaring magamit ang Pin 1 at Pin 6 upang mapagana ang ESP8266, ngunit hindi ko ito nasubok. Kakailanganin mong ikonekta ang Pin 1 sa Vin ng ESP8266, kaya ang panloob na regulator ng boltahe ng board ay ginagamit upang mabawasan ang boltahe mula 5V hanggang sa 3.3V na tinatanggap ng ESP8266. Kaya't huwag itong ikonekta sa 3.3V pin, sapagkat maaaring makapinsala sa ESP8266. Ang pagpapatakbo din mula sa P1 port ay sa paglipas ng panahon maubos ang baterya ng digital meter.

Ang pagtatakda ng pin 2 mataas na signal ng metro upang magpadala ng mga data telegrams bawat segundo. Ang aktwal na data ay ipinapadala sa Pin 5 na may baud rate na 115200 para sa isang modernong digital meter (DSMR 4 at 5). Ang signal ay baligtad (mababa ang 1 at mataas ang 0). Para sa isang mas matandang uri (DSMR 3 at mas mababa) ang rate ay 9600 baud. Para sa naturang isang metro kailangan mong baguhin ang rate ng baud sa firmware code ng susunod na hakbang: palitan ang linya ng Serial.begin (115200); sa pag-setup ().

Ang papel na ginagampanan ng NPN transistor ay dalawang beses:

  • Upang baligtarin ang signal upang maunawaan ito ng ESP8266.
  • Upang baguhin ang antas ng lohika mula sa 5V ng P1-port sa 3.3V na inaasahan ng RX port ng ESP8266.

Kaya likhain ang electronic circuit sa breadboard tulad ng diagram. Pinapataas ng capacitor ang katatagan, ngunit gumagana rin ito nang wala.

I-hold ang pagkonekta sa RX pin hanggang sa ma-program mo ang ESP8266 sa susunod na hakbang. Sa katunayan, kailangan din ng RX pin upang makipag-usap sa USB sa pagitan ng ESP8266 at ng iyong computer.

Hakbang 4: I-upload ang Code

Ginawa kong magagamit ang code sa GitHub, isa lamang itong file: P1-Meter-Reader.ino. I-download lamang ito at buksan ito sa Arduino IDE. O maaari mong piliin ang File - Bago at kopyahin / i-paste lamang ang code.

Mayroong ilang impormasyon na kailangan mong punan ang simula ng file: ang pangalan at password ng WLAN na gagamitin, at ang Channel ID at Isulat ang API Key ng ThingSpeak Channel.

Ginagawa ng code ang sumusunod:

  • Nagbabasa ng isang data telegram mula sa metro bawat UPDATE_INTERVAL (sa milliseconds). Ang default na halaga ay bawat 10 segundo. Karaniwan, mayroong isang data telegram mula sa metro bawat segundo, ngunit ang pagtatakda ng dalas sa mataas ay mag-overload ng ESP8266 kaya't hindi na nito mapapatakbo ang webserver.
  • Ina-upload ang data ng kuryente sa channel ng Thingspeak bawat SEND_INTERVAL (sa milliseconds). Ang default na halaga ay bawat minuto. Upang magpasya tungkol sa dalas na ito isaalang-alang na ang pagpapadala ng data ay tumatagal ng ilang oras (karaniwang ilang segundo) at mayroong isang limitasyon sa dalas ng pag-update sa Thingspeak para sa isang libreng account. Ito ay tungkol sa 8200 mga mensahe bawat araw kaya ang pinakamataas na dalas ay halos isang beses bawat 10 segundo kung hindi mo gagamitin ang Thingspeak para sa iba pa.
  • Ina-upload ang data ng gas kapag nagbago ito. Karaniwan, ina-update ng metro ang data ng pagkonsumo ng gas bawat 4 minuto o higit pa.
  • Sinusubaybayan ng metro ang kabuuang halaga ng pagkonsumo at pag-iniksyon mula pa noong simula. Kaya upang makuha ang pang-araw-araw na pagkonsumo at pag-iniksyon, nai-save ng code ang kabuuang halaga sa hatinggabi araw-araw. Pagkatapos ang mga halagang ito ay ibabawas mula sa kasalukuyang kabuuang halaga. Ang mga halaga sa hatinggabi ay nakaimbak sa SPIFFS (SPI Flash File System), na nagpapatuloy kung ang ESP8266 ay nawalan ng lakas o kahit na ito ay muling nai-program.
  • Nagpapatakbo ang ESP8266 ng isang mini webserver. Kung buksan mo ang IP address nito sa iyong browser, makakakuha ka ng isang pangkalahatang ideya ng lahat ng kasalukuyang mga halaga ng kuryente at gas. Ito ay mula sa pinakahuling telegram at may kasamang impormasyon na hindi na-upload sa Thingspeak, tulad ng mga voltages at alon sa bawat yugto. Ang default na setting ay ang IP address na dinamiko tinutukoy ng iyong router. Ngunit mas maginhawa ang paggamit ng isang static IP address, na palaging pareho. Sa kasong ito kailangan mong punan ang staticIP, gateway, dns at subnet sa code at huwag paganahin ang linya ng WiFi.config (staticIP, dns, gateway, subnet); sa pagpapaandar ng connectWifi ().

Matapos mong gawin ang mga pagbabagong ito, handa ka nang mag-upload ng firmware sa ESP8266. Ikonekta ang ESP8266 sa pamamagitan ng USB cable sa iyong computer at pindutin ang icon na may arrow sa Arduino IDE. Kung hindi mo mapamahalaan upang kumonekta sa ESP8266 subukang baguhin ang COM port sa ilalim ng menu Tools - Port. Kung hindi pa ito gumana posible na manu-mano mong mai-install ang driver para sa USB virtual COM port.

Hakbang 5: Pagsubok

Matapos i-upload ang firmware, i-unplug ang USB at ikonekta ang RX wire ng ESP8266. Tandaan, kailangan namin ang RX channel ng ESP8266 para sa pag-upload ng firmware kaya hindi namin ito ikonekta dati. Ngayon plug sa RJ12 breakout sa digital meter at ikonekta muli ang ESP8266 sa iyong computer.

Sa Arduino IDE, buksan ang Serial Monitor sa pamamagitan ng menu ng Mga Tool at tiyaking nakatakda ito sa 115200 baud. Kung kailangan mong baguhin ang rate ng baud, marahil kailangan mong isara at muling buksan muli ang Serial Monitor bago ito gumana.

Ngayon ay dapat mong makita ang output ng code sa Serial Monitor. Dapat mong suriin kung mayroong anumang mga mensahe ng error. Gayundin, dapat mong makita ang mga telegram. Para sa akin ganito ang hitsura nila:

/ FLU5 / xxxxxxxxx_x

0-0: 96.1.4 (50213) 0-0: 96.1.1 (3153414733313030313434363235) // Serial number meter hexadecimal 0-0: 1.0.0 (200831181442S) // Timestamp S: daylight save (summer), W: no pagtitipid ng araw (taglamig) 1-0: 1.8.1 (000016.308 * kWh) // Kabuuang pinakamataas na pagkonsumo ng net 1-0: 1.8.2 (000029.666 * kWh) // Kabuuang off-peak net na pagkonsumo 1-0: 2.8.1 (000138.634 * kWh) // Kabuuang tuktok na iniksyon sa net 1-0: 2.8.2 (000042.415 * kWh) // Kabuuang off-peak net injection 0-0: 96.14.0 (0001) // Tariff 1: rurok, 2: off-peak 1-0: 1.7.0 (00.000 * kW) // Kasalukuyang pagkonsumo 1-0: 2.7.0 (00.553 * kW) // Kasalukuyang iniksyon 1-0: 32.7.0 (235.8 * V) // Phase 1 boltahe 1-0: 52.7.0 (237.0 * V) // Phase 2 boltahe 1-0: 72.7.0 (237.8 * V) // Phase 3 boltahe 1-0: 31.7.0 (001 * A) // Phase 1 kasalukuyang 1-0: 51.7.0 (000 * A) // Phase 2 kasalukuyang 1-0: 71.7.0 (004 * A) // Phase 3 kasalukuyang 0-0: 96.3.10 (1) 0-0: 17.0.0 (999.9 * kW) // Max power 1-0: 31.4.0 (999 * A) // Max kasalukuyang 0-0: 96.13.0 () // Mensahe 0-1: 24.1.0 (003) // iba pang mga aparato sa M-bus 0-1: 96.1.1 (37464C4F32313230313037393338) // Serial number gas mete r hexadecimal 0-1: 24.4.0 (1) 0-1: 24.2.3 (200831181002S) (00005.615 * m3) // Gas timestamp total konsumo! E461 // CRC16 Checkum

Kung may mali, maaari mong suriin kung mayroon kang parehong mga tag at posibleng baguhin mo ang code sa pag-parse ng mga telegram sa pagpapaandar na readTelegram.

Kung gumagana ang lahat maaari mo na ngayong paganahin ang esp8266 mula sa USB charger.

I-install ang IoT ThingSpeak Monitor app sa iyong smartphone, punan ang Channel ID at Basahin ang API Key at tapos ka na!

Inirerekumendang: