- 必要な材料:
- 作業方法:
- 前提条件:
- ACリモコンの動作:
- 回路図と説明:
- ACリモート信号のデコード:
- 主なArduinoプログラム:
- Androidアプリケーションのインストール:
- 携帯電話制御ACの動作:
今日の現代の世界では、どこへ行っても私たちの周りにはたくさんの電子機器があります。しかし、何よりも、私たちがいつもポケットに入れているデバイスは1つだけです。はい、それは私たちの携帯電話です。今や携帯電話は、コミュニケーションに使用されるデバイス以上のものになりました。それらは私たちのカメラであり、私たちの地図であり、私たちのショッピングカートであり、そうではありませんか?
この機能が手元にあるので、リモコンを使用してテレビ、AC、ホームシアターなど、自宅の電子アプリケーションを制御するのは本当に退屈なアイデアです。快適なベッドからACのリモコンに手を伸ばすのはいつもイライラします。またはソファ。したがって、このプロジェクトでは、BluetoothとArduinoを使用してスマートフォンからエアコンを制御できる小さなセットアップを構築します。面白そうですね!作りましょう
必要な材料:
- Arduino Mega 2560
- TSOP(HS0038)
- IR主導
- 任意のカラーLEDと1K抵抗(オプション)
- HC-06
- ブレッドボード
- 接続線
作業方法:
私たちがテレビ、ホームシアター、ACなどを制御するために使用する私たちの家のすべてのリモコンは、IRブラスターの助けを借りて動作します。 IRブラスターは、 反復パルスによって信号をブラスター可能性が何もなく、IR LEDではありません。この信号は、電子機器の受信機によって読み取られます。リモートの異なるボタンごとに、固有の信号が発信され、受信機によって読み取られた後、特定の事前定義されたタスクを実行するために使用されます。リモートから出力されるこの信号を読み取ることができれば、その特定のタスクを実行する必要があるときに、IRLEDを使用して同じ信号を模倣できます。以前、ユニバーサルIRリモートおよび自動AC温度制御用のIRブラスター回路を作成しました。
A TSOPは、リモコンからの信号をデコードするために使用できることがIR受信機です。このTSOPを使用して、リモートからのすべての情報をデコードし、Arduinoに保存します。次に、その情報とIR LEDを使用して、必要に応じてArduinoからIR信号を再作成できます。
前提条件:
このArduinoBluetooth制御ACプロジェクトでは、コードサイズが大きいため、Arduino Megaがあり、他のバージョンのArduinoがないことを確認してください。このリンクを使用してIRリモートライブラリをインストールし、TSOPおよびIRBlasterを操作します。
ACリモコンの動作:
プロジェクトに進む前に、少し時間を取って、ACリモコンがどのように機能するかを確認してください。 ACリモコンは、TV、DVDIRリモコンとは少し異なる方法で動作します。リモコンには10〜12個のボタンしかない場合がありますが、さまざまな種類の信号を送信できます。つまり、リモートは同じボタンに対して毎回同じコードを送信するわけではありません。たとえば、下ボタンを使用して温度を下げて24°C(摂氏)にすると、一連のデータを含む信号が得られますが、もう一度押して25°Cに設定すると、同じものは得られません。温度が24ではなく25になっているため、データ。同様に、25のコードもファン速度、スリープ設定などによって異なります。したがって、すべてのオプションをいじくり回さず、温度値のみを他の設定の定数値に集中させましょう。 。
もう一つの問題は、送信と各ボタンの押しのために送られているデータを、通常のリモコンの量のいずれか24ビットか48ビットが、 ACリモートかもしれないが、228ビットまで送り、 各信号は温度、ファン速度などの多くの情報を含んでいるので、スリープタイミング、スイングスタイルなど。これが、より良いストレージオプションのためにArduinoMegaが必要な理由です。
回路図と説明:
幸いなことに、この携帯電話制御エアコンのハードウェアセットアップは非常に簡単です。ブレッドボードを使用して、以下に示すように接続するだけです。
次の表を使用して、接続を確認することもできます。
S.No: |
コンポーネントピン |
Arduinoピン |
1 |
TSOP – Vcc |
5V |
2 |
TSOP – Gnd |
Gnd |
3 |
TSOP-シグナル |
8 |
4 |
IR Led –カソード |
Gnd |
5 |
IR主導–アノード |
9 |
6 |
HC-05-Vcc |
5V |
7 |
HC05 – Gnd |
接地 |
8 |
HC05 – Tx |
10 |
9 |
HC05 – Rx |
11 |
接続が完了すると、次のようになります。私は物事を片付けるためにブレッドボードを使用しましたが、すべてのコンポーネントを接続するためにオスからメスのワイヤーを直接接続することもできます
ACリモート信号のデコード:
ACを制御するための最初のステップは、TSOP1738を使用してACリモートコントロールIRコードをデコードすることです。回路図に示されているようにすべての接続を行い、記載されているすべてのライブラリがインストールされていることを確認します。次に、 [ファイル]-> [例]-> [IRremote]-> [IRrecvDumpV2]に あるサンプルプログラム「 IRrecvDumpV2 」を 開き ます。
int recvPin = 8; IRrecv irrecv(recvPin);
TSOPはピン8に接続されているため、上記のように行番号9をint recPin = 8に変更します。次に、プログラムをArduino Megaにアップロードし、シリアルモニターを開きます。
リモコンをTSOPに向けて、任意のボタンを押します。ボタンを押すたびに、それぞれの信号がTSOP1738によって読み取られ、Arduinoによってデコードされ、シリアルモニターに表示されます。リモコンの温度が変化するたびに、異なるデータが取得されます。メインプログラムで使用するため、このデータを保存します。シリアルモニターは次のようになります。コピーしたデータを保存したWordファイルも表示しました。
スクリーンショットは、ACリモコンの温度を26°Cに設定するためのコードを示しています。リモートに基づいて、異なるコードのセットを取得します。同様に、すべての異なるレベルの温度のコードをコピーします。このチュートリアルの最後にあるArduinoコードですべてのエアコンリモコンIRコードを確認できます。
主なArduinoプログラム:
完全なメインArduinoのプログラムは、このページの一番下にすることができますが、同じプログラムを使用することはできません。サンプルスケッチから取得したシグナルコード値を変更する必要があります。Arduino IDEでメインプログラムを開き、以下に示すこの領域までスクロールダウンします。ここで、配列値をリモート用に取得した値に置き換える必要があります。
私は10個のアレイを使用し、そのうち2個はACのオンとオフを切り替え、残りの8個は異なる温度の設定に使用したことに注意してください。たとえば、Temp23はACに23 * Cを設定するために使用されるため、その配列のそれぞれのコードを使用します。それが完了したら、コードをArduinoにアップロードするだけです。
このプロジェクトには2つのライブラリをインポートする必要があります。1つはArduinoに追加したばかりの IRremote ライブラリで、もう1つはBluetoothモジュールの使用に役立つ組み込みのソフトウェアシリアルライブラリです。
#include
次に、ピン10と11でBluetoothモジュールを初期化し、 irsendというオブジェクトを使用してライブラリのすべてのIR機能にアクセスします。
SoftwareSerial BT_module(10、11); // RX、TX IRsend irsend;
次は、非常に重要なコード行です。これはあなたのACを制御するための情報が存在するところです。以下に示すものは私のACリモコン用です、あなたは前のステップであなたのものを手に入れているはずです。
次に、 void setup 関数内で、2つのシリアル通信を初期化します。1つは9600ボーレートのBluetoothで、もう1つは57600ボーレートのシリアルモニターです。
void setup(){BT_module.begin(9600); // BTは9600Serial.begin(57600);で動作します //シリアルモニター作業息子57600}
ボイドループ (無限ループ)内で、Bluetoothモジュールが受信したものがあるかどうかを確認します。何かを受け取った場合、その情報を変数 BluetoothDataに 保存し ます 。
while(BT_module.available())//データが来る場合{BluetoothData = BT_module.read(); //それを読んで保存しますSerial.println(BluetoothData); //テスト目的でシリアルに印刷します}
Bluetoothが受信する情報は、次のステップでインストールするAndroidアプリで押されたボタンに基づいています。情報を受け取ったら、以下のようにそれぞれのIRコードをトリガーする必要があります
if(BluetoothData == '2'){irsend.sendRaw(Temp23、sizeof(Temp23)/ sizeof(Temp23)、khz); delay(2000); //信号を送信してTemperatue23Cを設定します}
ここでコード「2」を受け取った場合は、ACの温度を23°Cに設定する必要があります。同様に、ACのすべての基本的な制御機能を実行するための0から9までのコードがあります。このページの最後にある完全なarduinoコードを参照できます。
Androidアプリケーションのインストール:
スマートフォン制御のエアコンの最後のステップは、Androidアプリケーションをインストールすることです。このプロジェクトのAndroidアプリケーションは、Androidモードの処理を使用して作成されました。処理は、組み込みプロジェクト用の.EXEファイルまたはAPKファイルを作成するための優れたツールです。これはArduinoと同じようにオープンソースプラットフォームであるため、完全に無料でダウンロードして使用できます。
深く掘り下げたくない場合は、ここからzipファイル内のAPKファイルをダウンロードして、携帯電話に直接インストールできます。アプリケーションを開くと、次のような画面が表示されます。その後、次のステップに進んで、プロジェクトでの作業を楽しむことができます。しかし、アプリケーションのプログラムを自分のニーズに合うように微調整したい場合は、さらに読むことができます。
処理コードのための完全なプログラムファイルをすることができ、ここからダウンロード。このZipには、アプリケーションが機能するために使用するコードと画像ソースが含まれています。コードを開いた後、次の行を微調整して、必要に応じて調整できます。
前に述べたように、ProcessingはArduinoに似ています。そのため、 voidセットアップ 関数と voidループ (ここではdraw)関数もあります。 void setup 関数内で、電話のBluetoothにArduinoのBluetoothに接続するように指示します。ここでの私のデバイス名は「HC-05」なので、コード行は次のようになります。
bt.start(); // BT接続のリッスンを開始しますbt.getPairedDeviceNames(); bt.connectToDeviceByName( "HC-05"); // HC-06Bluetoothモジュールに接続します
次に、 load_buttons() 関数内で、 必要な 数のボタンを描画できます。アプリケーションに表示されているように、10個のボタンを描画しました。続いて、タッチしているボタンを検出するために使用される read_buttons() 関数があります。各ボタンには特定の色があるため、ユーザーが画面に触れると、どの色に触れたかを確認し、どのボタンに触れたかを判断します。ボタンを作成するためのサンプル・コードと色に基づいて選択を以下に示します。
fill(255,145,3); rect(width / 2-width / 4、height / 2、width / 4、height / 12); fill(255); text( "25C"、width / 2-width / 4、height / 2); //ボタン5if(color_val ==-13589993){byte data = {'0'}; bt.broadcast(data);}
「bytedata = {'0'};」という行 非常に重要な行です。ここで、Bluetooth経由でArduinoに送信する必要のあるコードを決定します。ここでこのボタンを押すと、文字「0」がBluetoothからArduinoに送信されます。同様に、ボタンごとに異なる文字を送信できます。次に、これらの文字をArduino側で比較し、それぞれのアクションを実行できます。
疑問がある場合は、コメントセクションから私に連絡して、最善を尽くして支援してください。
携帯電話制御ACの動作:
ハードウェア、Arduinoコード、Androidアプリケーションの準備ができたら、出力をお楽しみください。Arduinoコードをハードウェアにアップロードし、ACに向けて配置します。次に、携帯電話でAndroidアプリケーションを開きます。すべてが期待どおりに機能している場合は、以下に示すように「 接続先:device_name(一部のコード) 」と表示されます。
Androidアプリケーションのいずれかのボタンを押すだけで、リモートを使用しているかのようにACでそれぞれのアクションがトリガーされます。コードを変更することでボタンをいくつでも追加でき、室温や存在に基づいてACを自動化することもできます。完全なArduinoコードと以下のビデオを確認してください。
プロジェクトを楽しんで、その背後にあるコンセプトを理解していただければ幸いです。いつものように、この作業を行う際に問題が発生した場合は、フォーラムを使用して質問を投稿し、解決することができます。
AndroidアプリケーションをインストールするためのAPKファイルはここからダウンロードできます。