Bagaimana Mengontrol Peralatan Rumah Tangga Menggunakan MATLAB?

Teknologi jaringan otomasi rumah dikembangkan pada tahun 90-an dan protokol komunikasi yang digunakan pada saat itu X10. Sejak saat itu konsep otomasi semakin populer dan protokol terbaru telah ditemukan yang bertanggung jawab untuk komunikasi antar perangkat elektronik. Dengan tetap memperhatikan konsep otomatisasi, saya berpikir mengapa tidak mengontrol semua peralatan rumah tangga menggunakan perangkat lunak paling terkenal yang dikenal sebagai MATLAB. Dalam proyek ini, kami akan merancang sistem Otomasi dan kemudian mengontrolnya dengan memberikan perintah Serial. Software yang akan digunakan untuk mengoperasikan sistem ini bernama MATLAB dan setelah menyelesaikan proyek ini kita akan dapat mengontrol peralatan listrik kita hanya dengan duduk di sofa atau berbaring di tempat tidur.

Bagaimana Mengotomatiskan Peralatan Rumah Tangga Anda menggunakan MATLAB GUI?

Sekarang mari kita beralih ke pengumpulan komponen, merakitnya bersama untuk membuat sirkuit, membuat MATLAB Graphical User Interface (GUI) dan menulis kode di MATLAB untuk mengotomatiskan peralatan rumah Anda.

Langkah 1: Komponen yang Dibutuhkan (Perangkat Keras)

Itu selalu lebih baik untuk mengetahui tentang komponen secara detail sebelum memulai proyek untuk menghindari ketidaknyamanan di tengah proyek. Di bawah ini adalah daftar komponen yang akan kita gunakan:

Di sini, kami menggunakan modul 8 relai karena kami hanya akan mengontrol delapan peralatan. Jika Anda ingin mengotomatiskan sejumlah peralatan yang Anda miliki, Anda dapat menggunakan modul relai yang berbeda. Ada banyak modul relay yang tersedia di pasaran misalnya single, 8-relay, 12-relay, dll.

Langkah 2: Komponen yang Dibutuhkan (Perangkat Lunak)

Setelah menyusun komponen perangkat keras kita akan mencari perangkat lunak yang akan digunakan dalam pengerjaan proyek. Kami akan menginstal MATLAB versi terbaru di laptop atau PC tempat kami bekerja. MATLAB 2019 adalah perangkat lunak terbaru jadi lebih baik untuk mengunduh MATLAB 2019. Tautan ke situs web resmi Mathworks tersedia di bawah untuk mengunduh perangkat lunak. Paket Dukungan Perangkat Keras tersedia di MATLAB 2019 untuk Windows 32 bit, 64-bit, dan Linux 64-bit.

Setelah mengunduh Proteus 8 Professional, rancang sirkuit di atasnya. Saya telah menyertakan simulasi perangkat lunak di sini sehingga mungkin nyaman bagi pemula untuk mendesain sirkuit dan membuat koneksi yang sesuai pada perangkat keras.

Langkah 3: Mempelajari Komponen

Sekarang kita telah membuat daftar semua komponen yang akan kita gunakan dalam proyek ini. Mari kita melangkah lebih jauh dan melakukan studi singkat tentang semua komponen perangkat keras utama.

Arduino UNO:Itu Arduino UNO adalah papan mikrokontroler yang terdiri dari mikrokip ATMega 328P dan dikembangkan oleh Arduino.cc. Papan ini memiliki satu set pin data digital dan analog yang dapat dihubungkan dengan papan ekspansi atau sirkuit lain. Papan ini memiliki 14 pin Digital, 6 pin Analog, dan dapat diprogram dengan Arduino IDE (Integrated Development Environment) melalui kabel USB tipe B. Ini membutuhkan 5V untuk daya DI dan a Kode C.mengoperasikan.

Modul Relai 12V:Modul Relai adalah perangkat switching. Ini menerima sinyal dan mengganti perangkat elektronik atau alat apa pun sesuai dengan sinyal input. Ia bekerja dalam dua mode, Biasanya Terbuka (TIDAK) dan Biasanya Tertutup (NC).Dalam mode Normally Open, rangkaian awalnya rusak ketika sinyal input ke relai RENDAH. Dalam mode Biasanya Tertutup, rangkaian awalnya selesai ketika sinyal input RENDAH.

Modul RS232 Ke TTL Serial Port Converter: Modul ini digunakan untuk komunikasi serial. Papan Arduino UNO kami memiliki satu port komunikasi serial bernama UART atau USART. Ada dua pin pada papan Arduino yang bertanggung jawab untuk komunikasi serial TX dan RX (Pin 0 dan pin 1). Kedua pin ini juga terdapat pada modul RS232. Modul ini didukung oleh 5V Arduino dan itu mengubah 5V menjadi 12V untuk mengoperasikan peralatan berbeda yang beroperasi pada 12V. Kami menggunakan modul ini karena peralatan elektronik tidak beroperasi pada 5V.

Langkah 4: Memahami Prinsip Kerja

Setelah menyelesaikan proyek ini kita akan dapat mengontrol peralatan dari jarak jauh dengan memberikan perintah secara serial. Papan Arduino digunakan untuk komunikasi serial dengan RS232. Peralatan terhubung ke modul Relay dan RS232 terhubung ke pin TX dan RX dari Arduino dan ketika tombol tekan ditekan pada MATLAB, perintah serial dihasilkan dan dikirim ke port serial RS232 yang pada gilirannya berbalik HIDUP atau MATI alat. Pertama, MATLAB dihubungkan dengan papan Arduino dan kemudian rangkaian diimplementasikan pada perangkat keras. Jika ada yang memiliki masalah tentang interfacing MATLAB dengan Arduino dia bisa merujuk ke artikel saya yang bernama BAGAIMANA MENGHUBUNGI ARDUINO DENGAN MATLAB? dan kemudian dia akan dapat mengimplementasikan proyek ini pada perangkat keras. Setelah menyelesaikan proyek ini, pasang ke tempat yang sesuai, lokasi yang disukai dekat dengan soket tempat kabel peralatan ditempatkan sehingga modul Relai dapat dipasang dengan mudah di sana.

Langkah 5: Diagram Sirkuit

Diagram sirkuit proteus dari proyek akan terlihat seperti ini. Hubungkan komponen perangkat keras sesuai dengan sirkuit ini nanti.

Langkah 6: Memulai MATLAB

Setelah mendesain sirkuit pada Proteus Open MATLAB dan ketik "panduan"Di jendela perintah. Kotak dialog akan terbuka dan dari kotak itu pilih GUI Kosong. Palet komponen akan muncul di sebelah kiri dan akan mencantumkan komponen yang ingin Anda tempatkan di GUI Anda.

Pilih tombol tekan dan tempatkan 16 tombol tekan pada panel. Pertama, letakkan tombol ON lalu letakkan tombol OFF secara paralel. Warna dan nama tombol dapat dimodifikasi dengan mengklik dua kali tombol tekan. Setelah mengklik tombol, jendela inspektur akan terbuka dan beberapa properti tombol dapat dimodifikasi di sana. Untuk mengubah nama tombol cari tali pilihan tulis ON di dalamnya.

Setelah mengubah nama tombol, ubah warna latar belakang. (catatan: Langkah ini opsional dan Anda dapat melewatinya jika tidak ingin mengubah warna latar belakang)

Tempatkan 16 tombol dan lakukan perubahan di atas pada jendela inspektur. Untuk penamaan Relay itu teks statis opsi yang terletak di bilah kiri digunakan. Tampilan terakhir GUI saya ditunjukkan di bawah ini:

Setelah membuat GUI buka GUI Code yang dibuat di backend dan buat beberapa perubahan pada kode yang tertera di bawah.

Langkah 7: Kode MATLAB GUI:

function varargout = final (varargin)% FINAL MATLAB code untuk final.fig% FINAL, dengan sendirinya, membuat FINAL baru atau memunculkan% singleton * yang ada. %% H = FINAL mengembalikan pegangan ke FINAL baru atau pegangan ke% singleton * yang ada. %% FINAL ('CALLBACK', hObject, eventData, handle, ...) memanggil fungsi% lokal bernama CALLBACK di FINAL.M dengan argumen masukan yang diberikan. %% FINAL ('Property', 'Value', ...) membuat FINAL baru atau memunculkan% singleton * yang ada. Mulai dari kiri, pasangan nilai properti% diterapkan ke GUI sebelum final_OpeningFcn dipanggil. Sebuah% nama properti tidak dikenal atau nilai tidak valid membuat aplikasi properti% berhenti. Semua masukan diteruskan ke final_OpeningFcn melalui varargin. %% * Lihat Opsi GUI pada menu Alat PANDUAN. Pilih "GUI hanya mengizinkan satu% instance untuk dijalankan (tunggal)". %% Lihat juga: PANDUAN, PANDUAN, PANDUAN% Edit teks di atas untuk mengubah tanggapan untuk membantu final% Terakhir Dimodifikasi oleh PANDUAN v2.5 25-Agustus-2019 13:10:11% Mulai kode inisialisasi - JANGAN EDIT gui_Singleton = 1; gui_State = struct ('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @final_OpeningFcn, ... 'gui_OutputFcn', @final_OutputFcn, ... 'gui_LayoutFcn', [], []. .. 'gui_Callback', []); jika nargin && ischar (varargin {1}) gui_State.gui_Callback = str2func (varargin {1}); akhiri jika nargout [varargout {1: nargout}] = gui_mainfcn (gui_State, varargin {:}); else gui_mainfcn (gui_State, varargin {:}); end% Akhiri kode inisialisasi - JANGAN EDIT% --- Jalankan sebelum final dibuat terlihat. function final_OpeningFcn (hObject, eventdata, handle, varargin)% Fungsi ini tidak memiliki argumen keluaran, lihat OutputFcn. % hObject handle to figure% eventdata reserved - untuk didefinisikan dalam versi mendatang MATLAB% menangani struktur dengan handle dan data pengguna (lihat GUIDATA)% varargin argumen baris perintah ke final (lihat VARARGIN)% Pilih keluaran baris perintah default untuk pegangan akhir .output = hObject; % Pembaruan menangani pedoman struktur (hObject, pegangan); % UIWAIT membuat penantian terakhir untuk respon pengguna (lihat UIRESUME)% uiwait (handle.figure1); % --- Keluaran dari fungsi ini dikembalikan ke baris perintah. function varargout = final_OutputFcn (hObject, eventdata, handle)% varargout cell array untuk mengembalikan output args (lihat VARARGOUT); % hObject handle to figure% eventdata reserved - untuk didefinisikan dalam versi MATLAB% yang akan datang struktur penanganan dengan pegangan dan data pengguna (lihat GUIDATA)% Dapatkan keluaran baris perintah default dari struktur pegangan varargout {1} = handle.output; Bersihkan semua; global a; a = arduino; % --- Jalankan saat tombol ditekan di tombol1. function pushbutton1_Callback (hObject, eventdata, handle)% hObject handle ke pushbutton1 (lihat GCBO)% eventdata dicadangkan - untuk didefinisikan dalam versi mendatang MATLAB% menangani struktur dengan handle dan data pengguna (lihat GUIDATA) global a; writeDigitalPin (a, 'D6', 0); % --- Jalankan saat tombol ditekan di tombol2. function pushbutton2_Callback (hObject, eventdata, handle)% hObject handle ke pushbutton2 (lihat GCBO)% eventdata dicadangkan - untuk didefinisikan dalam versi mendatang MATLAB% menangani struktur dengan handle dan data pengguna (lihat GUIDATA) global a; writeDigitalPin (a, 'D6', 1); % --- Menjalankan saat tombol ditekan di tombol tekan3. function pushbutton3_Callback (hObject, eventdata, handle)% hObject handle ke pushbutton3 (lihat GCBO)% eventdata dicadangkan - untuk didefinisikan dalam versi mendatang MATLAB% menangani struktur dengan handle dan data pengguna (lihat GUIDATA) global a; writeDigitalPin (a, 'D7', 0); % --- Menjalankan saat tombol ditekan di tombol tekan4. function pushbutton4_Callback (hObject, eventdata, handle)% hObject handle ke pushbutton4 (lihat GCBO)% eventdata dicadangkan - untuk didefinisikan dalam versi mendatang MATLAB% menangani struktur dengan handle dan data pengguna (lihat GUIDATA) global a; writeDigitalPin (a, 'D7', 1); \% --- Menjalankan saat tombol ditekan di tombol tekan5. function pushbutton5_Callback (hObject, eventdata, handle)% hObject handle ke pushbutton5 (lihat GCBO)% eventdata dicadangkan - untuk didefinisikan dalam versi mendatang MATLAB% menangani struktur dengan handle dan data pengguna (lihat GUIDATA) global a; writeDigitalPin (a, 'D8', 0); % --- Jalankan saat tombol ditekan di tombol tekan6. function pushbutton6_Callback (hObject, eventdata, handle)% hObject handle ke pushbutton6 (lihat GCBO)% eventdata dicadangkan - untuk didefinisikan dalam versi mendatang MATLAB% menangani struktur dengan handle dan data pengguna (lihat GUIDATA) global a; writeDigitalPin (a, 'D8', 1); % --- Jalankan saat tombol ditekan di tombol tekan7. function pushbutton7_Callback (hObject, eventdata, handle)% hObject handle ke pushbutton7 (lihat GCBO)% eventdata dicadangkan - untuk didefinisikan dalam versi mendatang MATLAB% menangani struktur dengan handle dan data pengguna (lihat GUIDATA) global a; writeDigitalPin (a, 'D9', 0); % --- Jalankan saat tombol ditekan di tombol tekan8. function pushbutton8_Callback (hObject, eventdata, handle)% hObject handle ke pushbutton8 (lihat GCBO)% eventdata dicadangkan - untuk didefinisikan dalam versi mendatang MATLAB% menangani struktur dengan handle dan data pengguna (lihat GUIDATA) global a; writeDigitalPin (a, 'D9', 1); % --- Menjalankan saat tombol ditekan di tombol tekan9. function pushbutton9_Callback (hObject, eventdata, handle)% hObject handle ke pushbutton9 (lihat GCBO)% eventdata dicadangkan - untuk didefinisikan dalam versi mendatang MATLAB% menangani struktur dengan handle dan data pengguna (lihat GUIDATA) global a; writeDigitalPin (a, 'D10', 0); % --- Jalankan saat tombol ditekan di tombol tekan10. function pushbutton10_Callback (hObject, eventdata, handle)% hObject handle ke pushbutton10 (lihat GCBO)% eventdata dicadangkan - untuk didefinisikan dalam versi mendatang MATLAB% menangani struktur dengan handle dan data pengguna (lihat GUIDATA) global a; writeDigitalPin (a, 'D10', 1); % --- Jalankan saat tombol ditekan di tombol tekan11. function pushbutton11_Callback (hObject, eventdata, handle)% hObject handle ke pushbutton11 (lihat GCBO)% eventdata dicadangkan - untuk didefinisikan dalam versi mendatang MATLAB% menangani struktur dengan handle dan data pengguna (lihat GUIDATA) global a; writeDigitalPin (a, 'D11', 0); % --- Jalankan saat tombol ditekan di tombol tekan12. function pushbutton12_Callback (hObject, eventdata, handle)% hObject handle ke pushbutton12 (lihat GCBO)% eventdata dicadangkan - untuk didefinisikan dalam versi mendatang MATLAB% menangani struktur dengan handle dan data pengguna (lihat GUIDATA) global a; writeDigitalPin (a, 'D11', 1); % --- Menjalankan saat tombol ditekan di tombol tekan13. function pushbutton13_Callback (hObject, eventdata, handle)% hObject handle ke pushbutton13 (lihat GCBO)% eventdata dicadangkan - untuk didefinisikan dalam versi mendatang MATLAB% menangani struktur dengan handle dan data pengguna (lihat GUIDATA) global a; writeDigitalPin (a, 'D12', 0); % --- Jalankan saat tombol ditekan di tombol tekan14. function pushbutton14_Callback (hObject, eventdata, handle)% hObject handle ke pushbutton14 (lihat GCBO)% eventdata dicadangkan - untuk didefinisikan dalam versi mendatang MATLAB% menangani struktur dengan handle dan data pengguna (lihat GUIDATA) global a; writeDigitalPin (a, 'D12', 1); % --- Menjalankan saat tombol ditekan di tombol tekan15. function pushbutton15_Callback (hObject, eventdata, handle)% hObject handle ke pushbutton15 (lihat GCBO)% eventdata dicadangkan - untuk didefinisikan dalam versi mendatang MATLAB% menangani struktur dengan handle dan data pengguna (lihat GUIDATA) global a; writeDigitalPin (a, 'D13', 0); % --- Menjalankan saat tombol ditekan di tombol tekan16. function pushbutton16_Callback (hObject, eventdata, handle)% hObject handle ke pushbutton16 (lihat GCBO)% eventdata dicadangkan - untuk didefinisikan dalam versi mendatang MATLAB% menangani struktur dengan handle dan data pengguna (lihat GUIDATA) global a; writeDigitalPin (a, 'D13', 1); 

File m bersama dengan Kode GUI dapat diunduh dari sini.

Langkah 8: Penjelasan Kode

Saat kita membuat kode MATLAB GUI secara otomatis dihasilkan di backend dan kita hanya perlu melakukan beberapa perubahan pada Kode tersebut. Ada total 16 fungsi dalam kode tersebut. Delapan untuk berbelok DI relai dan delapan untuk memutar MATI relai. Pertama, kami membuat variabel global bernama 'Sebuah'dideklarasikan di luar fungsi dan kemudian digunakan di setiap kondisi karena berguna saat beberapa fungsi mengakses data yang sama. Lalu kami menulis a = arduinodalam Kode karena kami menghubungkan Arduino dengan MATLAB. Semua dari 16 fungsi yang dirancang untuk tombol dalam Kode telah dimodifikasi dan kami menulis '0' untuk mematikan relai dan '1' untuk menghidupkan relai di fungsi tersebut. Anda harus menambahkan dua baris ini di akhir setiap fungsi dan mengubahnya sesuai:

global a; writeDigitalPin (a, 'D13', 1);

Langkah 9: Merakit Perangkat Keras

Setelah menulis Kode kita akan mulai merakit komponen perangkat keras. Pertama, kita perlu mengetahui konektivitas modul relai. Ambil kabel positif alat dan potong. hubungkan salah satu ujungnya ke TIDAK port dan ujung lainnya ke COM port modul relai. Lihat gambar di bawah dan hubungkan keempat peralatan ke modul relai seperti yang ditunjukkan. Pastikan Anda mengencangkan sekrup modul relai agar koneksi tidak putus nanti.

Setelah menghubungkan pin NO dan COM dari delapan modul relai dengan delapan peralatan, kami akan menghubungkan pin OUT modul. Pin no 6-13 dari Arduino digunakan untuk menghubungkan pin OUT modul relai. Colokkan pin OUT Relay 1 ke pin 6 Arduino lalu lakukan semua koneksi sesuai Kode. Gunakan papan tempat memotong roti untuk membuat koneksi umum Vcc dan Arde dan kemudian pasang kabel dari kedua pin modul Relai ini ke koneksi tersebut. Setelah membuat koneksi Relay, sambungkan Vcc dan Ground RS232 ke 5V dan Ground Arduino masing-masing. Hubungkan pin Tx dari RS232 ke pin RX dari Arduino dan hubungkan pin Rx dari RS232 ke pin Tx dari Arduino. Ambil adaptor laki-laki Serial DB9 dan hubungkan satu sisi ke modul konverter Port Serial dan sisi lainnya ke laptop atau PC yang Anda gunakan.

Itu dia! Kami telah menyelesaikan proyek otomasi kami dan sekarang kami dapat mengontrol peralatan kami dengan menggunakan MATLAB. Tidak perlu bangun dan MENGHIDUPKAN peralatan kami dapat MENGAKTIFKAN dan MENONAKTIFKANnya dari jarak jauh. Ini dapat diterapkan di rumah dan juga kantor dll.

Facebook Twitter Google Plus Pinterest