湿度と温度は、環境条件を測定するための一般的なパラメータです。このArduinoベースのプロジェクトでは、周囲の温度と湿度を測定し、16x2のLCD画面に表示します。温度と湿度を組み合わせたセンサーDHT11をArduinounoとともに使用して、この摂氏スケールの温度計とパーセンテージスケールの湿度測定プロジェクトを開発します。以前のプロジェクトの1つで、温度センサーLM35を使用したデジタル体温計も開発しました。
このプロジェクトは3つのセクションで構成されています。1つは湿度と温度のセンサーDHT11を使用して湿度と温度を感知します。2番目のセクションでは、DHTsensorモジュールの出力を読み取り、温度と湿度の値をパーセンテージと摂氏スケールで適切な数値に抽出します。また、システムの3番目の部分では、湿度と温度がLCDに表示されます。
このプロジェクトの作業は、単線シリアル通信に基づいています。最初にarduinoは開始信号をDHTモジュールに送信し、次にDHTは温度と湿度のデータを含む応答信号を送信します。Arduinoは、湿度と温度の2つの部分に分けて収集および抽出し、16x2LCDに送信します。
このプロジェクトでは、センサーモジュール、つまりDHT11を使用しました。このモジュールは、校正されたデジタル信号出力を備えた湿度と温度の複合体を備えています。つまり、DHT11センサーモジュールは、校正されたデジタル出力信号を提供する湿度と温度を検知するための複合モジュールです。 DHT11は、湿度と温度の非常に正確な値を提供し、高い信頼性と長期安定性を保証します。このセンサーは、抵抗型湿度測定コンポーネントとNTCタイプの温度測定コンポーネントを備え、8ビットマイクロコントローラーが組み込まれており、応答が速く、費用効果が高く、4ピン単列パッケージで利用できます。
DHT11モジュールは、シリアル通信、つまり単線通信で動作します。このモジュールは、特定の期間のパルス列の形式でデータを送信します。arduinoにデータを送信する前に、時間遅延のある初期化コマンドが必要です。そして、全体の処理時間は約4msです。完全なデータ送信は40ビットで、このプロセスのデータ形式を以下に示します。
8ビット整数RHデータ+8ビット10進数RHデータ+8ビット整数Tデータ+8ビット10進数Tデータ+8ビットチェックサム。
完全なプロセス
まず、arduinoはDHTの検出を確実にするために18µsの遅延でDHT11に高から低の開始信号を送信します。次に、arduinoがデータラインをプルアップし、DHTの応答を20〜40µs待ちます。DHTが開始信号を検出すると、約80µsの時間遅延の低電圧レベル応答信号をarduinoに送信します。次に、DHTコントローラーがデータラインをプルアップし、DHTがデータを送信するように調整するために80µsの間それを保持します。
データバスが低電圧レベルの場合、DHT11が応答信号を送信していることを意味します。それが完了すると、DHTはデータ送信を準備するために再び80µsのデータラインプルアップを行います。
DHTによってすべてのビットについてarduinoに送信されるデータ形式は、50µsの低電圧レベルで始まり、高電圧レベル信号の長さがデータビットが「0」か「1」かを決定します。
DHTセンサーを20メートル未満の距離に配置する場合は、5kのプルアップ抵抗が推奨されるため、プルアップ抵抗の値を確認することが重要です。DHTを20メートルより長く配置する場合は、適切な値のプルアップ抵抗を使用してください。
回路図と説明
液晶ディスプレイは、4ビットモードでarduinoに直接接続されている温度と湿度を表示するために使用されます。LCDのピン、つまりRS、EN、D4、D5、D6、およびD7は、arduinoデジタルピン番号2、3、4、5、6、および7に接続されています。また、DHT11センサーモジュールは、arduinoのデジタルピン12にも5kプルアップ抵抗。
プログラミングの説明
プログラミングでは、DHT11センサーとLCDディスプレイモジュール用に構築済みのライブラリを使用します。
次に、LCDおよびDHTセンサーのピンを定義し、セットアップのすべてのものを初期化しました。次に、dht関数を使用してループでDHTセンサーを読み取り、いくつかのdht関数を使用して湿度と温度を抽出し、LCDに表示します。
ここでは、カスタム文字法を使用して度記号を作成します。