のアイデア ホームオートメーション は、人間の労作やミスを減らし、効果を拡大するのに役立つため、注目を集めています。機器とプログラミングの進歩を組み合わせて利用し、家庭内の機械やその他の電子機器を制御できるようにします。ホームオートメーションの助けを借りて、私たちは電気器具をリモートで制御することができ、大きな利点は、電力消費が大幅に削減されることです。 Bluetooth制御、リモート制御、インターネット制御など、ホームオートメーションにはいくつかの種類があり、それぞれに長所と短所があります。このプロジェクトでは、音声コマンドを送信することでさまざまなアプライアンスを制御する音声制御ホームオートメーションを設計します。このシステムは、市場から購入した場合は非常に高価ですが、これらすべてのアプライアンスを Arduino 、すべての家電製品を制御することは非常に簡単で低コストになります。
音声制御のホームオートメーション
Arduinoを使用して家電製品を自動化する方法は?
基本的な考え方がわかったので、次にコンポーネントを収集し、それらを組み立てて回路を作成し、家電製品を自動化するコードを記述します。
ステップ1:使用するコンポーネント(ハードウェア)
- Arduino uno
- HC-05Bluetoothモジュール
- 2N2222NPNトランジスタ
- 12Vリレーモジュール
- 1kオームの抵抗器
- 12VAC-DCアダプター
- 1N4007PN接合ダイオード
- ジャンパー線
ステップ2:使用するコンポーネント(ソフトウェア)
- Proteus 8 Professional(からダウンロードできます ここに )
Proteus 8 Professionalをダウンロードしたら、その上に回路を設計します。初心者が回路を設計し、ハードウェアに適切な接続を行うのに便利なように、ここにソフトウェアシミュレーションを含めました。
ステップ3:コンポーネントの調査
プロジェクトで使用するコンポーネントのリストを作成したので。一歩先に進み、これらのコンポーネントがどのように機能するかについて簡単に説明します。
- Arduino UNO: Arduino UNOは、マイクロチップATMega 328Pで構成され、Arduino.ccによって開発されたマイクロコントローラーボードです。このボードには、他の拡張ボードまたは回路と接続できるデジタルおよびアナログデータピンのセットがあります。このボードには、14個のデジタルピンと6個のアナログピンがあり、タイプBUSBケーブルを介してArduinoIDE(統合開発環境)でプログラム可能です。電源には5Vが必要です オン と Cコード 動作します。
Arduino UNO
- HC-05ワイヤレスBluetoothシリアルトランシーバー :このプロジェクトでは無線通信が必要なので、Bluetooth技術を使用し、そのモジュールに使用するのはHC-05です。このモジュールにはいくつかのプログラム可能なボーレートがありますが、デフォルトのボーレートは9600bpsです。マスターまたはスレーブとして構成できますが、別のモジュールHC-06はスレーブモードでのみ動作します。このモジュールには4つのピンがあります。 1つはVCC(5V)用で、残りの3つはGND、TX、およびRX用です。このモジュールのデフォルトのパスワードは 1234 または 0000 。 2つのマイクロコントローラー間で通信したり、電話やラップトップHC-05などのBluetooth機能を備えたデバイスと通信したりする場合は、それが役立ちます。このプロセスをはるかに簡単にするいくつかのAndroidアプリケーションがすでに利用可能です。
HC-05Bluetoothモジュール
- Arduino用のBluetooth音声制御 :このアプリは、音声ベースのArduinoプロジェクト用にSimpleLabsINによって開発されています。このAndroidアプリケーションは、電話の音声認識機能を使用し、音声コマンドをテキストに変換し、Bluetooth経由で文字列を転送します。アプリケーションはからダウンロードできます ここに
BT音声制御アプリ
- 12 Vリレーモジュール: マイクロコントローラからの高電圧負荷を切り替えたい場合は、この12Vリレーボードでそれを行うことができます。これには、定格10A / 250V AC(DC 30V / 10A)の8 x12Vリレーが含まれています。各リレーモジュールは、マイクロコントローラの出力ピンに直接接続できる光絶縁デジタル入力によってオン/オフが切り替えられます。入力をオンにするのに必要な電圧は約1.0Vだけですが、最大12Vの入力電圧を処理できます。これにより、5Vデバイスと3.3Vデバイスの両方に最適です。制御したいアプライアンスの数に応じて、リレーモジュールを購入できます。たとえば、4つのアプライアンスを制御する場合は、4つのリレーモジュールを購入する必要があります。
12Vリレーモジュール
ステップ4:回路図で回路設計を理解する
まず、HC-05をArduinoUNOに接続する必要があります。 BluetoothはUARTプロトコルを使用するため、ArduinoのRXピンとTXピンを使用する必要があります。 「SoftwareSerial」ライブラリを使用して、独自のRXピンとTXピンを定義します(ピン2はRX、ピン3はTX)。 BluetoothモジュールのRXピンとArduinoのTXピンが切断されます。次に、リレーをArduinoに接続します。 4チャンネルの既製のリレーボードを使用したので、個々のリレーの入力をArduinoに接続する必要があります。リレーモジュールへの負荷の接続については、次の図を参照してください。
リレーモジュール回路の組み立て
デモ用に4つの負荷がリレーモジュールに接続されており、リレーボードでACメインを使用する場合は特に注意してください。デモンストレーションのために、切り替えました オン 代替負荷:
回路図
ステップ5:プロジェクトの動作原理
このプロジェクトでは、音声コマンドを使用してさまざまなアプライアンスを制御します。上記の回路図に従ってハードウェアを組み立てます。ブレッドボード上のすべてのコンポーネントを組み立てます。必要な接続を行った後、回路への電源をオンにし、電話のBluetoothをHC-05Bluetoothモジュールにペアリングします。ペアリングする前に、スマートフォンに上記のアプリケーションをインストールしてください。
次に、電話をBluetoothモジュールに接続します。オプションをクリックします ロボットを接続する 」をクリックして、適切なBluetoothデバイスを選択します。デバイスが以前にペアリングされていない場合は、ピンを入力して今すぐペアリングします 0000 または 1234。
スマートフォンのペアリング
接続に成功すると、デバイスはデータを送信する準備が整います。データを送信するには、アプリのマイクアイコンを押して、音声コマンドの送信を開始します。スマートフォンで音声認識機能が有効になっていることを確認します(これは通常、Googleアプリに関連付けられています)。たとえば、マイクアイコンを押して言うと '電気をつける'、 アプリケーションはコマンドを認識し、Bluetoothモジュールに転送します。
認識された音声
文字列がアプリケーションによって認識されると、文字列は「turn on light#」として送信され、Bluetoothモジュールが受信する実際のメッセージはこのタイプの形式になります( '*メッセージ#' )。文字列の最初と最後に「*」と「#」を埋め込む理由は、メッセージの開始と終了を識別するためです。受信したメッセージはいくつかの事前定義された文字列と比較され、メッセージがそれらと一致する場合、「オン」やオフなどの対応するアクションが発生します。
このプロジェクトでは、「ACをオンにする」、「ACをオフにする」、「ライトをオンにする」、「ライトをオフにする」、「テレビをオンにする」、「テレビをオフにする」、「ファンをオンにする」というコマンドを使用しました。 」、「すべてオンにする」、「すべてオフにする」。
ステップ6:Arduino入門
以前にArduinoIDEに慣れていない場合でも、心配しないでください。以下では、ArduinoIDEを使用してマイクロコントローラーボードにコードを書き込む明確な手順を確認できます。 ArduinoIDEの最新バージョンはからダウンロードできます ここに 下記の手順に従ってください。
1)。 ArduinoボードがPCに接続されたら、「コントロールパネル」を開き、「ハードウェアとサウンド」をクリックします。次に、「デバイスとプリンター」をクリックします。 Arduinoボードが接続されているポートの名前を見つけます。私の場合は「COM14」ですが、パソコンによって異なる場合があります。
ポートを見つける
2)。次に、ArduinoIDEを開きます。ツールから、Arduinoボードをに設定します Arduino / GenuinoUNO。
セッティングボード
3)。同じツールメニューから、コントロールパネルに表示されているポート番号を設定します。
設定ポート
4)。この音声制御アプリを使用するには、ArduinoIDEに含まれる特別なライブラリが必要です。このライブラリは、コードとともに以下のリンクに添付されています。ライブラリを含めるには、 スケッチ>ライブラリを含める> ZIPを追加します。図書館 。
ライブラリを含める
5)。以下に添付されているコードをダウンロードして、IDEにコピーします。コードをアップロードするには、アップロードボタンをクリックします。
コードは次の方法でダウンロードできます。 ここをクリックしてください。
ステップ7:コードを理解する
コードはそれほど複雑ではありませんが、それでも、その一部について以下に簡単に説明します。
1.最初に、ソフトウェアを使用して機能を複製し、Arduinoの他のデジタルピンでシリアル通信を可能にするライブラリが含まれています。 Bluetoothモジュールで使用するために2つのピンが初期化されます。システムに接続された家電製品に使用するために4つのピンが初期化され、Bluetoothを介して送信されるデータをシリアルに格納するために文字列変数が初期化されます。
#include const int rxPin = 2; // Bluetoothモジュールのpisnsを初期化しますconstint txPin = 3; SoftwareSerial mySerial(rxPin、txPin); int ac = 4; //家電製品のピンを初期化しますintlight = 5; int fan = 6; int tv = 7;文字列データ;
2.2。 void setup() 初期化されたピンをINPUTおよびOUTPUTとして使用するように設定する関数です。ボーレートもここで初期化されます。ボーレートは、Arduinoボードが接続されているコンポーネントと通信する速度です。私たちの機能では、アプライアンスに接続されているすべてのピンをに設定しました 低。
void setup(){Serial.begin(9600); mySerial.begin(9600); pinMode(ac、OUTPUT); pinMode(light、OUTPUT); pinMode(ファン、出力); pinMode(tv、OUTPUT); digitalWrite(ac、LOW); digitalWrite(light、LOW); digitalWrite(ファン、LOW); digitalWrite(tv、LOW); }
3.3。 void loop() ループで繰り返し実行される関数です。ここでは、システムが正しく機能するようにすべての条件が設定されています。以下 While() ループは、マイクロコントローラーにシリアルに送られるデータを取得するために使用されます。
while(1)//入力をシリアルに取得する{while(mySerial.available()<=0); ch = mySerial.read(); if(ch=='#') break; data+=ch; }
以下のすべての条件は、ユーザーの指示に従って、接続されているすべての電化製品のスイッチをオンにするように設定されています。これらの条件は非常に単純で自明です。
if(data == '* ACをオンにする'){digitalWrite(ac、HIGH); Serial.println( 'ac on'); } else if(data == '* ACをオフにする'){digitalWrite(ac、LOW); Serial.println( 'ac off'); } else if(data == '*ライトをオンにする'){digitalWrite(light、HIGH); Serial.println( 'light on'); } else if(data == '*ライトをオフにする'){digitalWrite(light、LOW); Serial.println( 'ライトオフ'); } else if(data == '*ファンをオンにする'){digitalWrite(fan、HIGH); Serial.println( 'ファンオン'); } else if(data == '*ファンをオフにする'){digitalWrite(fan、LOW); Serial.println( 'ファンオフ'); } else if(data == '* TVをオンにする'){digitalWrite(tv、HIGH); Serial.println( 'tv on'); } else if(data == '* TVをオンにする'){digitalWrite(tv、LOW); Serial.println( 'tv off'); } else if(data == '*すべてをオンにする'){digitalWrite(ac、HIGH); digitalWrite(light、HIGH); digitalWrite(fan、HIGH); digitalWrite(tv、HIGH); Serial.println( 'all on'); } else if(data == '*すべてオフにする'){digitalWrite(ac、LOW); digitalWrite(light、LOW); digitalWrite(fan、LOW); digitalWrite(tv、LOW); Serial.println( 'all off'); }}
アプリケーション
- 音声起動ホームオートメーションシステムは、簡単な音声コマンドでさまざまな負荷(電化製品)を制御するのに役立ちます。
- 障害のある人は、歩き回ることができないかのように、このプロジェクトから多くのメリットを得ることができます。 オン または オフ アプライアンス。
- このプロジェクトは、さまざまなセンサー(光、煙など)を追加することによって拡張することもできます。