Manfaatkan Data IoT Langsung di MATLAB dengan Integrasi RTI Connext DDS

Saat menganalisis data sensor, alur kerja umum melibatkan pengumpulan data mentah, mengonversinya menjadi format yang dapat digunakan, dan kemudian memanfaatkan kemampuan analitik canggih MATLAB. Namun, langkah konversi data dapat memakan waktu. Dengan integrasi terbaru MathWorks, MATLAB sekarang dapat langsung berlangganan dan menerbitkan data melalui DDS, middleware de facto untuk komunikasi IIoT. Ini memungkinkan pengembang untuk membuat prototipe dan menguji analitik real-time dengan biaya overhead minimal.
Memulai
Sebelum memulai, pastikan MATLAB dan RTI Connext DDS telah terinstal. Versi berikut digunakan dalam contoh-contoh:
- MathWorks MATLAB R2016b
- MathWorks DDS Blockset 2.9.2
- RTI Connext DDS 5.2.3 (Linux & Windows)
- RTI Shapes Demo Application (terinstal dengan Connext DDS)
- PC Windows 10
Tonton video instalasi untuk memverifikasi bahwa semua komponen telah dikonfigurasi dengan benar: Installation Video.
Inisialisasi
Setelah instalasi, inisialisasi DDS dalam MATLAB dengan langkah-langkah berikut:
- Impor tipe data IDL yang diperlukan untuk proyek Anda.
- Buat Domain Participant DDS.
- Buat DataWriter DDS.
- Buat DataReader DDS.
Mengimpor berkas IDL secara otomatis menghasilkan berkas .m yang sesuai untuk MATLAB. Misalnya, untuk mengimpor ShapeType.idl:
> DDS.import('ShapeType.idl','matlab','f') Setelah diimpor, tipe data tersedia untuk pembuatan DataReader/DataWriter berikutnya. Buat Domain Participant:
> dp = DDS.DomainParticipant;
Lampirkan penulis dan pembaca untuk tipe data ShapeType pada topik Triangle dan Square:
> dp.addWriter('ShapeType','Triangle') > dp.addReader('ShapeType','Square') Berlangganan Data di Shapes Demo
RTI Shapes Demo menyediakan topik yang sudah dikonfigurasi untuk Square, Circle, dan Triangle, semuanya berdasarkan ShapeType. Gunakan demo untuk membuat pelanggan untuk topik Triangle; biarkan pengaturan QoS pada nilai default.

Menerbitkan Data dari MATLAB
Dengan DataWriter yang dikonfigurasi, terbitkan segitiga hijau:
%% Create an instance of ShapeType myData = ShapeType; myData.x = int32(75); myData.y = int32(100); myData.shapesize = int32(50); myData.color = 'GREEN'; %% Write data to DDS dp.write(myData);
Shapes Demo menampilkan satu segitiga hijau tunggal seperti di bawah ini:

Pola penerbitan lainnya:
%% Green triangles in a line at 1 Hz for i=1:10 myData.x = int32(20 + 10*i); myData.y = int32(40 + 10*i); dp.write(myData); pause(1); end %% Green triangles in a circle at 20 Hz for i=1:1000 angle = 10*pi * (i/200); myData.x = int32(100 + (50 * cos(angle))); myData.y = int32(100 + (50 * sin(angle))); myData.shapesize = int32(40); myData.color = 'GREEN'; dp.write(myData); pause(0.05); end
Demo memvisualisasikan pola-pola ini seperti ditunjukkan:

Menerbitkan Data di Shapes Demo
Di Shapes Demo, buat penerbit untuk topik Square. Pilih warna (misalnya, oranye) dan biarkan QoS default. Demo akan menyiarkan posisi X,Y persegi setiap 30 ms.

Berlangganan Data di MATLAB
Gunakan DataReader Square untuk mengonsumsi data dari Shapes Demo. Baca sepuluh sampel dengan interval satu detik:
%% Read data for i=1:10 dp.read() pause(1); end
MATLAB menghasilkan sepuluh pesan yang mirip dengan tangkapan layar di bawah ini:

Kasus Penggunaan Lanjutan: Transform dan Visualisasi
Setelah membangun komunikasi dua arah, transformasikan data persegi yang diterima dengan menukar koordinat X dan Y, terbitkan ulang sebagai segitiga merah, dan plot posisi X seiring waktu. Skrip MATLAB di bawah ini menunjukkan alur kerja ini:
%% Allocate array for 100 samples xArray = zeros(1,100); %% Collect, transform, and republish for i=1:100 [myData, status] = dp.read(); if ~isempty(myData) x = myData(1).x; y = myData(1).y; xArray(i) = x; yArray(i) = y; myData(1).y = x; myData(1).x = y; myData(1).color = 'RED'; dp.write(myData(1)); end pause(0.05); end %% Plot X‑position t = 1:100; plot(t,xArray); legend('xPos'); xlabel('Time'); ylabel('Position'); title('X Positions'); Shapes Demo sekarang menunjukkan segitiga merah yang mencerminkan persegi oranye, sementara MATLAB merender plot posisi X:

Integrasi DDS dengan MATLAB menyederhanakan ingesti, injeksi, dan analisis data. Meskipun demo ini menggunakan aplikasi Shapes sederhana, pendekatan yang sama bekerja untuk setiap sumber data IoT berbasis DDS. Untuk wawasan yang lebih dalam tentang integrasi DDS MATLAB, kunjungi halaman Integrasi DDS MATLAB di MathWorks. Untuk menjelajahi Connext DDS lebih jauh, akses sumber daya pengembang di sini.