PC用のワイヤレスオン/オフスイッチの作成

スマート 照明、エンターテインメントシステム、その他の電化製品を制御するシステムは、自宅で簡単に設計でき、現代世界で最も急速に成長しているコンセプトでもあります。スマートホームシステムは、すべての電化製品またはデバイスが単一のリモコンを使用して制御されるという概念です。今日では、リレーモジュールのような単一のコンポーネントを使用して、家電製品の切り替え、セキュリティアラームの監視、ガレージドアの自動化など、家のさまざまな電子パラメータを制御できます。このプロジェクトでは、 パソコン によって制御されます Androidアプリケーション 。これらのシステムでは、ほとんどの場合、リモートコントロールはモバイルアプリケーションです。アンドロイドモバイルは人々の間で最も一般的であるため、 アンドロイドアプリケーション 私たちのPCを制御するための最良のオプションです。



ワイヤレスコンピュータスイッチ

携帯電話でPC用のワイヤレススイッチを作成するにはどうすればよいですか?

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

プロジェクトを作成するには、プロジェクトを完了するために必要な基本的なコンポーネントが何であるかを知っている必要があります。したがって、作業を開始する前の優れたアプローチは、時間を節約し、プロジェクトの途中で立ち往生する可能性を回避するために、すべてのコンポーネントの完全なリストを作成することです。市場で簡単に入手できるすべてのコンポーネントの完全なリストを以下に示します。



  • ESP32
  • 2N2222NPNトランジスタ
  • 1kオーム抵抗(x2)
  • 5Vリレーモジュール
  • 接続線

ステップ2:インストールするソフトウェア

ワイヤレススイッチを作成するので、オンとオフを切り替えるボタンが必要になります。携帯電話でこのボタンを操作したいので、そのためのアプリケーションを開発する必要があります。最も便利なアプリケーションはAndroidアプリケーションです。このアプリケーションを使用するには、2つのソフトウェアをインストールする必要があります。それらの両方を以下に示します。



  • AndroidStudio。
  • JAVAJDK。

ステップ3:AndroidStudioをインストールする

Android Studioをインストールする前に、 JAVA 最初にJDK。これをインストールするには、をクリックします EXE ファイル 上記のリンクからダウンロードしたものを、正常にインストールされるまで[次へ]をクリックします。コマンドプロンプトでJavaが外部コマンドまたは内部コマンドとして認識されるように、次の手順を実行します。



  1. 開いた コントロールパネル をクリックします システムとセキュリティ
  2. クリック システム

    システム

  3. クリック 高度なシステム設定 次にをクリックします 環境変数

    高度なシステム設定

  4. [システム変数]セクションで、パスをクリックしてから[編集]をクリックします。新しい 環境変数の編集 ボックスが表示されます。

    パスの編集



  5. 今すぐに行きます C: Program Files Java あなたのPCで。 JDKフォルダーを開き、binフォルダーをクリックして、そのフォルダーのパスをコピーします。

    binフォルダーのパス

  6. 次に、[環境変数の編集]ボックスに移動し、[新規]をクリックして新しい変数を作成します。上記の手順でコピーしたパスを新しい変数に貼り付けて保存します。
  7. 完全にインストールされているかどうかを確認するには、コマンドプロンプトを開いて、次のように入力します。 java –version

    JAVAバージョン

これで、JavaJDKがコンピューターに正常にインストールされました。それでは、AndroidStudioをコンピューターにインストールしましょう。このソフトウェアのインストールは非常に簡単です。ダウンロードしたファイルを開き、ソフトウェアが完全にインストールされるまで[次へ]をクリックする必要があります。

ステップ4:Firebaseへの接続

Android Studioをインストールしたので、Android Studioを起動して、Firebaseに接続するための新しいプロジェクトを作成しましょう。これを行うには、次の手順に従います。

1. Android Studioを起動し、をクリックして新しいプロジェクトを作成します。 空のアクティビティ

新たなプロジェクト

2.プロジェクトに次の名前を付けます computerSwitc、 選択する Kotlin 言語として、携帯電話に応じて最小APIレベルを選択します。

新たなプロジェクト

3.インターネットを使用してラズベリーパイのピンを制御するため。アプリにローカルWi-Fiへのアクセス許可を設定します。これを行うには、に移動します アプリ>マニフェスト> AndroidManifest.xml 次のコマンドを追加します。

 

インターネット許可

3.次に、nをクリックします ツール。 ドロップダウンメニューが表示され、そこから選択します Firebase。

Firebase接続

4.画面の右側に大きなメニューが表示され、firebaseが提供しているほぼすべてのサービスのメニューが提供されます。しかし現在、私たちの主な焦点はリアルタイムデータベースです。したがって、Real-TimeDatabaseをクリックします。 「へのリンク データの保存と取得 ' 現れる。そのリンクをクリックしてください。

FirebaseAssistant

5.接続します Firebaseに接続する ボタン。デフォルトのWebブラウザに移動します。まず、Gmailアカウントにログインするように求められます。次に、をクリックします リアルタイムデータベースをアプリに追加します 変更を受け入れます。

6.次に移動します Firebaseコンソール 。そこには、すでに作成されたプロジェクトが表示されます。そのプロジェクトのアイコンのAndroidロゴは、それがすでにAndroidアプリケーションに属していることを意味します。

7.から 発展させる 画面の左側に表示されるメニューで、 データベース。 のボタン データベースの作成 右側に表示されます。そのボタンをクリックします。

8.データベースのモードを設定するように求めるメニューが表示されます。クリック テストモード 次にクリックします 有効にする

テストモード

9.覚えておくべき本当に重要なステップは、 Cloud Firestoreリアルタイムデータベース。 これを行うには、下の画像に示されているボタンをクリックして、目的のオプションを変更します。

リアルタイムFirebase

10.次に、をクリックします。 ルール タブを押して、構成を次のように変更します 本当 。すべてが完了したら、をクリックします 公開する

構成の変更

11. Firebaseを接続する以外に行う必要があることの1つは、データベースのバージョンを更新することです。そのためには、をクリックしてください に行く ドキュメント 。今クリック ガイド 選択します Androidガイド 画面に表示されるリストから。表が表示されるまで下にスクロールします。そのテーブルでReal-TimeDatabaseを探し、そのバージョンを見つけます。私の場合は 19.1.0

バージョン

12.をクリックします Gradleスクリプト、 画面左側のメニュー。次に、 構築されました。 gradle(モジュール:アプリ)。 コードで、Real-Timeデータベースのバージョンを検索し、新しいバージョンに置き換えます。

Firebaseバージョン

13.次に、画面の上部に表示される同期ボタンをクリックして、プロジェクトを同期します。

ステップ5:レイアウトを作成する

これで、AndroidアプリケーションがFirebaseに接続されたので、ユーザーがコンピューターのオンとオフを切り替えるために使用するアプリのレイアウトを作成しましょう。レイアウトを作成するには、 アプリ>解像度>レイアウト> activity_main.xml。 ここでレイアウトを設計します。以下のコードをコピーして、テキストビューを作成します。

 

アプリのレイアウトは次のようになります。

アプリのレイアウト

ステップ6:Kotlinでのバックエンドコーディング

アプリケーションのフロントエンドを作成したので、一歩先に進み、Firebaseに接続するためのバックエンドコードを記述しましょう。オフ状態のときにFirebaseデータベースに0を送信し、オン状態のときにFirebaseデータベースに1を送信するトグルスイッチを接続しました。

さて、左隅にあるをクリックします app> java> com.example.computerswitch> main_activity、 クラスに次のコードを追加します。ライブラリのエラーが発生した場合は、を押します ALT + ENTER そのライブラリを自動的に含める。

var database = FirebaseDatabase.getInstance()var myRef = database.reference internal lateinit var btnSwitch:Switch override fun onCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)btnSwitch = findViewById(R。 id.switch2)as Switch btnSwitch.setOnClickListener {if(btnSwitch.isChecked){myRef.child( 'switch')。setValue( '1')} else {myRef.child( 'switch')。setValue( '0') }}}

下の画像では、スイッチをオンにすると、「1」がFirebaseデータベースにアップロードされていることがわかります。同様に、スイッチがオフになっている場合、ここでは「0」が置き換えられます。

ステップ7:Arduino入門

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

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

    ポートを見つける

  3. [ファイル]をクリックしてから、[設定]をクリックします。次のリンクをコピーします 追加のボードマネージャーのURL。 「「 https://dl.espressif.com/dl/package_esp32_index.json '

    環境設定

  4. ここで、Arduino IDEでESP32を使用するには、ESP32でコードを書き込んで使用できるようにする特別なライブラリをインポートする必要があります。これらの2つのライブラリは、以下のリンクに添付されています。ライブラリを含めるには、[ スケッチ>ライブラリを含める> ZIPライブラリを追加 。ボックスが表示されます。コンピューターでZIPフォルダーを見つけ、[OK]をクリックしてフォルダーを含めます。

    ライブラリを含める

  5. 今goto スケッチ>ライブラリを含める>ライブラリを管理します。

    ライブラリを管理する

  6. メニューが開きます。検索バーに「 ArduinoJSON。 リストが表示されます。インストール BenoitBlanchonによるArduinoJSON。

    Arduino JSON

  7. 次に、をクリックします ツール。 ドロップダウンメニューが表示されます。ボードをに設定します ESPDevモジュール。

    セッティングボード

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

    設定ポート

  9. 次に、下のリンクに添付されているコードをアップロードし、アップロードボタンをクリックしてコードを書き込みます ESP32マイクロコントローラー

    アップロード

そのため、コードをアップロードするときにエラーが発生する可能性があります。これは、新しいバージョンのArduinoIDEとArduinoJSONを使用している場合に発生する可能性のある最も一般的なエラーです。画面に表示される可能性のあるエラーは次のとおりです。

C: Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h:8:0から、C: Users  Pro  Desktop  smartHome  code  code.ino:2からインクルードされたファイル:C : Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h:14:11:エラー:StaticJsonBufferはArduinoJson 5のクラスです。プログラムをArduinoJsonにアップグレードする方法については、arduinojson.org / upgradeを参照してください。バージョン6StaticJsonBuffer jsonBuffer; ^ C: Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h:8:0から、C: Users  Pro  Desktop  smartHome  code  code.ino:2からインクルードされたファイル: C: Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h:65:11:エラー:StaticJsonBufferはArduinoJson 5のクラスです。プログラムをにアップグレードする方法については、arduinojson.org / upgradeを参照してください。 ArduinoJsonバージョン6はStaticJsonBuffer()。parseObject(_data);を返します。 ^「WiFi.h」に複数のライブラリが見つかりました使用済み:C: Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi未使用:C: Program Files( x86) Arduino  libraries  WiFiフォルダー内のバージョン1.0のライブラリWiFiを使用:C: Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFiライブラリIOXhop_FirebaseESP32-masterを使用フォルダー内:C: Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-マスター(レガシー)フォルダー内のバージョン1.2でライブラリHTTPClientを使用:C: Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  HTTPClientフォルダー内のバージョン1.0でライブラリWiFiClientSecureを使用:C: Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFiClientSecureライブラリArduinoJsonを使用フォルダ内のバージョン6.12.0:C: Users  Pro  Documents  Arduino  libraries  ArduinoJson終了ステータス1ボードESP32DevModuleのコンパイル中にエラーが発生しました。

いくつかの簡単な手順に従うことでこれらのエラーを排除できるため、心配する必要はありません。これらのエラーは、ArduinoJSONの新しいバージョンに代わりに別のクラスがあるために発生しています StaticJsonBuffer。 これはJSON5のクラスです。したがって、ArduinoIDEのArduinoJSONのバージョンをダウングレードすることで、このエラーを簡単に排除できます。単にに行く スケッチ>ライブラリを含める>ライブラリを管理します。 検索する BenoitBlanchonによるArduinoJSON 以前にインストールしたもの。最初にアンインストールしてから、バージョンをに設定します 5.13.5。 Arduino JSONの古いバージョンを設定したので、それを再度インストールしてコードを再コンパイルします。今回は、コードが正常にコンパイルされます。

コードをダウンロードするには、 クリック ここに。

ステップ8:回路を組み立てる

アプリの準備が整い、完全に機能するようになったので、回路をコンピューターに接続する方法を見てみましょう。

  1. まず、配電盤を取り、その中のコンピューターシステムのすべてのプラグ(モニター、プリンター、CPU、PSUなど)を接続します。
  2. 次に、このボードの接続スイッチを取り、ワイヤーの間に切り込みを入れて、黒と赤の2本のワイヤーが内側から見えるようにします。
  3. 赤いワイヤーを取り出し、真ん中から切ります。ワイヤの一方の端をリレーモジュールのNOポイントに接続し、もう一方の端をリレーポイントのCOMポイントに接続します。 (黒いワイヤーは何もしないでください)
  4. 次に、ブレッドボードにESP32を固定し、5Vバッテリーを使用して電源を入れます。ブレッドボードのリレーモジュールのVccとアースを、バッテリーのプラス端子とマイナス端子に接続します。
  5. ブレッドボード上のトランジスタを使用して、次の構成を作成します。

ステップ9:コード

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

1.最初に、FirebaseをESP32で使用できるように、2つのライブラリが含まれています。

#include #include

2.次に、FirebaseデータベースとWifi接続に関する情報が提供され、リレーモジュールで使用されるESPのピンが宣言されます。

#define FIREBASE_HOST'xxxxx '// Firebaseホストに置き換えます#defineFIREBASE_AUTH'xxxxx' // Firebase認証に置き換えます#defineWIFI_SSID'xxxxx '//これをWIFISSIDに置き換えます#defineWIFI_PASSWORD'xxxxx' // Wi-Fiパスワードに置き換えますintswi = 34; // ESPのピン34をリレーモジュールに接続します

3.3。 void setup() 回路の電源がオンになっているとき、または有効ボタンが押されたときに1回だけ実行される機能です。ここでは、ESPボードをWIFIに接続するためのコードが記述されています。リレーモジュールで使用されるESPのピンも、ここではOUTPUTとして宣言されています。

void setup(){Serial.begin(115200); pinMode(swi、OUTPUT); // Wi-Fiに接続します。 WiFi.begin(WIFI_SSID、WIFI_PASSWORD); Serial.println( '接続'); while(WiFi.status()!= WL_CONNECTED){Serial.print( '。'); delay(500); } Serial.println(); Serial.print( '接続済み:'); Serial.println(WiFi.localIP()); Firebase.begin(FIREBASE_HOST、FIREBASE_AUTH); }

四。 void loop() ループで繰り返し実行される関数です。ここでは、Firebaseからの値が読み取られます。この値が「1」に等しい場合、HIGH信号がリレーモジュールに送信され、コンピューターの電源がオンになります。この値が「0」の場合、コンピューターの電源はオフになります。

void loop(){//値を読み取るif(Firebase.getFloat( 'switch')== 1){digitalWrite(swi、HIGH); } else {digitalWrite(swi、LOW); } //エラーを処理するif(Firebase.failed()){Serial.print( 'setting / number failed:'); Serial.println(Firebase.error());戻る; } delay(1000); }