Android Studioでスマートホームシステム用のAndroidアプリを作成するにはどうすればよいですか?

この記事は別の記事のパート2です ESP32モジュールを使用してスマートホームオートメーションを作成する方法は? スマートホームシステムを作成する方法が提供されました。この記事では、Androidアプリケーションを開発し、Firebaseデータベースに接続する方法を段階的に説明します。次に、このモバイルアプリケーションを使用して、家庭内の電化製品を切り替えます。



Androidアプリの開発

すでに市場で入手可能なスマートホームシステムは非常に高価です。必要なコンポーネントとAndroidデバイスがあれば、同じように効率的でありながら非常に低コストのホームオートメーションシステムを自宅で作成できます。これらの2つの記事を読んで、自宅で独自のホームオートメーションシステムを作成してください。



ホームオートメーション用のAndroidアプリケーションを開発する方法は?

他の記事では、ESP32モジュールに接続された家電製品を制御するためのリモコンとして使用されるAndroidアプリを開発します。他の記事に行くには、 ここをクリック



ステップ1:必要なソフトウェア

Androidアプリケーションを開発するので、必要なソフトウェアは1つだけです。ただし、そのソフトウェアを実行するには、最初に別のソフトウェアをインストールする必要があります。以下のリンクからダウンロードできます。



  • AndroidStudio。
  • JAVAJDK。

ステップ2:主な作業を理解する

フロントエンドとバックエンドの両方のコーディングを備えたアプリケーションを作成します。メイン画面には、ESP32マイクロコントローラーボードに接続されている電化製品の切り替えを制御するいくつかのボタンが含まれています。バックエンドコーディングでは、スイッチがオンの場合は「1」を送信し、スイッチがオフの場合は「0」を送信します。

Firebaseデータベースを作成します。このデータベースには、LightおよびACという名前の2つのエンティティが含まれます。ライトにはライトの切り替えの値が含まれ、ACにはファンの切り替えの値が含まれます。次に、この値がマイクロコントローラーに送信され、マイクロコントローラーはそれに応じてリレーモジュールに制御信号を送信します。

ステップ3:AndroidStudioをセットアップする

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



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

    システム

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

    高度なシステム設定

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

    パスの編集

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

    binフォルダーのパス

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

    JAVAバージョン

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

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

0または1のコマンドをFirebaseデータベースに送信するいくつかのボタンを含むレイアウトを作成します。これは、いくつかのボタンを含む単純なレイアウトになります。私のアプリでは、ライトとファンを制御する2つのボタンを含めるだけです。より多くの家電製品用のより多くのボタンを含めたい場合は、メインプログラムに同じコードのチャンクをコピーし、データベースに新しい変数を作成します。時間を無駄にすることなく、アプリのシンプルなレイアウトを作成する手順に進みましょう。

1.まず、 ファイル>新規>新規プロジェクト。 メニューが表示されます。選択する 空のプロジェクト。

2.プロジェクトに名前を付け、設定します KOTLIN あなたのプログラミング言語として。

3.左隅で、をクリックします アプリ>解像度>レイアウト> activity_main.xml。

activity_main

4.ここで、AndroidStudioで既に提供されているコードの下に次のコードを追加します。制約レイアウトを作成しています。次のコードは、上部にRoomAutomationの見出しを追加しています。次に、3つのスイッチを追加します。 1つのスイッチで、家電製品を手動で操作するかどうかを選択できます。他の2つのスイッチは、それぞれファンとライトを操作します。

 

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

レイアウト

ステップ5:バックエンドコーディング

バックエンドコードは、あらゆるアプリケーションの最も重要な部分です。これは、フロントエンドレイアウトとプロジェクトのデータベースの間の主要なブリッジです。このアプリケーションでは、スイッチがオンのときにデータベースで「1」を送信し、スイッチがオフのときにデータベースで「0」を送信するだけです。次の手順を実行して、アプリケーションにコードを追加します

1.左隅にあるをクリックします app> java> com.example.my applicationmyapplication> main_activity。

2.この画面で、クラスに次のコードをコピーします。

クラスの自動化:AppCompatActivity(){var database = FirebaseDatabase.getInstance()var myRef = database.reference internal lateinit var btnSwitch:Switch internal lateinit var btnSwitch1:Switch internal lateinit var btnSwitch2:Switch override fun onCreate(savedInstanceState:Bundle?){super .onCreate(savedInstanceState)setContentView(R.layout.activity_automation)myRef.child( 'Toggle / switch')。addValueEventListener(object:ValueEventListener {override fun onCancelled(p0:DatabaseError){} override fun onDataChange(p0:DataSnapshot){switch1 .visibility = View.VISIBLE if(p0.value.toString()。equals( '1')){switch1.isChecked = true; tokenButton2.visibility = View.VISIBLE tokenButton3.visibility = View.VISIBLE myRef.child( 'automation / AC ')。addValueEventListener(object:ValueEventListener {override fun onCancelled(p0:DatabaseError){} override fun onDataChange(p0:DataSnapshot){if(p0.value.toString()。equals(' 1 ')){toggleButton2。 isChecked = true} else tokenButton2.isChecked = fals e}})myRef.child( 'automation / light')。addValueEventListener(object:ValueEventListener {override fun onCancelled(p0:DatabaseError){} override fun onDataChange(p0:DataSnapshot){if(p0.value.toString()。 equals( '1')){toggleButton3.isChecked = true} else tokenButton3.isChecked = false}})} else {switch1.isChecked = false tokenButton2.visibility = View.GONE tokenButton3.visibility = View.GONE} //ログ。 d( 'ahsan