私たちは皆、人間の相互作用が最小限で、物事を自動またはリモートで制御できる「自動化」という言葉に精通しています。ホームオートメーションは、エレクトロニクスの分野で非常に人気があり、要求の厳しいコンセプトです。また、このコンセプトをエレクトロニクスプロジェクトとして理解しやすく、管理しやすいものにするために最善を尽くしています。私たちは以前、ビデオとコードが機能するいくつかのタイプのホームオートメーションプロジェクトを開発しました。以下を確認してください。
- DTMFベースのホームオートメーション
- Arduinoを使用したGSMベースのホームオートメーション
- Arduinoを使用したPC制御のホームオートメーション
- 8051を使用したBluetooth制御のホームオートメーション
- Arduinoを使用したIRリモート制御ホームオートメーション
そしてこのプロジェクトでは、MATLABとArduinoを使用して次のホームオートメーションプロジェクトを構築します。これは、ArduinoとMATLABを使用したGUIベースのホームオートメーションシステムです。
コンポーネント:
- Arduino UNO
- USBケーブル
- ULN2003
- リレー5ボルト
- ホルダー付き電球
- 接続線
- ラップトップ
- 電源
- PVT
作業説明:
このプロジェクトでは、MATLABとArduinoを使用して、コンピューターのグラフィカルユーザーインターフェイスを介して家電製品を制御しています。ここでは、コンピューター(MATLAB)からArduinoにデータを送信するために有線通信を使用しました。コンピューター側では、MATLABのGUIを使用して、家電製品を制御するためのいくつかのボタンを作成しました。ArduinoとMATLABの間の通信では、最初に「ArduinoのMATLABおよびSimulinkサポート」または「ArduinoIOパッケージ」をインストールする必要があります。これを行うには、以下の手順に従うか、以下のビデオを確認してください。
- ここからArduinoIOパッケージをダウンロードします。ダウンロードする前にサインアップする必要があります。
- 次に、Arduino IDEを使用して、adioe.pdeファイルをArduinoに書き込み/アップロードします。このadioe.pdeファイルは、Arduino IOパッケージ– ArduinoIO \ pde \ adioe \ adioe.pdeにあります。
- 次に、MATLABソフトウェアを開き、Arduino IOフォルダーに移動し、install_arduino.mファイルを開いて、Matlabで実行します。MATLABのコマンドウィンドウに「パスにArduinoフォルダーが追加されました」というメッセージが表示されます。これは、MATLABパスがArduinoフォルダーに更新されたことを意味します。
これが、ArduinoをMATLABと通信させる方法です。上記の方法は「MATLABR2013b以前のバージョン」に適しています。MATLABの上位バージョン(R2015bやR2016aなど)を使用している場合は、MATLABの[アドオン]タブを直接クリックしてから、[ハードウェアサポートパッケージを取得]をクリックできます。ここからMATLAB用のArduinoパッケージをインストールできます。
ファイルをインストールしたら、ホームオートメーションプロジェクトのGUIを作成できます。基本的にGUIでは、コンピューターから家電製品を制御するためのプッシュボタンを作成しています。ボタンは、MATLABの「新規」メニューの「グラフィカルユーザーインターフェイス」に移動して作成できます。さらに、これらのボタンの名前と色を設定できるように、8つのボタンを作成しました。6つのボタンで3つの家電製品をオン/オフし、2つのボタンですべてのアプライアンスを同時にオン/オフします。
ボタンを作成した後、そのGUIウィンドウで[実行]ボタンをクリックすると、このGUIファイル(拡張子は.fig)を保存するように求められます。これは「figファイル」とも呼ばれます。ファイルを保存するとすぐに、「Mファイル」(以下のスクリーンショットを参照)とも呼ばれるコードファイル(拡張子.m)が自動的に作成され、コードを配置できます(以下のコードセクションに記載)。このプロジェクトのGUIファイルとコードファイルは、Home_Automation_system.figとHome_Automation_system.mからダウンロードできます(右クリックして[名前を付けてリンクを保存…]を選択します)。または、説明したように自分で作成することもできます。
コーディング後、最終的にコードウィンドウから.mファイルを実行できるようになり、コマンドウィンドウに「接続の試行..」と表示されます。その後、すべてがうまくいけば、「Arduinoは正常に接続されました」というメッセージが表示されます。そして最後に、GUIウィンドウに以前に作成したGUI(ボタン)が表示されます。ここから、コンピューターのボタンをクリックするだけで家電製品を制御できます。ArduinoがUSBケーブルを介してArduinoに接続されていることを確認してください。このプロジェクトでは、ファン、ライト、テレビを示す3つの電球をデモに使用しました。
Arduino MATLABサポートパッケージのインストールからアプライアンスのオンまたはオフまで、プロジェクト全体の動作は、最後のビデオで理解できます。
回路の説明:
このプロジェクトの回路はとても簡単です。ここでは、リレーの駆動にArduinoUNOボードとリレードライバーULN2003を使用しました。3つの5ボルトSPDTリレーがリレードライバーULN2003を介してArduinoのピン番号3、4、5に接続され、それぞれLIGHT、FAN、TVを制御します。
プログラミングの説明:
GUIウィンドウからいずれかのボタンを押すと、Arduinoにいくつかのコマンドが送信され、Arduinoがその操作を実行します。Arduino MATLAB IOサポートパッケージをインストールした後、同じArduino関数を使用して、MATLABからArduinoにアクセスできますが、次のように少し異なります。
ArduinoでピンをHIGHにするために、 digitalWrite(pin、HIGH) としてコードを記述します。
MATLABでは、次のようなオブジェクトまたは変数を使用してこの関数を使用します。
同様になど。
これを行う前に、次のように変数を初期化する必要があります。
このプロジェクトでは、ArduinoMATLABサポートパッケージコードまたはファイル以外にArduinoコードはありません。前に説明したように、コードファイル(.mファイル)はGUIファイル(.figファイル)の保存中に自動的に生成されます。.mファイルにはすでにいくつかのコードが事前に記述されています。基本的に、これらはプッシュボタンのコールバック関数です。つまり、これらのプッシュボタンをクリックしたときに何が起こるかを定義できます。
MATLABコードでは、最初にシリアルポートを初期化し、変数を使用してオブジェクトにします。そして、変数を使用してArduinoのようなプログラミングを開始できます。
クリアar; グローバルar; ar = arduino( 'COM13'); ar.pinMode(3、 'OUTPUT'); ar.pinMode(4、 'OUTPUT'); ar.pinMode(5、 'OUTPUT'); ar.pinMode(13、 'OUTPUT');
各ボタンのコールバック機能には、リレー経由でArduinoに接続されたそれぞれの家電製品のオンまたはオフに関連するコードを記述しています。たとえば、LightONのコールバック関数を以下に示します。
function light_on_Callback(hObject、eventdata、handles)%light_onへのhObjectハンドル(GCBOを参照)%eventdata reserved-MATLABの将来のバージョンで定義されます%ハンドルとユーザーデータを含む構造体を処理します(GUIDATAを参照)グローバルar; ar.digitalWrite(3、1); ar.digitalWrite(13、1);
同様に、すべてのボタンのコールバック関数にコードを記述して、接続されている他の家電製品を制御するには、以下の完全なMATLABコード(.mファイル)を確認してください。