WiFiを使用してスマートフォンからストーブを制御する

現代の世界では、周りを見渡せば、電子機器を含むすべてがある程度自動化されていることがわかります。ホームオートメーションシステムまたはスマートホームは、今日非常に一般的です。これらのシステムを使用することにより、モバイルアプリケーションを使用してさまざまな家電製品を自動化できます。しかし、これらのシステムのほとんどには、ガスストーブを自動化するものは何も含まれていません。この記事では、モバイルアプリケーションを使用してガスストーブを制御できるシステムを開発します。このアプリケーションは、メインバルブからガスバルブを開閉し、スパークプラグに点火して火災を発生させるために使用されます。



スマートストーブ

あなたの携帯電話を通してガスストーブを自動化する方法は?

プロジェクトの概要がわかったところで、作業を開始するために前に進み、さまざまな情報を収集しましょう。最初にコンポーネントのリストを作成し、次にすべてのコンポーネントを組み立てて動作するシステムを作成します。



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

プロジェクトを開始する前に、プロジェクトの途中で立ち往生する恐れを避けたい場合は、プロジェクトでの作業中に必要になるすべてのコンポーネントの完全なリストを用意する必要があります。これは、多くの時間と労力を節約する優れたアプローチです。このプロジェクトで使用されるすべてのコンポーネントの完全なリストを以下に示します。これらのコンポーネントはすべて、市場で簡単に入手できます。



  • ESP32
  • Arduino用ガスバルブ
  • ジャンパー線
  • 5Vリレーモジュール
  • 2N2222NPNトランジスタ
  • 1kオームの抵抗器
  • 10kオームの抵抗器
  • 5Vスパークプラグ

ステップ2:Androidアプリケーションの開発

このストーブはAndroidアプリケーションを使用して制御するため、最初に開発する必要があります。以前、私たちはいくつかを開発しました アンドロイドアプリケーション。 以前、私たちは 応用 それはその中の1つのボタンだけで構成されています。このボタンは、データベースにデータを送信するために使用されます。場合 「1」 データベースに挿入されると、リレーがオンになります。 「0」 データベースに挿入されると、リレーはオフになります。



このアプリケーションで少し修正を加えます。最初のボタンを作成してFirebaseに接続するのと同じ手順に従って、Firebaseに接続する別のボタンを作成します。

1つのボタンはガスバルブを開閉するために使用され、2番目のボタンはスパークを作成するために使用されます。 点火

ステップ3:回路を作る

このプロジェクトの主な要点がわかったので、すべてのコンポーネントを組み立てて最終的な回路を作成しましょう。



ブレッドボードを取り、挿入します ESP32ボード 初期化。トランジスタと抵抗の両方を取り、トランジスタをスイッチとして使用できるようにブレッドボードに挿入します。切り替え中に間違いを犯さないように、以下の構成に従ってください。

スイッチとしてのトランジスタ

上の図では、 ワイン のピンへのポート ESP32 、ポートVccを外部5V電源に接続し、Voをリレーモジュールに接続します。トランジスタをスイッチとして使用している主な理由は、リレーが動作するのに5Vが必要ですが、ESP32は3.3Vしか供給できないためです。したがって、リレーの外部に5Vを供給する必要があります。

次に、リレーモジュールをトランジスタに接続します。最初のトランジスタがESPモジュールのピン34に接続され、2番目のトランジスタがESPモジュールのピン35に接続されていることを確認します。両方のリレーモジュールをノーマルオープンモードで使用します。ガスバルブとスパークプラグをそれぞれ第1リレーモジュールと第2リレーモジュールの出力端子に接続します。下の写真に示すように、リレーモジュールのお尻を接続していることを確認してください。

リレーモジュール

ステップ4:作業

このプロジェクトの中心は、マイクロコントローラーボードであるESP32です。ガスバルブとスパークプラグは、リレーモジュールを介してESPに接続されています。ガスバルブは最初は閉じています。モバイルアプリケーションからスイッチを入れると、ガスバルブがオンになります。スパークプラグの場合も同様です。モバイルアプリからオンとオフを切り替えることができます。このスパークプラグは、ガスが放出されるストーブに接続されます。このスパークプラグは火を灯します。

ステップ5:ESP32入門

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の古いバージョンを設定したので、それを再度インストールしてコードを再コンパイルします。今回は、コードが正常にコンパイルされます。

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

ステップ6:コード

添付されたコードはかなりよくコメントされていますが、それでも、その部分のいくつかを以下に説明します。

1.最初に、WiFiが有効になり、ESPボードをFirebaseデータベースに接続できるように、2つのライブラリが含まれています。次に、Firebaseホスト、認証、ローカルWi-Fi接続の名前、同じWi-Fi接続のパスワードが含まれます。また、外部デバイスの接続に使用されるESPボード上のピンを定義します。

#include // WiFiを使用するライブラリを含める#include // Firebaseに接続するライブラリを含める#defineFIREBASE_HOST'xxxxxxxxxx '//ここでxxxxxxxxxxをfirebaseホストに置き換えます#defineFIREBASE_AUTH' xxxxxxxxxx '// xxxxxxxxxxをここでfirebase認証に置き換えます# define WIFI_SSID'xxxxxxxxxx '// xxxxxxxxxxをWifi接続の名前に置き換えます#defineWIFI_PASSWORD'xxxxxxxxxx' // xxxxxxxxxxをwifiパスワードに置き換えます#definevalve34 //ガスバルブをこのピンに接続します#definespark 35 //接続スパークこのピンに接続します

2.2。 void setup() マイクロコントローラの電源がオンになっているとき、またはイネーブルボタンが押されたときに1回だけ実行される機能です。この機能では、基本的にビット/秒単位の通信速度であるボーレートが設定されます。その後、ESPボードがWifiに接続されます。

void setup(){Serial.begin(115200); //ボーレートを設定しますpinMode(valve、OUTPUT); //ピン34をOUTPUTとして使用するように設定pinMode(spark、OUTPUT); //ピン35を出力として使用するように設定します// wifiに接続します。 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); }

3.3。 ボイドloop() ループで繰り返し実行される関数です。このループでは、値がFirebaseから読み取られ、値が0か1かが調べられます。値が1の場合、HIGH信号がピンに送信され、リレーモジュールがオンになります。値がゼロの場合、LOw信号がESPのピンに送信され、リレーがオフになります。

void loop(){//値を取得temp1 = Serial.println(Firebase.getFloat( 'light')); //ガスバルブの切り替えの値を取得しますtemp2 = Serial.println(Firebase.getFloat( 'AC')); //スパークプラグの切り替えの値を取得if(temp1 == 1){digitalWrite(valve、HIGH)//リレー1をオンにする} else if(temp1 == 0){digitalWrite(valve、LOW)//ターンリレー1をオフにする} else if(temp2 == 1){digitalWrite(spark、HIGH)//リレー2をオンにする} else if(temp2 == 0){digitalWrite(spark、LOW)//リレー2をオフにする} //エラーを処理するif(Firebase.failed()){Serial.print( 'setting / number failed:'); Serial.println(Firebase.error());戻る; } delay(1000); }

それが今日のすべてです。今、あなたは家で私たち自身のスマートストーブを作ることができます。今後もこのような興味深い記事がないか、当サイトをチェックしてください。