Isi kandungan:

Baca Meteran Elektrik dan Gas (Belgian / Belanda) dan Muat Naik ke Thingspeak: 5 Langkah
Baca Meteran Elektrik dan Gas (Belgian / Belanda) dan Muat Naik ke Thingspeak: 5 Langkah

Video: Baca Meteran Elektrik dan Gas (Belgian / Belanda) dan Muat Naik ke Thingspeak: 5 Langkah

Video: Baca Meteran Elektrik dan Gas (Belgian / Belanda) dan Muat Naik ke Thingspeak: 5 Langkah
Video: Tiada Siapa Peduli Lagi! ~ Rumah Terbiar Peniaga Barangan Antik Suci 2024, November
Anonim
Baca Meteran Elektrik dan Gas (Belgian / Belanda) dan Muat Naik ke Thingspeak
Baca Meteran Elektrik dan Gas (Belgian / Belanda) dan Muat Naik ke Thingspeak
Baca Meteran Elektrik dan Gas (Belgian / Belanda) dan Muat Naik ke Thingspeak
Baca Meteran Elektrik dan Gas (Belgian / Belanda) dan Muat Naik ke Thingspeak

Sekiranya anda bimbang tentang penggunaan tenaga anda atau hanya sebilangan kutu buku, anda mungkin ingin melihat data dari meter digital baru anda yang mewah di telefon pintar anda.

Dalam projek ini, kami akan memperoleh data terkini dari meter elektrik dan gas digital Belgia atau Belanda dan memuat naiknya ke Thingspeak. Data ini merangkumi penggunaan dan suntikan kuasa semasa dan harian (jika anda mempunyai panel solar), voltan dan arus, dan penggunaan gas (jika meter gas digital disambungkan ke meter elektrik). Melalui aplikasi, nilai-nilai ini kemudian dapat dibaca dalam masa nyata pada telefon pintar anda.

Ia berfungsi untuk meter digital Belgia atau Belanda yang mengikuti protokol DSMR (Keperluan Meter Pintar Belanda), yang semestinya semua meter baru-baru ini. Sekiranya anda tinggal di tempat lain, malangnya, meter anda mungkin akan menggunakan protokol lain. Oleh itu, saya bimbang Instructable ini sedikit terhad di rantau ini.

Kami akan menggunakan port P1 meter, yang menerima kabel RJ11 / RJ12, yang dikenali sebagai kabel telefon. Pastikan pemasang meter mengaktifkan port P1. Contohnya, untuk Fluvius di Belgium, ikuti arahan ini.

Untuk memproses data dan memuat naik ke internet, kami menggunakan ESP8266, yang merupakan microchip murah dengan wifi terpasang. Harganya cuma 2 dolar. Lebih-lebih lagi ia dapat diprogramkan menggunakan Arduino IDE. Kami menyimpan data di cloud di Thingspeak, yang percuma untuk maksimum empat saluran. Untuk projek ini kami hanya menggunakan satu saluran. Data kemudian dapat dipaparkan di telefon pintar anda menggunakan aplikasi seperti IoT ThingSpeak.

Bahagian:

  • Satu ESP8266, seperti nodemcu v2. Perhatikan bahawa nodemcu v3 terlalu luas untuk papan roti standard, jadi saya lebih suka v2.
  • Kabel USB mikro ke USB.
  • Pengecas USB.
  • Satu transistor BC547b NPN.
  • Dua perintang 10k dan satu perintang 1k.
  • Satu penyambung terminal skru RJ12.
  • Papan roti.
  • Wayar pelompat.
  • Pilihan: satu kapasitor 1nF.

Secara keseluruhan, ini berharga 15 EUR untuk AliExpress atau yang serupa. Anggaran itu mengambil kira bahawa beberapa komponen seperti perintang, transistor dan wayar, terdapat dalam jumlah yang jauh lebih besar daripada yang anda perlukan untuk projek ini. Oleh itu, jika anda sudah mempunyai kit komponen, ia akan lebih murah.

Langkah 1: Mengenal ESP8266

Saya memilih NodeMCU v2, kerana tidak diperlukan pematerian dan ia mempunyai sambungan USB mikro yang membolehkan pengaturcaraan mudah. Kelebihan NodeMCU v2 berbanding NodeMCU v3 adalah bahawa ia cukup kecil untuk dipasang di papan roti dan meninggalkan lubang bebas di sisi untuk membuat sambungan. Oleh itu, lebih baik mengelakkan NodeMCU v3. Walau bagaimanapun, jika anda lebih suka papan ESP8266 lain yang juga baik.

ESP8266 dapat diprogram dengan mudah menggunakan Arduino IDE. Ada Instruksional lain yang menerangkannya secara terperinci jadi saya akan sangat ringkas di sini.

  • Muat turun pertama IDE Arduino.
  • Sokongan pemasangan kedua untuk papan ESP8266. Dalam menu Fail - Keutamaan - Tetapan tambahkan URL https://arduino.esp8266.com/stable/package_esp8266com_index.json ke URL Pengurus Papan Tambahan. Selanjutnya dalam menu Tools - Board - Boards Manager pasang esp8266 oleh esp8266 komuniti.
  • Ketiga pilih papan yang paling dekat dengan ESP8266 anda. Dalam kes saya, saya memilih NodeMCU v1.0 (Modul ESP 12-E).
  • Akhirnya pilih di bawah Tools - Flash Size, ukuran yang merangkumi SPIFFS, seperti 4M (1M SPIFFS). Dalam projek ini kami menggunakan SPIFFS (SPI Flash File System) untuk menyimpan nilai tenaga harian, agar tidak hilang jika ESP8266 kehilangan kuasa dan bahkan ketika diprogramkan semula.

Kini kami mempunyai segala-galanya untuk memprogram ESP8266! Kami akan membincangkan kod sebenar pada langkah seterusnya. Mula-mula kita akan membuat akaun Thingspeak.

Langkah 2: Buat Akaun dan Saluran Thingspeak

Pergi ke https://thingspeak.com/ dan buat akaun. Setelah anda log masuk, klik butang Saluran Baru untuk membuat saluran. Dalam Saluran Tetapan isikan nama dan keterangan yang anda mahu. Seterusnya kami beri nama bidang saluran dan aktifkan dengan mengklik kotak pilihan di sebelah kanan. Sekiranya anda menggunakan kod saya tidak berubah medan adalah seperti berikut:

  • Bidang 1: penggunaan puncak hari ini (kWh)
  • Medan 2: penggunaan luar puncak hari ini (kWh)
  • Medan 3: suntikan puncak hari ini (kWh)
  • Medan 4: suntikan luar puncak hari ini (kWh)
  • Medan 5: penggunaan semasa (W)
  • Medan 6: suntikan semasa (W)
  • Medan 7: penggunaan gas hari ini (m3)

Di sini, puncak dan luar puncak merujuk kepada tarif elektrik. Dalam bidang 1 dan 2 penggunaan merujuk kepada penggunaan elektrik bersih hari ini: penggunaan elektrik hari ini dalam tempoh tarif sejak tengah malam tolak suntikan elektrik (dihasilkan oleh panel solar) hari ini dalam tempoh tarif sejak tengah malam dengan minimum sifar. Yang terakhir ini bermaksud bahawa jika terdapat lebih banyak suntikan daripada penggunaan hari ini nilainya adalah sifar. Begitu juga, suntikan di medan 3 dan 4 merujuk kepada suntikan elektrik yang bersih. Medan 5 dan 6 menunjukkan penggunaan dan suntikan bersih pada masa ini. Akhirnya medan 7 adalah penggunaan gas sejak tengah malam.

Untuk rujukan di masa depan, tuliskan ID Saluran, Kunci API Baca dan Kunci API Tulis, yang boleh didapati di kunci API menu.

Langkah 3: Membina Litar Elektronik

Membina Litar Elektronik
Membina Litar Elektronik
Membina Litar Elektronik
Membina Litar Elektronik

Kami membaca meter elektrik menggunakan port P1, yang mengambil kabel RJ11 atau RJ12. Perbezaannya ialah kabel RJ12 mempunyai 6 wayar sementara RJ11 hanya mempunyai 4 wayar. Dalam projek ini kita tidak menghidupkan ESP8266 dari port P1 jadi kita sebenarnya hanya memerlukan 4 wayar, jadi RJ11 akan melakukannya.

Saya menggunakan pelarian RJ12 yang ditunjukkan dalam gambar. Ia agak lebar dan tidak banyak ruang di sekitar port P1 di meter saya. Ia sesuai, tetapi ketat. Sebagai alternatif, anda hanya boleh menggunakan kabel RJ11 atau RJ12 dan menanggalkan kepala pada satu hujung.

Sekiranya anda melakukan pemecahan seperti dalam gambar, pin diberi nombor dari kanan ke kiri dan mempunyai makna berikut:

  • Pin 1: Bekalan kuasa 5V
  • Pin 2: Permintaan Data
  • Pin 3: Tanah Data
  • Pin 4: tidak bersambung
  • Pin 5: Garis data
  • Pin 6: Ground power

Pin 1 dan Pin 6 dapat digunakan untuk menghidupkan ESP8266, tetapi saya belum mengujinya. Anda harus menyambungkan Pin 1 ke Vin dari ESP8266, jadi pengatur voltan dalaman papan digunakan untuk mengurangkan voltan dari 5V ke 3.3V yang diterima oleh ESP8266. Oleh itu, jangan sambungkannya ke pin 3.3V, kerana ia mungkin merosakkan ESP8266. Kuasa dari port P1 juga akan menghabiskan bateri meter digital dari masa ke masa.

Menetapkan pin 2 tinggi memberi isyarat kepada meter untuk menghantar telegram data setiap saat. Data sebenar adalah menghantar Pin 5 dengan kadar baud 115200 untuk meter digital moden (DSMR 4 dan 5). Isyarat dibalikkan (rendah adalah 1 dan tinggi adalah 0). Untuk jenis yang lebih tua (DSMR 3 ke bawah) kadarnya adalah 9600 baud. Untuk meter seperti itu, anda perlu mengubah kadar baud dalam kod firmware langkah seterusnya: menukar garis Serial.begin (115200); dalam persediaan ().

Peranan transistor NPN adalah dua kali ganda:

  • Untuk membalikkan isyarat supaya ESP8266 dapat memahaminya.
  • Untuk menukar tahap logik dari 5V port P1 ke 3.3V yang diharapkan oleh port RX ESP8266.

Oleh itu, buat litar elektronik di papan roti seperti dalam rajah. Kapasitor meningkatkan kestabilan, tetapi ia juga berfungsi tanpa.

Tahan sambung pin RX sehingga anda telah memprogramkan ESP8266 pada langkah seterusnya. Sememangnya, pin RX juga diperlukan untuk berkomunikasi melalui USB antara ESP8266 dan komputer anda.

Langkah 4: Muat naik Kod

Saya telah menyediakan kod di GitHub, hanya satu fail: P1-Meter-Reader.ino. Muat turun sahaja dan buka di Arduino IDE. Atau anda boleh memilih Fail - Baru dan hanya salin / tampal kodnya.

Terdapat beberapa maklumat yang harus anda isi di awal fail: nama dan kata laluan WLAN yang akan digunakan, dan ID Saluran dan Kunci API Tulis Saluran ThingSpeak.

Kod tersebut melakukan perkara berikut:

  • Membaca telegram data dari meter setiap UPDATE_INTERVAL (dalam milisaat). Nilai lalai adalah setiap 10 saat. Biasanya, terdapat telegram data dari meter setiap detik, tetapi menetapkan frekuensi ke tinggi akan membebani ESP8266 sehingga tidak dapat menjalankan pelayan web lagi.
  • Muat naik data elektrik ke saluran Thingspeak setiap SEND_INTERVAL (dalam milisaat). Nilai lalai adalah setiap minit. Untuk menentukan frekuensi ini, ambil kira bahawa menghantar data memerlukan sedikit masa (biasanya beberapa saat) dan bahawa terdapat had untuk frekuensi kemas kini di Thingspeak untuk akaun percuma. Ini adalah kira-kira 8200 mesej setiap hari sehingga frekuensi maksimum adalah sekitar 10 saat sekali jika anda tidak menggunakan Thingspeak untuk perkara lain.
  • Memuat naik data gas apabila ia berubah. Biasanya, meter mengemas kini data penggunaan gas setiap 4 minit atau lebih.
  • Meteran memantau jumlah penggunaan dan nilai suntikan sejak awal. Oleh itu, untuk mendapatkan penggunaan dan suntikan harian, kod tersebut menjimatkan jumlah nilai pada tengah malam setiap hari. Kemudian nilai-nilai ini dikurangkan dari jumlah nilai semasa. Nilai pada tengah malam disimpan dalam SPIFFS (SPI Flash File System), yang berterusan jika ESP8266 kehilangan kuasa atau bahkan ketika diprogramkan semula.
  • ESP8266 menjalankan pelayan web mini. Sekiranya anda membuka alamat IP di penyemak imbas anda, anda mendapat gambaran keseluruhan semua nilai elektrik dan gas semasa. Ini adalah dari telegram terbaru dan termasuk maklumat yang tidak dimuat naik ke Thingspeak, seperti voltan dan arus setiap fasa. Tetapan lalai adalah bahawa alamat IP ditentukan secara dinamik oleh penghala anda. Tetapi lebih senang menggunakan alamat IP statik, yang selalu sama. Dalam kes ini, anda perlu mengisi staticIP, gateway, dns dan subnet dalam kod dan melepaskan baris WiFi.config (staticIP, dns, gateway, subnet); dalam fungsi connectWifi ().

Selepas anda membuat perubahan ini, anda bersedia memuat naik firmware ke ESP8266. Sambungkan ESP8266 melalui kabel USB ke komputer anda dan tekan ikon dengan anak panah di Arduino IDE. Sekiranya anda tidak berjaya menyambung ke ESP8266 cuba ubah port COM di bawah menu Tools - Port. Sekiranya masih tidak berfungsi, mungkin anda perlu memasang pemacu untuk port COM maya USB secara manual.

Langkah 5: Menguji

Selepas memuat naik firmware, cabut palam USB dan sambungkan wayar RX ESP8266. Ingat, kami memerlukan saluran RX ESP8266 untuk memuat naik firmware sehingga kami tidak menyambungkannya sebelumnya. Sekarang pasangkan pelarian RJ12 dalam meter digital dan sambungkan semula ESP8266 ke komputer anda.

Di Arduino IDE, buka Monitor Serial melalui menu Tools dan pastikan ia ditetapkan ke 115200 baud. Sekiranya anda perlu mengubah kadar baud, mungkin anda perlu menutup dan membuka semula Monitor Serial semula sebelum berfungsi.

Sekarang anda harus melihat output kod di Serial Monitor. Anda harus memeriksa sama ada terdapat mesej ralat. Anda juga boleh melihat telegram. Bagi saya mereka kelihatan seperti ini:

/ FLU5 / xxxxxxxxx_x

0-0: 96.1.4 (50213) 0-0: 96.1.1 (3153414733313030313434363235) // Meter nombor siri heksadesimal 0-0: 1.0.0 (200831181442S) // Cap Waktu S: penjimatan siang (musim panas), W: tidak penjimatan siang (musim sejuk) 1-0: 1.8.1 (000016.308 * kWh) // Jumlah penggunaan bersih puncak 1-0: 1.8.2 (000029.666 * kWh) // Jumlah penggunaan bersih di luar puncak 1-0: 2.8.1 (000138.634 * kWh) // Jumlah suntikan bersih puncak 1-0: 2.8.2 (000042.415 * kWh) // Jumlah suntikan bersih di luar puncak 0-0: 96.14.0 (0001) // Tarif 1: puncak, 2: off-peak 1-0: 1.7.0 (00.000 * kW) // Penggunaan semasa 1-0: 2.7.0 (00.553 * kW) // Suntikan semasa 1-0: 32.7.0 (235.8 * V) // Fasa 1 voltan 1-0: 52.7.0 (237.0 * V) // Fasa 2 voltan 1-0: 72.7.0 (237.8 * V) // Fasa 3 voltan 1-0: 31.7.0 (001 * A) // Fasa 1 semasa 1-0: 51.7.0 (000 * A) // Fasa 2 semasa 1-0: 71.7.0 (004 * A) // Fasa 3 semasa 0-0: 96.3.10 (1) 0-0: 17.0.0 (999.9 * kW) // Daya maksimum 1-0: 31.4.0 (999 * A) // Arus maksimum 0-0: 96.13.0 () // Mesej 0-1: 24.1.0 (003) // peranti lain di M-bus 0-1: 96.1.1 (37464C4F32313230313037393338) // Mete gas nombor siri r heksadesimal 0-1: 24.4.0 (1) 0-1: 24.2.3 (200831181002S) (00005.615 * m3) // Jumlah penggunaan cap masa gas! E461 // CRC16 checksum

Sekiranya terdapat sesuatu yang salah, anda boleh memeriksa sama ada anda mempunyai tag yang sama dan anda mungkin perlu menukar kod yang menguraikan telegram dalam fungsi readTelegram.

Sekiranya semuanya berfungsi, anda kini boleh menghidupkan esp8266 dari pengecas USB.

Pasang aplikasi IoT ThingSpeak Monitor pada telefon pintar anda, isikan Saluran ID dan Baca API Key dan selesai!

Disyorkan: