スマートホームオートメーションシステム–回路とソースコード
Arduinoを使用したスマートホームオートメーションシステムプロジェクト
自動化(ホームオートメーションや産業用自動化など)は、人的支援が少なく、よりスマートな方法でタスクを完了するのに役立つため、今日の世界で重要になっています。住宅は、自動化デバイスの助けを借りて、最近よりスマートになり、開発されています。家電製品は、従来のスイッチではなく、リモコンのスイッチを使用しています。今日の世界では、ほとんどの人がスマートフォンにアクセスでき、その使用は私たちの生活に非常に人気があり、不可欠になっています。スマートフォンを使用して、ワンクリックまたはワンメッセージで家電製品を制御できます。コントローラーと通信デバイスの助けを借りて、家電製品をリモート制御することができます。このプロジェクトでは、スマートフォンでリモート制御されるHC-05Bluetoothモジュールを使用したスマートホームオートメーションプロジェクトの開発にArduinoUNOボードを使用します。自分で仕事をすることができない麻痺した人々にとっては本当に役立つ可能性があり、そのようなデバイスはこれらの人々にとって大きな助けになる可能性があります。
- 関連記事:音声認識ベースのホームオートメーションシステム
必要なコンポーネント
- Arduino UNO
- HC-05Bluetoothモジュール
- リレー
- ジャンパー線
- 電球
- BluetoothターミナルHC-05アプリ(Playストアからダウンロード)
Arduino UNO
Arduinoは、エレクトロニクスプロジェクトの開発に使用されるオープンソースプラットフォームです。いつでも簡単にプログラム、消去、再プログラムできます。 Arduino UNO、Arduino Nano、Arduino Mega、Arduino lilypadなど、用途に応じて仕様が異なる多くのArduinoボードが市場に出回っています。このプロジェクトでは、ArduinoUNOを使用して家電製品を自動的に制御します。 16MHzのクロック速度で動作するATmega328マイクロコントローラICが搭載されています。これは、USART、I2C、およびSPI通信プロトコルで動作できる強力な機能です。このボードは通常、マイクロUSBケーブルを使用したソフトウェアArduinoIDEを使用してプログラムされます。 ATmega328には、事前にプログラムされたオンボードブートローダーが付属しており、外部ハードウェアの助けを借りずにコードを簡単にアップロードできます。エレクトロニクスプロジェクトや製品の製造に幅広い用途があります。 CおよびC++言語は、習得と使用が非常に簡単なボードのプログラミングに使用されます。 Arduino IDEを使用すると、プログラミングがはるかに簡単になります。コードを2つの部分、つまりvoid setup()とvoid loop()に分けます。関数voidsetup()は1回だけ実行され、主に何らかのプロセスを開始するために使用されますが、void loop()は、継続的に実行する必要があるコードの一部を構成します。
このモデルは、6つのアナログ入力ピンと14のデジタルGPIOピンで構成され、入出力として使用できます。そのうちの6つは、pinMode()、digitalWrite( )、digitalRead()およびanalogRead()関数。 6つのアナログ入力チャネルはピンA0からA5までで、10ビットの分解能を提供します。ボードは、5ボルトで動作するUSBケーブルを使用するか、7〜20ボルトで動作するDCジャックから電力を供給できます。低電力デバイスを操作するために3.3ボルトを生成するオンボード電圧レギュレータがあります。 ATmega328はUSART、SPI、およびI2C通信プロトコルで動作するため、USART通信用に0(Rx)および1(Tx)ピン、I2CおよびSS(10)、MOSI(11)用にSDA(A4)およびSCL(A5)ピンがあります。 、SPI通信プロトコル用のMISO(12)およびSCK(13)ピン。これらの仕様により、ArduinoUnoボードはホームオートメーションプロジェクトに最適です。
- 関連記事:セキュリティ制御にLDRとIC4049を使用した電子眼球回路
HC-05Bluetoothモジュール
HC-05は、ワイヤレス通信に使用されるBluetoothモジュールです。これは主に、マイクロコントローラー、スマートフォン、コンピューター、センサーなどの間のシリアル双方向ワイヤレス通信を確立するために使用されます。このBluetoothモジュールの範囲は100メートル未満であり、大気条件にも依存します。 USART(Universal Synchronous Asynchronous Receiver Transmitter)プロトコルで動作し、他のデバイスと通信します。サポートされているボーレート9600、19200、38400、57600、115200、230400、460800で、マスターモードとスレーブモードの両方で動作します。デフォルトでは、スレーブモードで動作し、マスターモードはATコマンドを使用して構成できます。これは、マイクロコントローラーから任意のデバイスへ、およびデバイスからマイクロコントローラーへの双方向のデータ転送に使用できます。 HC-05 Bluetoothモジュールは、コマンドモードとデータモードで動作します。コマンドモードは、いくつかのATコマンドを使用してHC-05の構成設定にアクセスするために使用され、データモードは、データをシリアルに送信するために使用されます。コマンドモードにアクセスするには、「キー」ピンを接地し、ATコマンドを使用してその設定を変更できます。モジュールの名前、パスワード、ボーレートなどを変更するために使用できるATコマンドがあります。 ATコマンドは次のとおりです。
- AT –モジュールが通信しているかどうかを確認するため
- AT + NAME =hc-05 –デバイスの名前を「hc-05」に変更する場合
- AT + PSWD =1234 –パスワードを1234に変更する場合
- AT + UART =9600、1、0 –ボーレートを9600に変更するには、ストップビットを1に、パリティビットを0に変更します。
関連プロジェクト:LDRを使用した自動LED非常灯回路
HC-05からピンアウト:
EN/キーピン :このピンは、Bluetoothモジュールをコマンドモードに設定するために使用されます またはデータモード 。このピンをハイに設定するとコマンドモードにアクセスでき、ローに設定するとデータモードにアクセスできます。デフォルトでは、データモードでは低に設定されています。
- VCC :これは、5Vまたは3.3Vのいずれかに接続されている電源ピンです。
- グラウンド :これはBluetoothモジュールのアースピンです。
- TXD :このピンはデータのシリアル送信に使用されます。
- RXD :このピンは、データをシリアルに受信するために使用されます。
- 状態 :このピンは、モジュールが他のデバイスに接続されているか切断されているかを示します。
HC-05のピン | 説明 |
EN / key | 高–コマンドモード、低–データモード |
VCC | 3.3 V〜5 V |
GND | 地面 |
TXD | シリアルデータの送信 |
RXD | シリアルデータを受信する |
状態 | モジュールが接続されているかどうかを示します |
このプロジェクトでは、HC-05を使用してArduinoUnoとスマートフォン間のシリアルワイヤレス通信を確立します。これは、Hc-05をArduino Unoに接続し、スマートフォンにアプリケーションをインストールすることで実行できます。スマートフォンをHC-05に接続するために利用できるさまざまなアプリケーションがありますが。ただし、ここでは、PlayストアからダウンロードできるBluetoothターミナルHC-05を使用します。回路図に示されているように、HC-05をArduinoUNOに接続します。 HC-05のTXDピンはArduinoUnoのRXD(ピン1)に接続されます。HC-05のRXDピンはArduino UnoのRX(ピン0)に接続されます。 EN/キーがLOWに設定されています。スマートフォンのBluetoothをオンにして、Bluetoothデバイスを検索します。 「HC-05」という名前のBluetoothデバイスに接続します。デフォルトのパスワードは「0000」または「1234」です。
HC-05 Bluetoothモジュールには、接続ステータスを示す赤いLEDが組み込まれています。接続前は定期的に点滅し、接続後は点滅速度が遅くなります。
- 関連プロジェクト:555タイマーとBC547トランジスタを使用したシンプルなタッチセンシティブスイッチ回路
HC-05 Bluetoothモジュールのアプリケーション:
- コンピューターおよび周辺機器
- GPS受信機
- 産業用制御
- マイクロコントローラープロジェクト
リレー
リレーは、1つまたは複数の大きな回路をオンまたはオフにするために、小さな電流で動作する電磁スイッチです。それは、小さな電流が流れると一時的な磁石に変換する電磁石コイルで構成されています。コアを備えたコイルに磁場を生成するために比較的小さな電流が使用され、これははるかに大きな電流を制御できるスイッチを操作するために使用されます。以前のリレーは、信号を増幅するために電信や電話交換機で使用されていました。コンピュータの発明後、リレーはブール演算と論理演算を実行するために使用されました。リレーには、回路での使用に応じてさまざまなサイズと種類があります。リレーの主な用途には、モーターコントロール、自動車用途、産業用途、ホームオートメーションなどがあります。
このプロジェクトでは、電磁リレーを使用して、チューブライト、電球、ファン、または家庭内のAC電源などの家電製品のオンとオフを切り替えます。 ArduinoUNOからのDC信号。リレーには6つのピンがあり、そのうち2つはVCCとグラウンドを使用してリレーに電力を供給します。 1つのピンは、マイクロコントローラーから「1」または「0」のいずれかの信号を取得するために使用されるデータピンです。その他の3ピンノーマルクローズ(NC)、コモン、ノーマルオープン(NO)は、AC電源アプライアンスの接続に使用されます。このリレーは、ノーマルオープンまたはノーマルクローズの2つの状態で動作します。
通常開:リレーがアクティブになると回路を閉じ、リレーが非アクティブになると回路を開きます。
通常閉:リレーがアクティブになると回路が開き、リレーが非アクティブになると回路が閉じます。
- 関連プロジェクト:ArduinoとLDRを使用した自動常夜灯
リレーのピン配置:
リレーのピン | 説明 |
VCC | 5V |
NC | |
COM | |
リレーの用途:
- リレーは、セーフティクリティカルなロジックを提供するために使用されます。
- これらは、小さな電圧信号で高電圧回路を制御するために使用されます。
- リレーは保護目的でも使用されます。
- リレーは、変電所やグリッドで、ある地点から別の地点に電力を供給するときに使用されます。
関連プロジェクト:LDRを使用した自動街路灯制御システム
回路図
回路は、Arduino、Bluetooth、リレー、およびLEDを使用して設計されています。 BluetoothをArduinoにシリアル接続しました。リレーは家電製品を操作するために使用されます。 4つのアプライアンスに4つのリレーを使用しました。リレーの番号を変更して、それに応じてさまざまな家電製品を操作できます。ハードウェアに移動している間、LEDは電球に置き換えられます。
家電製品を制御するためのコマンドは、「Bluetooth端末HC-05アプリ」を介して送信されます スマートフォンからBluetoothに、Arduinoに接続します。次に、ArduinoはBluetoothにシリアルに送られるデータを読み取ります。したがって、アクションはBluetoothからArduinoに送信されるコマンドに従って実行されます。
- 関連プロジェクト:IC4017および555タイマーを使用した信号機制御電子プロジェクト
Arduinoベースのホームオートメーションの動作
回路図に示されているように、ホームオートメーションプロジェクトへの接続を確立します。まず、回路図に示すように、電球をAC電源とリレーに接続します。次に、リレーにはArduinoUnoボードからDC電力が供給されます。リレーのデータピンは、ピン8、9、10、11でArduinoの出力ピンであるArduinoに接続されています。次に、図に示すようにHC-05モジュールをArduinoボードに接続し、Adruinoボードに電力を供給します。 Arduino IDEを使用して、プロジェクトの最後に指定されたコードをアップロードします。スマートフォンのBluetoothをオンにし、パスワードを入力してHC-05モジュールを接続します。デフォルトでは、パスワードは「0000」または「1234」です。スマートフォンをHC-05に正常に接続したら、「スマートフォンでBluetooth端末HC-05アプリ」を開きます。 」と表示され、HC-05に接続されているデバイスが表示されます。次に、データ「電球をオンにする」または「電球2をオフにする」を送信して、電球をオンまたはオフにします。これが、家の照明をリモートで制御する方法です。
- 関連プロジェクト:555タイマーを使用したクラップスイッチ回路電子プロジェクト
プロジェクトコード
#include
intbulb1 =8;
intbulb2 =9;
intbulb3 =10;
intbulb4 =11;
SoftwareSerial bt(0,1); / *(Rx、Tx)* /
文字列str;
void setup(){
bt.begin(9600);
Serial.begin(9600);
pinMode(bulb1、OUTPUT);
pinMode(bulb2、OUTPUT);
pinMode(bulb3、OUTPUT);
pinMode(bulb4、OUTPUT);
}
void loop(){
if(bt.available())
{
str =bt.read();
Serial.println(str);
// bullb1
if(str ==” bulb1 on”)
{
digitalWrite(bulb1、HIGH);
Serial.println(“ BUlB 1 is ON”);
}
else if (str ==” bulb1 off”)
{
digitalWrite(bulb1、LOW);
Serial.println(“ BUlB 1 is OFF”);
}
else
{
digitalWrite(bulb1、LOW);
}
// bullb2
if(str ==” bulb2 on”)
{
digitalWrite(bulb2、HIGH);
Serial.println( "BUlB 2 is ON");
}
else if(str =="bulb2 off")
{
digitalWrite(bulb2、LOW);
Serial.println( "BUlB 2 is OFF");
}
else
{
digitalWrite(bulb2、 LOW);
}
//// bullb3
if(str ==” bullb3 on”)
{
digitalWrite(bulb3、HIGH);
Serial.println( "BUlB 3 is ON");
}
else if(str =="bulb3 off")
{
digitalWrite(bulb3、LOW);
Serial.println( "BUlB 3 is OFF");
}
else
{
digitalWrite(bulb3、LOW);
}
//bulb4
if(str==”bulb4 on”)
{
digitalWrite (bulb4、HIGH);
Serial.println( "BUlB 4 is ON");
}
else if(str =="bulb4 off")
{
digitalWrite(bulb4、LOW);
Serial.println( "BUlB 4 is OFF");
}
else
{
digitalWrite(bulb4、LOW);
}
}
}
プログラミングコードの説明
プロジェクトに必要なライブラリを含めます。SoftwareSerial.hライブラリは、BluetoothモジュールHC-05とのシリアル通信用にインポートされます。
#include
4つのリレーのそれぞれのデータピンに接続される、8、9、10、および11のArduinoの出力ピンの変数の宣言。変数文字列「str」は、HC-05Bluetoothモジュールを使用してスマートフォンから取得したデータを格納します。
intbulb1 =8;
intbulb2 =9;
intbulb3 =10;
intbulb4 =11;
String str;
pinMode(bulb1、OUTPUT);
pinMode(bulb2、OUTPUT);
pinMode(bulb3、OUTPUT);
pinMode(bulb4、OUTPUT);
Bluetoothシリアル通信とシリアルモニターは9600ボーレートで開始されます。
bt.begin(9600);
Serial.begin(9600);
BluetoothモジュールHC-05を使用してスマートフォンから取得したデータが「bulb1on」の場合、リレーのデータピンをHIGHに設定して電球1をオンにします。データが「bulb1off」の場合、リレーのデータピンをLOWに設定して電球をオフにします。電球1のデータが受信されない場合は、電球1をLOWに設定します。電球2、電球3、電球4についても同じことが行われます。
if(str ==” bulb1 on”)
{
digitalWrite(bulb1、HIGH);
Serial.println( "BUlB 1 is ON");
}
else if(str ==” bulb1 off”)
{
digitalWrite(bulb1、LOW);
Serial.println( "BUlB 1 is OFF");
}
else
{
digitalWrite(bulb1、LOW);
}
したがって、Arduino UNO、Bluetooth、およびリレーを使用して、自宅の任意の家電製品を制御できます。また、このプロジェクトの構築に必要なコンポーネントの技術情報も提供しています。回路図は、家庭で使用されるAC電球に置き換えられるLEDで構成されています。
関連プロジェクト:
- 自動植物散水および灌漑システム–回路、コード、およびプロジェクトレポート
- 雨警報回路–雪、水、雨の検出器プロジェクト
- 水位インジケーターの回路図-2つの簡単なプロジェクト
- その他の電気電子工学プロジェクト
産業技術
- ホームオートメーションのアプリケーション
- スマートホームおよびビルディングオートメーション接続ソリューションを紹介するSiliconLabs
- スマートホームロックとアクセス制御のためのインテリジェントな回路保護とセンシング設計
- ホームオフィスへの5つのハードル輸送—そしてそれらを克服する方法
- Arduino警報システム:SERENA
- 1Sheeldを使用したスマートホームオートメーションおよびセキュリティシステム
- Python3とArduinoコミュニケーション
- ArduinoとGoogleスプレッドシートに基づく出席システム
- Octopod:Smart IoT Home / Industry Automation Project
- WARAN-ホームオートメーション
- Bluetoothベースのホームオートメーション