.. note::
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
**参加する理由は?**
- **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
- **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。
- **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。
- **特別割引**:最新製品の独占割引をお楽しみください。
- **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう!
.. _ar_thermistor:
5.10 サーミスター温度計
===========================
サーミスターは、温度によって抵抗値が大きく変わる温度センサーで、NTC(負温度係数)タイプとPTC(正温度係数)タイプの二種類に分けられます。NTCサーミスターの抵抗値は温度が上がるにつれて減少し、PTCサーミスターの抵抗値は温度が上がるにつれて増加します。
このプロジェクトではNTCサーミスターを使用します。NTCサーミスターをESP32マイクロコントローラのアナログ入力ピンに接続することで、抵抗値を測定し、これが直接温度に比例します。
NTCサーミスターを取り入れ、必要な計算を行うことで、温度を正確に測定し、I2C LCD1602モジュールに表示することができます。このプロジェクトはリアルタイムで温度監視を行い、温度表示のための視覚的インターフェースを提供します。
**必要な部品**
このプロジェクトには、以下のコンポーネントが必要です。
全てのキットを一括購入するのは非常に便利です。こちらがリンクです:
.. list-table::
:widths: 20 20 20
:header-rows: 1
* - 名前
- このキットのアイテム
- リンク
* - ESP32 Starter Kit
- 320+
- |link_esp32_starter_kit|
以下のリンクから個別に購入することもできます。
.. list-table::
:widths: 30 20
:header-rows: 1
* - コンポーネントの紹介
- 購入リンク
* - :ref:`cpn_esp32_wroom_32e`
- |link_esp32_wroom_32e_buy|
* - :ref:`cpn_esp32_camera_extension`
- |link_esp32_extension_board|
* - :ref:`cpn_breadboard`
- |link_breadboard_buy|
* - :ref:`cpn_wires`
- |link_wires_buy|
* - :ref:`cpn_resistor`
- |link_resistor_buy|
* - :ref:`cpn_thermistor`
- |link_thermistor_buy|
**利用可能なピン**
* **利用可能なピン**
このプロジェクトでESP32ボード上で利用可能なピンの一覧です。
.. list-table::
:widths: 5 15
* - 利用可能なピン
- IO14, IO25, I35, I34, I39, I36
* **ストラッピングピン**
以下のピンはストラッピングピンであり、ESP32の電源オンまたはリセット時の起動プロセスに影響します。しかし、ESP32が正常に起動した後は、通常のピンとして使用できます。
.. list-table::
:widths: 5 15
* - ストラッピングピン
- IO0, IO12
**回路図**
.. image:: ../../img/circuit/circuit_5.10_thermistor.png
温度が上がると、サーミスターの抵抗値が減少し、I35で読み取る値も下がります。さらに、式を使ってアナログ値を温度に変換し、それを表示します。
**配線図**
.. image:: ../../img/wiring/5.10_thermistor_bb.png
.. note::
* サーミスターは黒色で、103と記されています。
* 10Kオーム抵抗のカラーリングは赤、黒、黒、赤、茶です。
**コード**
.. note::
* ``esp32-starter-kit-main\c\codes\5.10_thermistor`` のパスの下にある ``5.10_thermistor.ino`` ファイルを開いてください。
* ボード(ESP32 Dev Module)と適切なポートを選択した後、 **アップロード** ボタンをクリックしてください。
* :ref:`unknown_com_port`
.. raw:: html
コードが正常にアップロードされると、シリアルモニターに摂氏と華氏の温度が表示されます。
**どのように動作するのか?**
各サーミスターには通常の抵抗値があります。ここでは25度摂氏で測定される10kオームです。
温度が上がると、サーミスターの抵抗値が下がります。その後、A/Dアダプターによって電圧データがデジタル量に変換されます。
摂氏または華氏の温度は、プログラミングを介して出力されます。
ここに抵抗値と温度との関係があります:
**RT = RN expB(1/TK - 1/TN)**
* **RT** は、温度が **TK** のときのNTCサーミスターの抵抗値です。
* **RN** は、定格温度TN下のNTCサーミスターの抵抗値です。ここでは、RNの数値は10kです。
* **TK** はケルビン温度で、単位はKです。ここでは、 **TK** の数値は ``摂氏度+373.15`` です。
* **TN** は定格ケルビン温度で、単位もKです。ここでは、TNの数値は ``373.15+25`` です。
* **B(beta)** はNTCサーミスターの材料定数で、熱感応指数とも呼ばれ、数値は ``4950`` です。
* **exp** は指数関数の略で、底数 ``e`` は自然数で、約2.7に等しいです。
この式 ``TK=1/(ln(RT/RN)/B+1/TN)`` を変換すると、ケルビン温度から273.15を引いたものが摂氏度になります。
この関係は経験式です。温度と抵抗が有効範囲内にあるときのみ正確です。
**もっと学ぶ**
計算された摂氏と華氏の温度をI2C LCD1602にも表示させることができます。
.. note::
* ``euler-kit/arduino/5.10_thermistor_lcd`` のパスの下にある ``5.10_thermistor_lcd.ino`` ファイルを開いてください。
* ボード(ESP32 Dev Module)と適切なポートを選択した後、 **アップロード** ボタンをクリックしてください。
* :ref:`unknown_com_port`
* ここでは ``LiquidCrystal I2C`` ライブラリを使用しています。 **Library Manager** からインストールできます。
.. raw:: html