ESP32 チュートリアル 25/55 - NTC と LCD を使用した温度測定 | SunFounder の ESP32 IoT 学習キット
このチュートリアルでは、ネガティブ温度係数(NTC)サーミスタを使用して温度を測定し、ESP32マイクロコントローラーを使ってLCD画面に測定値を表示する方法を学びます。プロジェクトでは、NTCサーミスタをESP32に接続し、LCDを使用して摂氏と華氏の両方で温度測定値を表示します。これは、ESP32プラットフォームを使用した温度センサーと表示技術の入門に最適な方法です。
ESP32-25-NTC_サーモメーターLCD
私たちは、Wi-FiとBluetoothを内蔵したESP32の機能を拡張するSunFounderのESP32拡張ボードを利用します。このボードはさまざまなセンサーやディスプレイと簡単に統合できるため、IoTプロジェクトに最適です。NTCサーミスタは、その抵抗に基づいて温度を測定し、抵抗は温度と逆相関の関係にあります。セットアップやコードに関するさらなる詳細については、ビデオをチェックしてください(ビデオの00:00)。
ハードウェアの説明
このプロジェクトで使用される主なコンポーネントには、ESP32マイクロコントローラー、NTCサーミスタ、抵抗器、およびLCDディスプレイが含まれます。ESP32は中央処理装置として機能し、サーミスタからのデータを処理し、LCDディスプレイを制御します。NTCサーミスタは温度に応じて抵抗値を変化させ、固定抵抗器との電圧分圧構成に基づいて温度を計算することを可能にします。
NTCサーミスタ
LCDディスプレイはセルシウスと華氏の両方の温度読み取りを表示します。LCDと通信するためにI2Cプロトコルを使用し、必要なピンの数を減らすことで配線を簡素化します。NTCサーミスタには、温度が上昇するにつれて抵抗が減少する特性があり、これは私たちの計算にとって重要です。
データシートの詳細
| 製造業者 |
サンファウンダー |
| 部品番号 |
NTCサーミスタ |
| 定格抵抗 |
10 kΩ |
| ベータ値 |
3950 K |
| 温度範囲 |
-40°Cから125°C |
| パッケージ |
軸方向の |
- 予想される温度範囲に対してサーミスタの定格を確認してください。
- 電圧分圧器には10 kΩの抵抗を使用してください。さもないと、読み取り値が不正確になります。
- ショート回路を避けるために接続を確認してください。
- LCDのI2Cアドレスを正しく保つ(通常は0x27)。
- ESP32および周辺機器のために適切な電源レベルを使用してください。
- シリアルモニターのボーレートがコードの設定(115200)と一致していることを確認してください。
NTC_formula
配線指示書
ESP32-11_LCD-wiring
ESP32-25-NTC_thermometer_wiringコンポーネントを配線するには、まずNTCサーミスタをESP32に接続します。サーミスタには極性がないため、どちらの方向でも接続できます。サーミスタの1つのリードをESP32のグラウンド(GND)ピンに接続します。もう1つのリードは10 kΩの抵抗に接続し、その抵抗はESP32の3.3Vピンに接続されます。サーミスタと抵抗の接続点はピンに接続します。35ESP32上で、温度計算のための電圧を読み取ります。
LCDの場合、グラウンドピン(通常は上から2番目のピン)をESP32のGNDに接続します。次に、VCC(通常は1番ピン)をESP32の5Vピンに接続します。SDAピン(通常は3番ピン)はピンに接続する必要があります。21ESP32上で、SCLピン(通常は4番ピン)はピンに接続する必要があります22すべての接続が確実であることを確認し、ピン番号を再確認して間違いを避けてください。
コード例とウォークスルー
コードは、サーミスタの定数を定義することから始まります。これには、ピン番号、基準電圧、および抵抗値が含まれます。セットアップ関数は、シリアル通信を初期化し、サーミスタピンを入力として設定します。
const int thermistorPin = 35; // Pin connected to the thermistor
const float referenceVoltage = 3.3;
const float referenceResistor = 10000; // the 'other' resistor
メインループは、サーミスタピンからアナログ値を読み取り、抵抗を計算し、次にベータパラメータの方程式を使用して摂氏と華氏の両方で温度を計算します。計算された値はシリアルモニタに出力されます。
int adcValue = analogRead(thermistorPin); // Read ADC value
float voltage = (adcValue * referenceVoltage) / 4095.0; // Calculate voltage
float resistance = (voltage * referenceResistor) / (referenceVoltage - voltage); // Calculate thermistor resistance
最後に、温度がLCDに表示されます。lcd.print()温度の値を度記号とともに表示するために関数が使用されます。
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(tempC, 1);
lcd.write(223); // Degree symbol
lcd.print("C");
このコードは、最新の温度測定値を使用して、300ミリ秒ごとにLCDを効果的に更新し、リアルタイム監視を可能にします。
デモンストレーション / 期待されること
コードを実行し、配線を完成させると、LCDに摂氏と華氏の温度読み取り値が表示されるはずです。サーミスタを手に持つと、抵抗が減少するにつれて温度が上昇するのがわかるでしょう。極性が逆になっていないか注意し、接続が確実であることを確認してください。適切に配線されていない場合、不正確な読み取りにつながることがあります(動画の04:50)。
動画のタイムスタンプ
- 00:00 スタート
- プロジェクトの1:50の紹介
- 5:32 配線の説明
- 8:20 ESP32のためのArduino NTCコードの説明
- 13:38 Arduino IDEでESP32ボードとCOMポートを選択しています
- 15:20 NTC温度測定デモンストレーション
- 17:34 ESP32のLCD1602上のNTC温度
- 18:42 NTC ArduinoコードとLCDの説明
- 21:15 LCD上の温度のデモンストレーション
- 23:13 緑のLCDまたは青のLCD1601ですか?
画像
ESP32-11_LCD-wiring
ESP32-11_LCD-wiring-schematic
NTC_thermistor
ESP32-25-NTC_thermometer_schematic
ESP32-25-NTC_thermometer_wiring
NTC_formula
ESP32-25-NTC_thermometeLCD
ESP32-11_LCD-wiring-schematic
ESP32-25-NTC_thermometer_schematic
ESP32-25-NTC_thermometer_wiring
ESP32-25-NTC_thermometeLCD
824-ESP32 Tutorial 25/55- SunFounder doc page NTC Thermometer
言語: C++
825-ESP32 Tutorial 25/55- Arduino code for LCD with NTC thermistor
言語: C++