- 必要なコンポーネント:
- HC-SR04超音波センサー:
- ESP8266 Wi-Fiモジュール:
- 回路図と説明:
- コードの説明:
- "; if(distance <5){webpage + ="ゴミ箱がいっぱいです ";} else {webpage + ="ゴミ箱が空です ";} webpage + ="
- プロジェクトのテストと出力:
このDIYでは、IOTベースのごみ箱/ごみ箱監視システムを作成します。これにより、ウェブサーバーを介してごみ箱が空か満杯かがわかり、「ごみ箱」または「ごみ箱」のステータスをインターネットを介して世界中のどこにでも。それは非常に便利で、公共の場所や自宅のゴミ箱に設置することができます。
このIOTプロジェクトでは、 超音波センサーを使用して、ゴミ箱がゴミで満たされているかどうかを検出します。ここでは、超音波センサーがゴミ箱の上部に設置されており、ゴミ箱の上部からゴミの距離を測定し、ゴミ箱のサイズに応じてしきい値を設定できます。距離がこのしきい値よりも小さい場合は、ゴミ箱がゴミでいっぱいであることを意味し、ウェブページに「バスケットがいっぱいです」というメッセージを印刷します。距離がこのしきい値を超える場合は、印刷します。 「バスケットは空です」というメッセージ。ここでは、プログラムコードに5cmのしきい値を設定しました。ESP8266Wi-Fiモジュールを使用しますArduinoをWebサーバーに接続するため。ここでは、ローカルWebサーバーを使用して、このガベージ監視システムの動作を示しました。
必要なコンポーネント:
- Arduino Uno(他のものを使用できます)
- ESP8266Wi-Fiモジュール
- HC-SR04超音波センサー
- 1K抵抗器
- ブレッドボード
- 接続線
HC-SR04超音波センサー:
超音波センサーは、高精度で安定した測定値で距離を測定するために使用されます。それは2cmから400cmまたは1インチから13フィートまでの距離を測定することができます。空気中に40KHzの周波数で超音波を放射し、物体が邪魔になるとセンサーに跳ね返ります。物体に当たって戻ってくるまでの時間を利用して、距離を計算することができます。
超音波センサーには4つのピンがあります。2つはArduinoの5VとGNDに接続されるVCCとGNDで、他の2つのピンはArduinoの任意のデジタルピンに接続されるTrigピンとEchoピンです。トリガーピンは信号を送信し、エコーピンは信号の受信に使用されます。超音波信号を生成するには、Trigピンを約10us高くする必要があります。これにより、音速で8サイクルのソニックバーストが送信され、オブジェクトに当たった後、Echoピンで受信されます。
以下のプロジェクトをさらにチェックして、超音波センサーの動作を正しく理解し、それを使用するオブジェクトの距離を測定します。
- 超音波センサーを使用したArduinoベースの距離測定
- HC-SR04とAVRマイクロコントローラーを使用した距離測定
ESP8266 Wi-Fiモジュール:
ESP8266は、プロジェクトにWi-Fiまたはインターネットへのアクセスを提供するWi-Fiモジュールです。これは非常に安価なデバイスですが、プロジェクトを非常に強力にします。任意のマイクロコントローラーと通信し、プロジェクトをワイヤレスにすることができます。これは、IOTプラットフォームの最も主要なデバイスのリストに含まれています。それは3.3Vで動作し、5Vを与えると、損傷を受けます。
ESP8266には8つのピンがあります。VCCとCH-PDは3.3Vに接続され、wifiが有効になります。TXピンとRXピンは、ESP8266とArduinoの通信を担当します。RXピンは3.3Vで動作するため、プロジェクトで作成したように、分圧器を作成する必要があります。
回路図と説明:
まず、ESP8266をArduinoに接続します。 ESP8266は3.3Vで動作し、Arduinoから5Vを与えると、正しく動作せず、損傷する可能性があります。 VCCとCH_PDをArduinoの3.3Vピンに接続します。 ESP8266のRXピンは3.3Vで動作し、Arduinoに直接接続するとArduinoと通信しません。そのため、分圧器を作成する必要があります。直列に接続された3つの1k抵抗器が私たちのために働きます。下の図に示すように、抵抗を介してRXをArduinoのピン11に接続し、ArduinoのTXをArduinoのピン10に接続します。
次に、HC-SR04超音波センサーをArduinoに接続します。超音波センサーとArduinoの接続は非常に簡単です。VCCと超音波センサーのアースを5VとArduinoのアースに接続します。次に、超音波センサーのTRIGピンとECHOピンをArduinoのピン8と9にそれぞれ接続します。
コードの説明:
コードをアップロードする前に、ESP8266デバイスのWi-Fiに接続していることを確認してください。以下のコードセクションで完全なコードを確認できます。コードはコメントによって十分に説明されています。さらに、以下のいくつかの重要な機能についても説明しました。
Arduinoは最初に超音波センサーを読み取ります。TRIGピンを10usの間Highにすると、音速で超音波信号を送信します。オブジェクトに衝突した後、信号が戻ってきます。移動時間の長さは、 duration という名前の変数に格納されます。その後、我々は、以下の式を適用することによって、オブジェクト(私たちの場合はゴミ)の距離を計算し、という名前の変数に格納します 距離 。
digitalWrite(trigPin、LOW); delayMicroseconds(2); digitalWrite(trigPin、HIGH); delayMicroseconds(10); digitalWrite(trigPin、LOW); 期間= pulseIn(echoPin、HIGH); 距離=期間* 0.034 / 2;
WebブラウザでWebページに出力を印刷するには、HTMLプログラミングを使用する必要があります。そこで、 webpage という名前の文字列を作成し、その中に出力を保存しました。ゴミ箱が空かどうかを判断するために、そこに条件を適用しました。距離が5cm未満の場合は、Webページに「Basketis Full」と表示され、距離が5cmを超える場合は、Webページに「BasketisEmpty」というメッセージが表示されます。
if(esp8266.available()){if(esp8266.find( "+ IPD、")){delay(1000); int connectionId = esp8266.read()-48; 文字列のウェブページ= "
IOTガベージモニタリングシステム
";ウェブページ+ =""; if(distance <5){webpage + ="ゴミ箱がいっぱいです ";} else {webpage + ="ゴミ箱が空です ";} webpage + ="
";次のコードは、Webページにデータを送信して表示します。 'webpage' という名前 の 文字列に保存されたデータは、 'command' という名前 の 文字列に保存されます。ESP8266は、 「コマンド」 から文字を1つずつ読み取り、Webページに印刷します。
String sendData(String command、const int timeout、boolean debug){String response = ""; esp8266.print(コマンド); 長い整数時間=ミリ秒(); while((time + timeout)> mills()){while(esp8266.available()){char c = esp8266.read(); 応答+ = c; }} if(debug){Serial.print(response); }応答を返します。}
プロジェクトのテストと出力:
コードをアップロードした後、シリアルモニターを開くと、以下に示すようなIPアドレスが表示されます。
このIPアドレスをブラウザに入力すると、以下のような出力が表示されます。ゴミ箱が空かどうかをもう一度確認したい場合は、ページをもう一度更新する必要があります。
したがって、このゴミ監視システムの仕組みは、ゴミ箱が半分いっぱいになったときにメッセージをもう1つ設定したり、メール/ SMSをトリガーしてゴミ箱がユーザーに警告したりするなど、いくつかの機能を追加することで、このプロジェクトをさらに強化できます。バスケットがいっぱいです。