Daftar Isi:

Baca Meteran Listrik dan Gas (Belgia/Belanda) dan Unggah ke Thingspeak: 5 Langkah
Baca Meteran Listrik dan Gas (Belgia/Belanda) dan Unggah ke Thingspeak: 5 Langkah

Video: Baca Meteran Listrik dan Gas (Belgia/Belanda) dan Unggah ke Thingspeak: 5 Langkah

Video: Baca Meteran Listrik dan Gas (Belgia/Belanda) dan Unggah ke Thingspeak: 5 Langkah
Video: Ngeri! Bedanya tentara luar negeri dan tentara indonesia ketika latihan 2024, November
Anonim
Baca Meteran Listrik dan Gas (Belgia/Belanda) dan Unggah ke Thingspeak
Baca Meteran Listrik dan Gas (Belgia/Belanda) dan Unggah ke Thingspeak
Baca Meteran Listrik dan Gas (Belgia/Belanda) dan Unggah ke Thingspeak
Baca Meteran Listrik dan Gas (Belgia/Belanda) dan Unggah ke Thingspeak

Jika Anda khawatir tentang konsumsi energi Anda atau hanya sedikit kutu buku, Anda mungkin ingin melihat data dari meteran digital baru Anda yang mewah di ponsel cerdas Anda.

Dalam proyek ini kami akan memperoleh data terkini dari meteran listrik dan gas digital Belgia atau Belanda dan mengunggahnya ke Thingspeak. Data ini mencakup konsumsi dan injeksi daya saat ini dan harian (jika Anda memiliki panel surya), tegangan dan arus, dan konsumsi gas (jika meteran gas digital terhubung ke meteran listrik). Melalui aplikasi, nilai-nilai ini kemudian dapat dibacakan secara real time di ponsel cerdas Anda.

Ini berfungsi untuk pengukur digital Belgia atau Belanda yang mengikuti protokol DSMR (Persyaratan Meter Cerdas Belanda), yang semuanya harus pengukur terbaru. Jika Anda tinggal di tempat lain, sayangnya, meteran Anda kemungkinan akan menggunakan protokol lain. Jadi saya khawatir Instructable ini agak dibatasi secara regional.

Kami akan menggunakan port P1 meter, yang menerima kabel RJ11/RJ12, bahasa sehari-hari dikenal sebagai kabel telepon. Pastikan penginstal meteran mengaktifkan port P1. Misalnya, untuk Fluvius di Belgia ikuti petunjuk ini.

Untuk mengolah data dan mengunggahnya ke internet, kami menggunakan ESP8266 yang merupakan microchip murah dengan built-in wifi. Biayanya hanya sekitar 2 dolar. Selain itu dapat diprogram menggunakan Arduino IDE. Kami menyimpan data di cloud di Thingspeak, yang gratis untuk maksimal empat saluran. Untuk proyek ini kami hanya menggunakan satu saluran. Data kemudian dapat ditampilkan di ponsel cerdas Anda menggunakan aplikasi seperti IoT ThingSpeak.

Bagian:

  • Satu ESP8266, seperti nodemcu v2. Perhatikan bahwa nodemcu v3 terlalu lebar untuk papan tempat memotong roti standar, jadi saya lebih suka v2.
  • Kabel mikro USB ke USB.
  • Pengisi daya USB.
  • Satu transistor NPN BC547b.
  • Dua resistor 10k dan satu resistor 1k.
  • Satu konektor terminal sekrup RJ12.
  • Sebuah papan tempat memotong roti.
  • Kabel jumper.
  • Opsional: satu kapasitor 1nF.

Secara total, ini berharga sekitar 15 EUR di AliExpress atau serupa. Perkiraan memperhitungkan bahwa beberapa komponen seperti resistor, transistor dan kabel, datang dalam jumlah yang jauh lebih besar daripada yang Anda butuhkan untuk proyek ini. Jadi kalau sudah punya component kit akan lebih murah.

Langkah 1: Mengenal ESP8266

Saya memilih NodeMCU v2, karena tidak diperlukan penyolderan dan memiliki koneksi micro USB yang memungkinkan pemrograman mudah. Keuntungan dari NodeMCU v2 dibandingkan NodeMCU v3 adalah cukup kecil untuk muat di papan tempat memotong roti dan meninggalkan lubang kosong di samping untuk membuat koneksi. Jadi lebih baik untuk menghindari NodeMCU v3. Namun, jika Anda lebih suka papan ESP8266 lain, itu juga baik-baik saja.

ESP8266 dapat dengan mudah diprogram menggunakan Arduino IDE. Ada Instructables lain yang menjelaskan ini secara rinci jadi saya akan sangat singkat di sini.

  • Download terlebih dahulu Arduino IDEnya.
  • Dukungan pemasangan kedua untuk papan ESP8266. Dalam menu File - Preferences - Settings tambahkan URL https://arduino.esp8266.com/stable/package_esp8266com_index.json ke Additional Board Manager URLs. Selanjutnya pada menu Tools-Board-Boards Manager install esp8266 by esp8266 community.
  • Ketiga pilih papan yang paling dekat dengan ESP8266 Anda. Dalam kasus saya, saya memilih NodeMCU v1.0 (ESP 12-E Module).
  • Terakhir pilih di bawah Alat - Ukuran Flash, ukuran yang menyertakan SPIFFS, seperti 4M (1M SPIFFS). Dalam proyek ini kami menggunakan SPIFFS (SPI Flash File System) untuk menyimpan nilai energi harian, sehingga tidak hilang jika ESP8266 kehilangan daya dan bahkan ketika diprogram ulang.

Sekarang kami memiliki segalanya untuk memprogram ESP8266! Kami akan membahas kode yang sebenarnya di langkah selanjutnya. Pertama kita akan membuat akun Thingspeak.

Langkah 2: Buat Akun dan Saluran Thingspeak

Buka https://thingspeak.com/ dan buat akun. Setelah Anda masuk, klik tombol Saluran Baru untuk membuat saluran. Pada Channel Setting isikan nama dan deskripsi sesuka anda. Selanjutnya kita beri nama bidang saluran dan aktifkan dengan mengklik kotak centang di sebelah kanan. Jika Anda menggunakan kode saya tidak mengubah bidangnya adalah sebagai berikut:

  • Bidang 1: konsumsi puncak hari ini (kWh)
  • Bidang 2: konsumsi di luar jam sibuk hari ini (kWh)
  • Lapangan 3: injeksi puncak hari ini (kWh)
  • Lapangan 4: injeksi off-peak hari ini (kWh)
  • Bidang 5: konsumsi saat ini (W)
  • Bidang 6: injeksi saat ini (W)
  • Lapangan 7: konsumsi gas hari ini (m3)

Di sini, peak dan off-peak mengacu pada tarif listrik. Pada kolom 1 dan 2 konsumsi mengacu pada konsumsi listrik bersih hari ini: konsumsi listrik hari ini pada periode tarif sejak tengah malam dikurangi injeksi listrik (diproduksi oleh panel surya) hari ini pada periode tarif sejak tengah malam dengan minimum nol. Yang terakhir berarti bahwa jika ada lebih banyak injeksi daripada konsumsi hari ini, nilainya nol. Demikian juga, injeksi di bidang 3 dan 4 mengacu pada injeksi listrik bersih. Bidang 5 dan 6 menunjukkan konsumsi bersih dan injeksi pada saat ini. Terakhir field 7 adalah konsumsi gas sejak tengah malam.

Untuk referensi di masa mendatang, tuliskan ID Saluran, Kunci API Baca dan Kunci API Tulis, yang dapat ditemukan di menu kunci API.

Langkah 3: Membangun Sirkuit Elektronik

Membangun Sirkuit Elektronik
Membangun Sirkuit Elektronik
Membangun Sirkuit Elektronik
Membangun Sirkuit Elektronik

Kami membaca meteran listrik menggunakan port P1, yang menggunakan kabel RJ11 atau RJ12. Perbedaannya adalah bahwa kabel RJ12 memiliki 6 kabel sedangkan RJ11 hanya memiliki 4. Dalam proyek ini kami tidak memberi daya pada ESP8266 dari port P1 jadi kami sebenarnya hanya membutuhkan 4 kabel, jadi RJ11 akan melakukannya.

Saya menggunakan breakout RJ12 yang ditunjukkan pada gambar. Agak lebar dan tidak ada banyak ruang di sekitar port P1 di meteran saya. Pas, tapi ketat. Atau, Anda bisa menggunakan kabel RJ11 atau RJ12 dan melepas header di salah satu ujungnya.

Jika Anda menahan break-out seperti pada gambar, pin diberi nomor dari kanan ke kiri dan memiliki arti sebagai berikut:

  • Pin 1: Catu daya 5V
  • Pin 2: Permintaan Data
  • Pin 3: Data Ground
  • Pin 4: tidak terhubung
  • Pin 5: Jalur data
  • Pin 6: Pembumian listrik

Pin 1 dan Pin 6 dapat digunakan untuk memberi daya pada ESP8266, tetapi saya belum mengujinya. Anda harus menghubungkan Pin 1 ke Vin dari ESP8266, sehingga regulator tegangan internal papan digunakan untuk mengurangi tegangan dari 5V ke 3.3V yang diterima ESP8266. Jadi jangan hubungkan ke pin 3.3V, karena bisa merusak ESP8266. Juga menyalakan dari port P1 dari waktu ke waktu akan menguras baterai meteran digital.

Menyetel pin 2 memberi sinyal tinggi kepada meter untuk mengirim data telegram setiap detik. Data aktual dikirim melalui Pin 5 dengan baud rate 115200 untuk meter digital modern (DSMR 4 dan 5). Sinyal dibalik (rendah adalah 1 dan tinggi adalah 0). Untuk tipe yang lebih lama (DSMR 3 dan di bawahnya) tarifnya adalah 9600 baud. Untuk meteran seperti itu Anda harus mengubah baud rate dalam kode firmware pada langkah berikutnya: ubah baris Serial.begin(115200); dalam pengaturan().

Peran transistor NPN ada dua:

  • Untuk membalikkan sinyal agar ESP8266 dapat memahaminya.
  • Untuk mengubah level logika dari 5V port P1 ke 3.3V yang diharapkan oleh port RX ESP8266.

Jadi buatlah rangkaian elektronik pada papan tempat memotong roti seperti pada diagram. Kapasitor meningkatkan stabilitas, tetapi juga berfungsi tanpanya.

Tahan menghubungkan pin RX sampai Anda memprogram ESP8266 pada langkah berikutnya. Memang, pin RX juga diperlukan untuk berkomunikasi melalui USB antara ESP8266 dan komputer Anda.

Langkah 4: Unggah Kode

Saya telah membuat kodenya tersedia di GitHub, itu hanya satu file: P1-Meter-Reader.ino. Cukup unduh dan buka di Arduino IDE. Atau Anda dapat memilih File - New dan cukup salin/tempel kodenya.

Ada beberapa info yang harus Anda isi di awal file: nama dan kata sandi WLAN yang akan digunakan, dan Channel ID dan Write API Key dari ThingSpeak Channel.

Kode melakukan hal berikut:

  • Membaca telegram data dari meteran setiap UPDATE_INTERVAL (dalam milidetik). Nilai default adalah setiap 10 detik. Biasanya setiap detik ada telegram data dari meteran, tetapi pengaturan frekuensi ke tinggi akan membebani ESP8266 sehingga tidak dapat menjalankan server web lagi.
  • Mengunggah data listrik ke saluran Thingspeak setiap SEND_INTERVAL (dalam milidetik). Nilai default adalah setiap menit. Untuk memutuskan tentang frekuensi ini, pertimbangkan bahwa pengiriman data membutuhkan waktu (biasanya beberapa detik) dan ada batasan frekuensi pembaruan di Thingspeak untuk akun gratis. Ini adalah sekitar 8200 pesan per hari sehingga frekuensi maksimal akan menjadi sekitar sekali setiap 10 detik jika Anda tidak menggunakan Thingspeak untuk hal lain.
  • Unggah data gas saat berubah. Biasanya, meter memperbarui data konsumsi gas hanya setiap 4 menit atau lebih.
  • Meteran melacak total konsumsi dan nilai injeksi sejak awal. Jadi untuk mendapatkan konsumsi dan injeksi harian, kode menyimpan nilai total pada tengah malam setiap hari. Kemudian nilai-nilai ini dikurangkan dari nilai total saat ini. Nilai di tengah malam disimpan dalam SPIFFS (SPI Flash File System), yang tetap ada jika ESP8266 kehilangan daya atau bahkan saat diprogram ulang.
  • ESP8266 menjalankan server web mini. Jika Anda membuka alamat IP di browser Anda, Anda mendapatkan gambaran umum tentang semua nilai listrik dan gas saat ini. Ini dari telegram terbaru dan termasuk info yang tidak diunggah ke Thingspeak, seperti tegangan dan arus per fase. Pengaturan default adalah bahwa alamat IP ditentukan secara dinamis oleh router Anda. Tetapi lebih nyaman menggunakan alamat IP statis, yang selalu sama. Dalam hal ini Anda harus mengisi staticIP, gateway, dns dan subnet dalam kode dan batalkan komentar pada baris WiFi.config(staticIP, dns, gateway, subnet); dalam fungsi connectWifi().

Setelah Anda melakukan perubahan ini, Anda siap untuk mengunggah firmware ke ESP8266. Hubungkan ESP8266 melalui kabel USB ke komputer Anda dan tekan ikon dengan panah di Arduino IDE. Jika Anda tidak berhasil terhubung ke ESP8266 coba ubah port COM di bawah menu Tools - Port. Jika masih tidak bisa kemungkinan anda harus menginstall driver untuk USB virtual COM port secara manual.

Langkah 5: Pengujian

Setelah mengunggah firmware, cabut USB dan sambungkan kabel RX dari ESP8266. Ingat, kami membutuhkan saluran RX dari ESP8266 untuk mengunggah firmware sehingga kami tidak menghubungkannya sebelumnya. Sekarang pasang breakout RJ12 di meteran digital dan sambungkan kembali ESP8266 ke komputer Anda.

Di Arduino IDE, buka Serial Monitor melalui menu Tools dan pastikan sudah diatur ke 115200 baud. Jika Anda harus mengubah baud rate, mungkin Anda perlu menutup dan membuka kembali Serial Monitor sebelum berfungsi.

Sekarang Anda akan melihat output kode di Serial Monitor. Anda harus memeriksa apakah ada pesan kesalahan. Juga, Anda harus dapat melihat telegram. Bagi saya mereka terlihat seperti ini:

/FLU5\xxxxxxxxx_x

0-0:96.1.4(50213) 0-0:96.1.1(3153414733313030313434363235) // Nomor seri meteran heksadesimal 0-0:1.0.0(200831181442S) // Stempel waktu S: musim panas (musim panas), W: tidak penghematan siang hari (musim dingin) 1-0:1.8.1(000016.308*kWh) // Total konsumsi bersih puncak 1-0:1.8.2(000029.666*kWh) // Total konsumsi bersih di luar jam sibuk 1-0:2.8.1 (000138.634*kWh) // Total injeksi bersih puncak 1-0:2.8.2(000042.415*kWh) // Total injeksi bersih di luar puncak 0-0:96.14.0(0001) // Tarif 1: puncak, 2: off-peak 1-0:1.7.0(00.000*kW) // Konsumsi saat ini 1-0:2.7.0(00.553*kW) // Injeksi saat ini 1-0:32.7.0(235.8*V) // Fase 1 tegangan 1-0:52.7.0(237.0*V) // Tegangan fase 2 1-0:72.7.0(237.8*V) // Tegangan fase 3 1-0:31.7.0(001*A) // Arus fase 1 1-0:51.7.0(000*A) // Arus fase 2 1-0:71.7.0(004*A) // Arus fase 3 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() // Pesan 0-1:24.1.0(003) // perangkat lain di M-bus 0-1:96.1.1(37464C4F32313230313037393338) // Nomor seri gas mete r heksadesimal 0-1:24.4.0(1) 0-1:24.2.3(200831181002S)(00005.615*m3) // Konsumsi total cap waktu gas !E461 // CRC16 checksum

Jika ada yang salah, Anda dapat memeriksa apakah Anda memiliki tag yang sama dan Anda mungkin harus mengubah kode penguraian telegram dalam fungsi readTelegram.

Jika semuanya berfungsi, Anda sekarang dapat menyalakan esp8266 dari pengisi daya USB.

Instal aplikasi IoT ThingSpeak Monitor di smartphone Anda, isi Channel ID dan Baca API Key dan selesai!

Direkomendasikan: