Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Pantau Konsumsi Energi dengan Modbus, MKR WiFi 1010 & RS485

Komponen dan perlengkapan

Pantau Konsumsi Energi dengan Modbus, MKR WiFi 1010 & RS485
Arduino MKR WiFi 1010
× 1
Pantau Konsumsi Energi dengan Modbus, MKR WiFi 1010 & RS485
Arduino MKR 485 Shield
× 1
Pantau Konsumsi Energi dengan Modbus, MKR WiFi 1010 & RS485
Kabel USB-A ke Micro-USB
× 1
USB Power Supply
Sumber daya apa pun yang kompatibel. MKR485 shield memiliki konverter buck 7-24V bawaan.
× 1
Kabel pasangan tunggal terpintal terlindung
× 1

Alat dan mesin yang diperlukan

Pantau Konsumsi Energi dengan Modbus, MKR WiFi 1010 & RS485
Digilent Mastech MS8217 Autorange Digital Multimeter
Gunting Listrik
Obeng pipih kecil
untuk terminal MKR485
Obeng philips ukuran sedang

Aplikasi dan layanan online

Pantau Konsumsi Energi dengan Modbus, MKR WiFi 1010 & RS485
Home Assistant
Pantau Konsumsi Energi dengan Modbus, MKR WiFi 1010 & RS485
Arduino Web Editor
Pantau Konsumsi Energi dengan Modbus, MKR WiFi 1010 & RS485
MQTT

Tentang proyek ini

Jika Anda benar-benar ingin membuat rumah Anda lebih cerdas, Anda mungkin akan mulai dari tagihan bulanan Anda (misalnya energi, gas, dll.). Seperti yang dikatakan, Baik untuk Bumi, Dompet, dan Garis Bawah. Perangkat keras open source adalah jalan kami untuk mencapai keberlanjutan di lingkungan rumah! Ide ini membawa kami untuk membangun solusi sederhana dan aman, mudah diintegrasikan dengan perangkat lunak otomatisasi rumah apa pun karena ia mengekspos data melalui MQTT (dalam kasus ini kami akan menunjukkan bagaimana mengintegrasikannya ke Home Assistant).

Ringkasan

Untuk mengukur konsumsi energi listrik, kami memilih untuk menggunakan Finder Energy Meter, karena dirancang untuk penggunaan rel DIN dan cocok dengan lemari utama rumah kami. Hal yang keren tentang produk ini adalah ia memiliki antarmuka RS485 Modbus, protokol komunikasi standar industri yang membuat berbicara dengan Arduino sangat mudah. Bahkan, Arduino telah merilis shield resmi, MKR485 dan dua library untuk mendekode protokol. Sebagai papan utama, kami memilih Arduino MKR WiFi 1010, karena berbagi bentuk MKR dan memiliki konektivitas WiFi.

Setup

Peringatan! Periksa peraturan negara Anda tentang menangani sistem listrik rumah Anda dan berhati-hati karena bisa berbahaya! Jika Anda tidak tahu bagaimana, panggil listrik. Langkah pertama adalah memasang meter di lemari listrik Anda. Untuk memastikan Anda bekerja dalam lingkungan yang aman, matikan daya dari terminal listrik sebelum sistem Anda dan periksa lagi dengan multimeter bahwa tidak ada tegangan di antara terminal.

Kemudian tempatkan meter energi di dalam lemari Anda dan hubungkan kabel live dan neutral dari breaker utama ke input meter, ingat untuk menggunakan konvensi warna (biru untuk neutral dan coklat/hitam/abu-abu untuk live di EU). Output harus terhubung ke sisa sistem.

Pantau Konsumsi Energi dengan Modbus, MKR WiFi 1010 & RS485

Selesai? Saatnya memasang koneksi RS485! Kami akan menggunakan kabel pasangan tunggal terpintal dengan ground, biasanya digunakan untuk garis telepon. Dengan kabel ini Anda dapat mentransmisikan jarak jauh (1,2 km). Namun kami hanya menggunakan kabel yang cukup panjang untuk keluar dari lemari dan menempatkan Arduino di tempat yang dapat diakses.

Pantau Konsumsi Energi dengan Modbus, MKR WiFi 1010 & RS485

Antarmuka RS485 menamai terminalnya A, B dan COM.

Karena MKR shield juga mendukung Full Duplex, Anda akan melihat dua terminal lain, Y dan Z. Di sini kita akan memasang ujung kabel lain, karena kita tahu dari datasheet bahwa komunikasi duplex setengah hanya terjadi pada terminal Y dan Z. Terminal COM harus dihubungkan ke ISOGND. Karena kita menggunakan koneksi duplex setengah dan karena kabelingnya peer-to-peer, kita harus mengatur saklar pada MKR485 shield agar sesuai dengan pengaturan kami: kami mengatur HALF (2 ke OFF) dan terminasi pada Y-Z (3 ke ON); yang pertama tidak masalah. Terminasi adalah resistensi yang menghubungkan dua terminal data, untuk meredam gangguan.

Pantau Konsumsi Energi dengan Modbus, MKR WiFi 1010 & RS485

Itu saja. Sekarang Anda dapat menutup lemari dan fokus pada sisi perangkat lunak!

Perangkat Lunak

Nyalakan komputer Anda dan buka IDE Anda. Anda dapat menggunakan Arduino IDE atau Arduino Create Editor. Kode memenuhi permintaan berikut:

Modbus adalah protokol open source untuk sensor dan mesin industri. Untuk membuat Arduino berbicara Modbus, kita akan menggunakan Arduino Modbus library. Library ini mengemas semua handler dan membuat menghubungkan perangkat Modbus apa pun sangat cepat. Karena kita akan membaca register, mengikuti datasheet meter, kita dapat menemukan semua informasi yang kita butuhkan seperti kode fungsi, alamat register dan ukuran register dalam kata. Namun untuk membuatnya lebih jelas, biarkan kami menjelaskan cara kerja Modbus:

Pesan Modbus mengikuti struktur sederhana:

01 03 04 00 16 00 02 25 C7

0x01 adalah Alamat Perangkat

0x03 adalah Kode Fungsi yang memberi tahu perangkat apakah kita ingin membaca atau menulis data *dalam kasus ini membaca holding registers

0x04 untuk Byte Count00 16 - Kami mengirim 4 byte alamat register (00 16) yang memberi tahu perangkat apa yang ingin kita baca

00 02 - tlalu ukuran register (00 02) dalam kata (setiap kata panjangnya 2 byte)

4 byte terakhir adalah kode CRC. Kode ini dihasilkan dari fungsi matematika atas byte sebelumnya, ini memastikan pesan telah diterima dengan benar.

Di Arduino semua hal ini ditangani dalam kondisi if :

// Created by Alberto Perro - Officine Innesto // // Read integer from a modbus device holding registers float readCurrent(){ float ampere = 0.; //next command format the request and send it over RS485 if (!ModbusRTUClient.requestFrom(0x01, HOLDING_REGISTERS, 0x0016, 2)) { //Error Handling Serial.print("failed to read voltage! "); Serial.println(ModbusRTUClient.lastError()); } else { uint16_t word1 = ModbusRTUClient.read(); //reading MSW from buffer uint16_t word2 = ModbusRTUClient.read(); //reading LSW from buffer int32_t milliamp = word1 << 16 | word2; //join words to retreive int ampere = milliamp/1000.0; //convert to ampere } return ampere;} 

Di bagian else kita memiliki response handler.

Karena register ini panjangnya dua kata, kita harus menggabungkannya dengan matematika biner. Kami membaca kata dari buffer dan menyimpannya dalam unsigned integer 16-bit (2 byte atau kata), lalu kita menggabungkannya dalam signed integer 32-bit dengan bitshifting kata pertama ke kiri dan menerapkan OR atas kata kedua. Dengan cara ini kita mendapatkan pengukuran arus dalam mA, membaginya dengan 1000 kita mendapatkan arus dalam ampere.

Proses yang sama disesuaikan untuk semua yang ingin kita baca.

Sisa kode didedikasikan untuk menangani jaringan MQTT dan WiFi.

Integrasi Home Assistant

Menambahkan meter ke Home Assistant cukup sederhana. Asumsi Anda memiliki MQTT broker yang terkonfigurasi (Di sini panduan), yang perlu Anda lakukan adalah menambahkan definisi baru di bawah file configuration.yaml.

sensor: - platform: mqtt name: "Main Voltage" state_topic: "energy/main/voltage" unit_of_measurement: "V" 

Di sini Anda harus memasukkan nama pengukuran, topik MQTT untuk dibaca dan satuan ukuran dari kuantitas. Simpan file, periksa konfigurasi dan muat ulang Home Assistant, sekarang pengukuran akan muncul di halaman utama.

Pantau Konsumsi Energi dengan Modbus, MKR WiFi 1010 & RS485

Home Assistant akan menangani pembuatan grafik dan mengotomatisasi proses yang dipicu oleh pembacaan Anda. Tutorial ini telah selesai, sekarang terserah Anda untuk menambahkan fitur dan menyesuaikannya untuk keperluan Anda sendiri!

Kode

Modbus RTU to MQTT bridge for Finder

Sketch ini menyediakan jembatan lengkap antara meter energi finder dan mqtt. Dikembangkan untuk memantau biaya dan penggunaan listrik di Casa Jasmina.

Proses manufaktur

  1. Membuat Robot Streaming Video yang Dikontrol Internet dengan Arduino & Raspberry Pi
  2. Buat Sistem Ambilight Monitor Menakjubkan dengan Arduino
  3. Buat Pemantau Energi & Pencatat Data Arduino yang Andalkan – Panduan Langkah demi Langkah
  4. Buat Animasi LCD dan Game Menarik dengan Arduino UNO
  5. Buat Voltmeter Cerdas dengan Arduino & Smartphone – Proyek DIY Mudah
  6. Pemantau Detak Jantung IoT Real-Time dengan Arduino & MAX30100
  7. Arduino Pemantau Suhu & Jam Real-Time dengan Layar TFT 3.2”
  8. Arduino Uno WiFi Web Server: Nyalakan/Matikan LED Melalui Browser
  9. Arduino UNO & WiFi Shield: Tampilan Suhu Real-Time di Web melalui Serial
  10. Memahami Energi Kinetik dan Potensial: Bentuk, Rumus, dan Contoh Sehari-hari