Bemerkung

Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.

  • Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!

7.2 Raumtemperaturmessgerät

Mit einem Thermistor und einem I2C LCD1602 können wir ein Raumtemperaturmessgerät erstellen.

Dieses Projekt ist sehr einfach und basiert auf 2.13 Thermometer, wobei ein I2C LCD1602 zur Anzeige der Temperatur verwendet wird.

Erforderliche Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

Kepler-Kit

450+

Kepler Ultimate Kit

Sie können sie auch separat über die unten stehenden Links erwerben.

SN

KOMPONENTE

MENGE

LINK

1

Den Pico W kennenlernen

1

KAUFEN

2

Micro-USB-Kabel

1

3

Steckbrett

1

KAUFEN

4

Jumperkabel

Mehrere

KAUFEN

5

Widerstand

1(10KΩ)

KAUFEN

6

Thermistor

1

KAUFEN

7

I2C LCD1602

1

KAUFEN

Schaltplan

sch_room_temp

Verkabelung

wiring_room_temp

Code

Bemerkung

  • Öffnen Sie die Datei 7.2_room_temperature_meter.py im Pfad kepler-kit-main/micropython oder kopieren Sie diesen Code in Thonny, und klicken Sie dann auf „Aktuelles Skript ausführen“ oder drücken Sie einfach F5.

  • Vergessen Sie nicht, im unteren rechten Eck den „MicroPython (Raspberry Pi Pico)“-Interpreter auszuwählen.

  • Für detaillierte Anleitungen siehe Code direkt öffnen und ausführen.

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

Nach dem Ausführen des Programms wird die LCD die aktuelle Temperatur im Raum anzeigen.

Bemerkung

Wenn der Code und die Verkabelung in Ordnung sind, aber das LCD dennoch keinen Inhalt anzeigt, können Sie das Potentiometer auf der Rückseite drehen, um den Kontrast zu erhöhen.