Arduinoチュートリアル:JARVIS v1 |ホームオートメーションの作り方
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 4 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 10 |
必要なツールとマシン
> |
|
アプリとオンラインサービス
> |
|
このプロジェクトについて
なぜこれを作ったのですか?
アイアンマンのファンである私は、 JARVIS に本当に刺激を受けました。 音声制御のパーソナルアシスタントと私はホームオートメーションシステムを構築したかったのです。利用可能な既存のシステムはたくさんありますが、Arduinoを使用して独自のホームオートメーションシステムを構築することにしました。
仕組み:
このプロジェクトは、ライト、ファン、テレビなどの電気および電子機器を制御することを目的としています。これは、Arduinoと家の各部屋に設置されているリレー回路を使用して行われます。データはBluetoothモジュールを介してArduinoに公開され、さらに実装を行うことができます。
主なタスクは、データを取得し、モバイルを使用してArduinoに公開することです。そして後でデータを使用して、デバイスのオン/オフを切り替えるための制御を行うことができます。
ハードウェアビルド
回路はとてもシンプルです。この製品の全体的なコストは20ドル未満になります。
ステップ1:部品と材料 <図>
このプロジェクトに必要なコンポーネントは次のとおりです。
- Arduino
- リレーブレイクアウトボード
- Bluetoothモジュール-HC-05
- ジャンパーケーブル
ステップ2:接続
以下の接続は、ジャンパーケーブルを使用して行われます。このデモでは、4つのリレーを使用しました。これは、APPを使用して4つのデバイスを制御できることを意味します。
<図>* Arduino-> BT MODULE *
- TX-> RX
- RX-> TX
- VCC-> 3.3v
- GND-> GND
* Arduino->リレーボード*
- IN1-> D2
- IN2-> D3
- IN3-> D4
- IN4-> D5
- VCC-> VCC
- GND-> GND
ステップ3:コード
以下にサンプルコードがあります。
String voice;
int
led1 =2、// LED 1をピン#2に接続
led2 =3、// LED 2をピン#3に接続
led3 =4、// LED 3をピン#4に接続
led4 =5、// LED 4をピン#5に接続
led5 =6; // LED 5をピン#6に接続します
// -------------------------- A関数を呼び出します------ ------------------------- //
void allon(){
digitalWrite(led1、HIGH);
digitalWrite(led2、HIGH);
digitalWrite(led3、HIGH);
digitalWrite(led4、HIGH);
digitalWrite(led5、HIGH);
}
void alloff(){
digitalWrite(led1、LOW);
digitalWrite(led2、LOW);
digitalWrite(led3、LOW);
digitalWrite(led4、LOW);
digitalWrite(led5、LOW);
}
// ----------------------------- ------------------------------------------ //
void setup (){
Serial.begin(9600);
pinMode(led1、OUTPUT);
pinMode(led2、OUTPUT);
pinMode(led3、OUTPUT);
pinMode(led4、OUTPUT);
pinMode(led5、OUTPUT);
}
// -------------------- -------------------------------------------------- -//
void loop(){
while(Serial.available()){//読み取ることができるバイトがあるかどうかを確認します
delay(1 0); //物事を安定させるために遅延が追加されました
char c =Serial.read(); //シリアル読み取りを実行します
if(c =='#'){break;} //単語の後に#が検出されたらループを終了します
voice + =c; //音声の短縮=音声+ c
}
if(voice.length()> 0){
Serial.println(voice);
// ---- -------------------------------------------------- ----------------- //
// ----------複数のピン/ LEDを制御します---------- //
if(voice =="* all on"){allon();} //すべてのピンをオフにする(関数を呼び出す)
else if(voice =="* all off"){ alloff();} //すべてのピンをオンにする(関数を呼び出す)
// ---------- 1つずつオンにする-------- -//
else if(voice =="* TV on"){digitalWrite(led1、HIGH);}
else if(voice =="* fan on"){digitalWrite(led2、 HIGH);}
else if(voice =="* computer on"){digitalWrite(led3、HIGH);}
else if(voice =="* bedroom Lights on"){digitalWrite(led4 、HIGH);}
else if(voice =="* bathroom Lights on"){digitalWrite(led5、HIGH);}
// ---------- 1つオフにする-By-One ---------- //
else if(voice =="* TV off"){digitalWrite(led1、LOW);}
else if(voice =="*ファンオフ"){digitalWrite(led2、LOW);}
else if(voice =="* computer off"){digitalWrite(led3、LOW);}
else if(voice =="* bedroom Lights off"){digitalWrite(led4、LOW);}
else if(voice =="* bathroom Lights off"){digitalWrite(led5、LOW);}
// --------------------- -------------------------------------------------- //
voice ="";}} //開始後に変数をリセット
ステップ4:アプリケーション
今のところ、既製のアプリケーションを使用します。翌日、証明書が処理された後、アプリケーションを1回公開します。
Arduino用のBT音声制御 SimpleLabsINによって作成されました:https://apkpure.com/bt-voice-control-for-arduino/robotspace.simplelabs.amr_voice/download?from =details
このプロジェクトの作業ビデオ:
現在、機能はデバイスのオンとオフの切り替えに制限されていますが、ユーザーが自然言語処理を他のプロジェクトに統合できるように、基本レベルで自然言語を処理できます。
私とこのすばらしいプラットフォームのすべてのユーザーが参加できるようにしてくれたHackster.ioに感謝します。
若者や10代の若者が創造し、発明することを奨励するこれらの活動を実施していただきありがとうございます。
それが本当にあなたを助けたなら、親指を立てて、面白いプロジェクトのために私のチャンネルをフォローしてください。 :)
必要に応じて、このビデオを共有してください。
チャンネル登録していただきありがとうございます:https://www.youtube.com/c/rahulkhanna24june?sub_confirmation =1
お読みいただきありがとうございます!
コード
- サンプルコード
サンプルコード Arduino
//コーディング者:Angelo Casimiro(4/27/14)// Voice Activated Arduino(Bluetooth + Android)//自由に変更できますが、creditString voice; intled1 =2、// Connect LED1を忘れないでくださいピン#2led2 =3に、// LED 2をピン#3led3 =4に接続し、// LED 3をピン#4led4 =5に接続し、// LED 4をピン#5led5 =6に接続します。 // LED 5をピン#6に接続します// --------------------------関数を呼び出します---------- --------------------- // void allon(){digitalWrite(led1、HIGH); digitalWrite(led2、HIGH); digitalWrite(led3、HIGH); digitalWrite(led4、HIGH); digitalWrite(led5、HIGH);} void alloff(){digitalWrite(led1、LOW); digitalWrite(led2、LOW); digitalWrite(led3、LOW); digitalWrite(led4、LOW); digitalWrite(led5、LOW);} // ---------------------------------------- ------------------------------- // void setup(){Serial.begin(9600); pinMode(led1、OUTPUT); pinMode(led2、OUTPUT); pinMode(led3、OUTPUT); pinMode(led4、OUTPUT); pinMode(led5、OUTPUT);} // ---------------------------------------- ------------------------------- // void loop(){while(Serial.available()){//チェックdelay(10)を読み取るために使用可能なバイトがある場合。 //物事を安定させるために遅延が追加されましたcharc =Serial.read(); //シリアル読み取りを実行しますif(c =='#'){break;} //単語voice + =c;の後に#が検出されたらループを終了します//音声の短縮=音声+ c} if(voice.length()> 0){Serial.println(voice); // -------------------- -------------------------------------------------- -// // ----------複数のピン/ LEDを制御します---------- // if(voice =="* all on"){allon();} / /すべてのピンをオフにする(Call Function)else if(voice =="* all off"){alloff();} //すべてのピンをオンにする(Call Function)// ---------- Turn On One-By-One ---------- // else if(voice =="* TV on"){digitalWrite(led1、HIGH);} else if(voice =="* fan on" ){digitalWrite(led2、HIGH);} else if(voice =="* computer on"){digitalWrite(led3、HIGH);} else if(voice =="* bedroom Lights on"){digitalWrite(led4、HIGH );} else if(voice =="* bathroom Lights on"){digitalWrite(led5、HIGH);} // ---------- 1つずつオフにする------ ---- // else if(voice =="* TV off"){digitalWrite(led1、LOW);} else if(voice =="* fan off"){digitalWrite(led2、LOW);} else if (voice =="* computer off"){digitalWrite(led3、LOW);} else if(voice =="* bedroom Lights off"){digi talWrite(led4、LOW);} else if(voice =="* bathroom Lights off"){digitalWrite(led5、LOW);} // ------------------ -------------------------------------------------- --- // voice ="";}} //開始後に変数をリセットします
プロジェクトリポジトリ
https://github.com/Rahul24-06/Arduino-Tutorial-JARVIS-v1-How-to-make-a-Home-Automation 回路図
製造プロセス