TVリモコンを使用してArduinoベースのホームオートメーションシステムを設計する方法は?

ホームオートメーションシステムは、現代世界で最も急速に成長しているコンセプトです。スマートホームオートメーションは、単一のデバイスを使用して、住宅のさまざまな電子パラメータを制御する概念です。たとえば、家電製品の切り替え、セキュリティアラームの監視、ガレージドアの自動化などです。



テレビのリモコンを使った自動化システム

このプロジェクトでは、シンプルなテレビのリモコンを使用して、シンプルなホームオートメーションシステムを作成します。このテレビのリモコンは、マイクロコントローラーボードに接続されているすべてのアプライアンスを制御します。



テレビのリモコンを使ってホームオートメーションシステムを作る方法は?

すでに市場で入手可能なホームオートメーションシステムは、非常に高価です。 Arduinoボードを使用して、さまざまな家電製品を接続し、テレビのリモコンを使用してそれらを制御できます。これは非常に低コストで、家を自動化する効率的な方法になります。それでは、一歩先に進み、プロジェクトを開始するための情報の収集を開始しましょう。



ステップ1:コンポーネントの収集

プロジェクトを開始するための最良のアプローチは、コンポーネントのリストを作成し、これらのコンポーネントの簡単な調査を行うことです。コンポーネントが不足しているという理由だけでプロジェクトの途中にとどまりたくないからです。このプロジェクトで使用するコンポーネントのリストを以下に示します。



  • TSOP 1738IRレシーバー
  • リモコン
  • ブレッドボード
  • ジャンパー線

ステップ2:コンポーネントの調査

使用するコンポーネントがわかったので、それらを簡単に調べて、回路がどのように機能するかをよりよく理解しましょう。

Arduino Nanoは、さまざまな回路でさまざまな操作を実行するマイクロコントローラーボードです。それは必要です Cコード これは、実行するタスクとその方法をボードに指示します。 13個のデジタルI / Oピンがあり、13個の異なるデバイスを操作できることを意味します。 13を超えるデバイスを制御する場合は、ArduinoMegaを使用してください。

Arduino Nano



TSOP 1738は、リモートコントロール用のIRモジュールです。搬送周波数は38kHzです。これは、信号を検出して復調する光検出器で構成されています。その出力は、Arduinoまたはその他のマイクロコントローラーボードによって直接使用されます。

TSOPセンサー

リレーモジュールはスイッチングデバイスです。 2つのモードで動作します。 ノーマルオープン(NO) そして 通常は クローズ(NC) 。 NOモードでは、Arduinoを介してリレーにHIGH信号を送信しない限り、回路は常に壊れています。 NCモードは逆に悪化します。リレーモジュールをオンにしない限り、回路は常に完全です。以下に示す方法で、電気器具のプラス線をリレーモジュールに接続していることを確認してください。

リレーモジュール

標準のテレビのリモコンには、電源ボタンとすべての数字キーがあります。これらの数字キーは、電化製品の切り替えに使用されます。

ステップ3:回路を作る

すべてのコンポーネントがどのように機能するかがわかったので、先に進んで回路の作成を開始しましょう。

  1. ブレッドボードを取り、ArduinoNanoとTSOP1738を挿入します。
  2. Arduinoを介してTSOP1738モジュールとリレーモジュールの電源を入れます。接続します アウト TSOP1738のピンをArduinoのピン11に接続し、 Arduinoへのリレーモジュールのピン。私は2つの電化製品のみを制御しているため、ここではリレーモジュールのみを使用しています。より多くのアプライアンスを制御する場合は、同様にさらに多くのリレーモジュールを接続します。

    回路図

ステップ4:Arduino入門

Arduino IDEを使用したことがない場合でも、ArduinoIDEをセットアップするためのステップバイステップを以下に示しますのでご安心ください。

  1. ArduinoボードをPCに接続し、コントロールパネルを開きます。クリック ハードウェアとサウンド。 開催中 デバイスとプリンター ボードが接続されているポートを見つけます。私の場合は COM14 しかし、それはコンピュータによって異なります。

    ポートを見つける

  2. ツールメニューをクリックして、ボードを次のように設定します Arduino Nano(AT Mega 328P)

    セッティングボード

  3. [ツール]メニューをもう一度クリックし、前にコントロールパネルで確認したポートを設定します。

    設定ポート

  4. 同じツールメニューで、プロセッサを次のように設定します ATmega328p(古いブートローダー)

    設定プロセッサ

  5. リモコンから送信されたデータをデコードするには、AコードArduino用の特別なライブラリが必要です。このライブラリは、以下のリンクのコードと一緒に添付されています。ライブラリを追加するにはgoto スケッチ>ライブラリを含める> ZIPライブラリを追加 。ボックスが表示されます。コンピューターでZIPフォルダーを見つけ、[OK]をクリックしてフォルダーを含めます。

    ライブラリを含める

  6. 以下に添付されているコードをダウンロードし、アップロードボタンをクリックして、ArduinoNanoボードにコードを書き込みます。

    アップロード

クリックしてください ダウンロード コードを取得するためのボタン。

ステップ5:コード

コードは非常に理解しやすいですが、それでも、以下に簡単に説明します。

1.1。 void setup() INPUTまたはOUTPUTピンを初期化する関数です。この関数は、を使用してボーレートも設定します Serial.begin() コマンド。ボーレートは、マイクロコントローラの通信速度です。

2.2。 void loop() ループで繰り返し実行される関数です。このループでは、マイクロコントローラーボードに実行するタスクとその方法を指示するコードを記述します。

3. TVリモコンからデータを送信する場合、Arduinoはこのデータをデコードする必要があります。このために、特別なライブラリが含まれています 含める <IRremote.h>。 このライブラリの関数は、リモートから送信された各キーのデータをデコードするために使用されます。

#include int RECV_PIN = 11; IRrecv irrecv(RECV_PIN); decode_resultsの結果; void setup(){Serial.begin(9600); irrecv.enableIRIn(); } void loop(){if(irrecv.decode(&results)){Serial.println(results.value、HEX); irrecv.resume(); } delay(100); }

上記のコードは、リモートから送信された値を読み取り、対応するHEX値にデコードしています。このコードは、ArduinoIDEのIRremoteライブラリの例から抜粋したものです。このコードは、ダウンロードリンクにも名前で添付されています test.ino 上記の提供。すべての数値キーが押されたときのこの関数の出力は、次のようになります。

デコード

4.で code.ino 上記のダウンロードリンクに添付されている、使用されるArduinoのピンが初期化されます。の中に void loop() 機能、リモコンのボタンを押すと、最初は 誤り 状態は 本当 それぞれのリレーがオンになります。同じボタンをもう一度押すと、ブール状態が切り替わり、リレーがオフになります。電源ボタンは、すべてのリレーをオンまたはオフにします。

void loop(){if(irrecv.decode(&results)){Serial.println(results.value、HEX); delay(100); if(results.value == 0x40BD00FF){i =!i; digitalWrite(IN1、i); } if(results.value == 0x40BD807F){j =!j; digitalWrite(IN2、j); // delay(200); } if(results.value == 0x40BD28D7){m =!m; digitalWrite(IN1、m); digitalWrite(IN2、m); digitalWrite(IN3、m); digitalWrite(IN4、m); // delay(200); } irrecv.resume(); //次の値を受け取ります// delay(100); }}

これは、テレビのリモコンで制御されるシンプルなホームオートメーションシステムを作成するための手順全体でした。これで、アプライアンスの数に応じてリレーモジュールを接続し、独自のスマートホームオートメーションシステムを楽しむことができます。