注釈

こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。

参加する理由は?

  • エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。

  • 学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。

  • 独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。

  • 特別割引:最新製品の独占割引をお楽しみください。

  • 祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。

👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!

7.2 室温計

サーミスターとI2C LCD1602を使って、室温計を作成できます。

このプロジェクトは非常にシンプルで、 2.13 温度計 に基づきI2C LCD1602で温度を表示します。

必要なコンポーネント

このプロジェクトには以下のコンポーネントが必要です。

一式をまとめて購入するのは非常に便利です。リンクはこちら:

名称

このキットに含まれるアイテム

リンク

ケプラーキット

450+

Kepler Ultimate Kit

以下のリンクから個別に購入することもできます。

SN

コンポーネント

個数

リンク

1

Pico Wを知る

1

購入

2

Micro USBケーブル

1

3

ブレッドボード

1

購入

4

ジャンパーワイヤー

数本

購入

5

抵抗器

1(10KΩ)

購入

6

サーミスター

1

購入

7

I2C LCD1602

1

購入

回路図

sch_room_temp

配線

wiring_room_temp

コード

注釈

  • kepler-kit-main/micropython のパス下にある 7.2_room_temperature_meter.py ファイルを開くか、このコードをThonnyにコピペして、「Run Current Script」をクリックまたはF5キーを押して実行します。

  • 右下角にある「MicroPython(Raspberry Pi Pico)」インタープリターをクリックして選択してください。

  • 詳細なチュートリアルは、 コードを直接開いて実行する を参照してください。

from lcd1602 import LCD
from machine import I2C, Pin
import utime
import math

# Initialize the thermistor (ADC on pin 28) and LCD display
thermistor = machine.ADC(28)  # Analog input from the thermistor

# Initialize I2C communication for the LCD1602 display
i2c = I2C(1, sda=Pin(6), scl=Pin(7), freq=400000)

# Create an LCD object for controlling the LCD1602 display
lcd = LCD(i2c)

# Main loop to continuously read temperature and display it
while True:
    # Read raw ADC value from the thermistor
    temperature_value = thermistor.read_u16()

    # Convert the raw ADC value to a voltage (0-3.3V range)
    Vr = 3.3 * float(temperature_value) / 65535  # ADC value to voltage conversion

    # Calculate the thermistor resistance (using a voltage divider with a 10kOhm resistor)
    Rt = 10000 * Vr / (3.3 - Vr)  # Rt = thermistor resistance

    # Use the Steinhart-Hart equation to calculate the temperature in Kelvin
    # The values used are specific to the thermistor (3950 is the beta coefficient)
    temp = 1 / (((math.log(Rt / 10000)) / 3950) + (1 / (273.15 + 25)))  # Temperature in Kelvin

    # Convert temperature from Kelvin to Celsius
    Cel = temp - 273.15

    # Display the temperature on the LCD in Celsius
    string = " Temperature is \n    " + str('{:.2f}'.format(Cel)) + " C"  # Format string for the LCD
    lcd.message(string)  # Display the string on the LCD

    utime.sleep(1)  # Wait for 1 second
    lcd.clear()  # Clear the LCD for the next reading

プログラムが実行された後、LCDには現在の環境の温度値が表示されます。

注釈

コードと配線が正しいのにもかかわらず、LCDが何も表示しない場合は、裏面のポテンショメーターを回してコントラストを調整できます。