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

Pantau Tagihan Energi Anda melalui Modbus, MKR WiFi 1010 dan RS485

Komponen dan persediaan

Arduino MKR WiFi 1010
× 1
Arduino MKR 485 Shield
× 1
Kabel USB-A ke Micro-USB
× 1
Suplai Daya USB
Semua catu daya yang kompatibel. Pelindung MKR485 memiliki konverter buck 7-24V bawaan.
× 1
Kabel terlindung pasangan tunggal terpilin
× 1

Alat dan mesin yang diperlukan

Digilent Mastech MS8217 Autorange Digital Multimeter
Gunting Listrik
Oeng pipih kecil
untuk terminal MKR485
Obeng philips ukuran sedang

Aplikasi dan layanan online

Asisten Rumah
Editor Web Arduino
MQTT

Tentang proyek ini

Jika Anda benar-benar ingin membuat rumah Anda lebih pintar, Anda mungkin ingin mulai dari tagihan bulanan Anda (yaitu energi, gas, dll...). Seperti yang dikatakan beberapa orang, Baik untuk Planet, Dompet, dan Intinya . Perangkat keras sumber terbuka adalah cara kami untuk mencapai keberlanjutan di lingkungan rumah! Ide ini membawa kami untuk membangun solusi yang sederhana dan aman, mudah diintegrasikan dengan perangkat lunak otomatisasi rumah apa pun karena perangkat ini memaparkan data melalui MQTT (dalam kasus kami, kami akan menunjukkan cara mengintegrasikannya ke Asisten Rumah).

Ikhtisar

Untuk mengukur konsumsi energi listrik, kami memilih untuk menggunakan Finder Energy Meter, karena dirancang untuk penggunaan DIN rail dan sangat pas di lemari utama rumah kami. Yang keren dari produk ini adalah memiliki Modbus RS485 antarmuka, protokol komunikasi standar industri yang membuat berbicara dengan Arduino sangat mudah. Faktanya, Arduino telah merilis perisai resmi, MKR485 dan dua perpustakaan untuk memecahkan kode protokol. Sebagai papan utama, kami memilih Arduino MKR WiFi 1010, karena berbagi faktor bentuk MKR dan memiliki konektivitas WiFi.

Siapkan

Peringatan! Periksa peraturan negara Anda tentang menangani sistem kelistrikan rumah Anda dan berhati-hatilah karena dapat mematikan! Jika Anda tidak tahu caranya, panggil tukang listrik. Langkah pertama adalah memasang meteran di kabinet listrik Anda. Untuk memastikan Anda bekerja di lingkungan yang aman, matikan daya dari terminal listrik sebelum sistem Anda dan periksa ulang dengan multimeter bahwa tidak ada tegangan antara terminal .

Kemudian letakkan pengukur energi di dalam kabinet Anda dan hubungkan kabel hidup dan netral dari pemutus utama ke input pengukur, ingatlah untuk menggunakan konvensi warna (biru untuk netral dan coklat/hitam/abu-abu untuk siaran langsung di UE). Outputnya harus terhubung ke seluruh sistem.

Selesai? Saatnya memasang koneksi RS485! Kami akan menggunakan kabel twisted single pair dengan ground, biasanya digunakan untuk saluran telepon. Dengan kabel ini Anda dapat mentransmisikan jarak jauh (1,2 km). Namun kami hanya menggunakan kabel yang cukup panjang untuk keluar dari kabinet dan meletakkan arduino di tempat yang mudah dijangkau.

Antarmuka RS485 menamai terminalnya A, B dan COM.

Karena pelindung MKR juga mendukung Dupleks Penuh, Anda akan melihat dua terminal lain, Y dan Z. Di sini kita akan memasang ujung kabel yang lain, karena kita tahu dari lembar data bahwa komunikasi setengah dupleks hanya terjadi pada Y dan Z terminal. Terminal COM harus terhubung ke ISOGND. Karena kami menggunakan koneksi setengah dupleks dan karena kabelnya peer-to-peer, kami harus mengatur sakelar pada pelindung MKR485 agar sesuai dengan pengaturan kami:kami menyetel HALF (2 ke OFF) dan penghentian pada YZ (3 ke AKTIF); yang pertama tidak masalah. Terminasi adalah resistansi yang menghubungkan dua terminal data, untuk meredam interferensi.

Ini dia. Sekarang Anda dapat menutup kabinet dan fokus pada sisi perangkat lunak!

Perangkat Lunak

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

  • Komunikasi modbus,
  • Pengelolaan WiFi
  • Protokol MQTT

Modbus adalah dan protokol open source untuk sensor dan mesin industri. Untuk membuat Arduino berbicara Modbus, kita akan menggunakan perpustakaan Arduino Modbus. Pustaka ini mengemas semua penangan dan membuat menghubungkan perangkat Modbus dengan sangat cepat. Karena kita akan membaca register, mengikuti lembar data meter, kita dapat menemukan semua informasi yang kita butuhkan seperti kode fungsi, alamat register dan ukuran register dalam kata-kata. Namun agar lebih jelas, mari kita jelaskan 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 memberitahu perangkat jika kita ingin membaca atau menulis data *dalam hal ini read holding registers

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

00 02 - tmengukur ukuran register (00 02) dengan kata-kata (setiap kata panjangnya 2 byte)

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

Di Arduino semua hal ini ditangani di if kondisi:

// Dibuat oleh Alberto Perro - Officine Innesto//// Membaca bilangan bulat dari perangkat modbus yang memegang registersfloat readCurrent(){ float ampere =0.; //perintah selanjutnya memformat permintaan dan mengirimkannya melalui RS485 if (!ModbusRTUClient.requestFrom(0x01, HOLDING_REGISTERS, 0x0016, 2)) { //Error Handling Serial.print("gagal membaca voltase! "); Serial.println(ModbusRTUClient.lastError()); } else { uint16_t word1 =ModbusRTUClient.read(); //membaca MSW dari buffer uint16_t word2 =ModbusRTUClient.read(); //membaca LSW dari buffer int32_t milliamp =word1 <<16 | kata2; //menggabungkan kata untuk mengambil int ampere =milliamp/1000.0; //konversi ke ampere } kembalikan ampere;} 

Di else bagian kami memiliki penangan respons.

Karena register ini terdiri dari dua kata, kita harus menggabungkannya dengan matematika biner. Kami membaca kata-kata dari buffer dan menyimpannya dalam unsigned integer panjang 16-bit (2 byte atau kata), kemudian kami menggabungkan mereka dalam integer yang ditandatangani 32-bit bitshifting kata pertama ke kiri dan menerapkan ATAU atas kata kedua. Dengan cara ini kami mengambil pengukuran arus dalam mA, membaginya dengan 1000, kami memiliki arus dalam ampere.

Proses yang sama ini disesuaikan dengan semua yang ingin kita baca.

Sisa kode didedikasikan untuk menangani MQTT dan jaringan WiFi.

Integrasi Asisten Rumah

Menambahkan meteran ke Home Assistant cukup mudah. Dengan asumsi Anda memiliki broker MQTT yang dikonfigurasi (Berikut adalah panduannya), yang perlu Anda lakukan adalah menambahkan definisi baru di bawah file configuration.yaml.

sensor:- platform:mqtt nama:"Tegangan Utama" state_topic:"energi/utama/tegangan" unit_of_measurement:"V" 

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

Asisten Rumah akan menangani pembuatan grafik dan mengotomatiskan proses yang dipicu oleh pembacaan Anda. Tutorial ini telah selesai, sekarang terserah Anda untuk menambahkan fitur dan menyesuaikannya untuk tujuan Anda sendiri!

Kode

Modbus RTU ke jembatan MQTT untuk Finder
Sketsa ini menyediakan jembatan penuh antara meteran energi finder dan mqtt. Dikembangkan untuk memantau biaya dan penggunaan listrik di Casa Jasmina.

Proses manufaktur

  1. Buat Robot Streaming Video Terkendali Internet Anda dengan Arduino dan Raspberry Pi
  2. Membuat Monitor Ambilight Menggunakan Arduino
  3. Cara Membuat Monitor Energi Arduino dan Data Logger
  4. Animasi dan Permainan LCD
  5. Voltmeter DIY Menggunakan Arduino dan Smartphone
  6. Pemantau Detak Jantung Menggunakan IoT
  7. Suhu Arduino. Monitor Dan Jam Waktu Nyata Dengan Tampilan 3.2
  8. WebServerBlink Menggunakan Arduino Uno WiFi
  9. Arduino - Kirim Suhu ke Web melalui Serial
  10. Bentuk energi:energi kinetik dan energi potensial