.. note::
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 [|link_sf_facebook|] und treten Sie heute bei!
.. _2.2.2_py:
2.2.2 Thermistor
================
.. note::
.. image:: ../img/mcp3008_and_adc0834.jpg
:width: 25%
:align: left
Abhängig von Ihrer Kit-Version identifizieren Sie bitte, ob Sie **ADC0834** oder **MCP3008** haben, und fahren Sie mit dem entsprechenden Abschnitt fort.
Einführung
----------
So wie ein Fotowiderstand Licht erfassen kann, ist ein Thermistor ein
temperatursensitives elektronisches Bauteil, das zur Realisierung von
Temperaturregelungsfunktionen, wie zum Beispiel einem Wärmealarm, verwendet
werden kann.
Benötigte Komponenten
---------------------
Für dieses Projekt benötigen wir die folgenden Komponenten.
.. image:: ../img/list_2.2.2_thermistor.png
Es ist definitiv praktisch, ein komplettes Set zu kaufen, hier ist der Link:
.. list-table::
:widths: 20 20 20
:header-rows: 1
* - Name
- ARTIKEL IN DIESEM KIT
- LINK
* - Raphael Kit
- 337
- |link_Raphael_kit|
Sie können diese auch einzeln über die untenstehenden Links kaufen.
.. list-table::
:widths: 30 20
:header-rows: 1
* - KOMPONENTENBESCHREIBUNG
- KAUF-LINK
* - :ref:`cpn_gpio_board`
- |link_gpio_board_buy|
* - :ref:`cpn_breadboard`
- |link_breadboard_buy|
* - :ref:`cpn_wires`
- |link_wires_buy|
* - :ref:`cpn_resistor`
- |link_resistor_buy|
* - :ref:`cpn_thermistor`
- |link_thermistor_buy|
* - :ref:`cpn_adc0834`
- \-
Schaltplan
----------
.. image:: ../img/image323.png
.. image:: ../img/image324.png
Experimentelle Verfahren
----------------------------
**Schritt 1:** Bauen Sie die Schaltung.
.. image:: ../img/image202.png
**Schritt 2:** Navigieren Sie zum Ordner mit dem Code.
.. raw:: html
.. code-block::
cd ~/raphael-kit/python/
**Schritt 3:** Führen Sie die ausführbare Datei aus
.. raw:: html
.. code-block::
sudo python3 2.2.2_Thermistor.py
Wenn der Code ausgeführt wird, erfasst der Thermistor die Umgebungstemperatur,
die nach Abschluss der Programmberechnung auf dem Bildschirm angezeigt wird.
**Code**
.. note::
Sie können den untenstehenden Code **Ändern/Zurücksetzen/Kopieren/Ausführen/Stoppen**. Bevor Sie das tun, müssen Sie zum Quellcode-Pfad, wie ``raphael-kit/python``, navigieren. Nachdem Sie den Code geändert haben, können Sie ihn direkt ausführen, um das Ergebnis zu sehen.
.. raw:: html
.. code-block:: python
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
import ADC0834
import time
import math
def init():
ADC0834.setup()
def loop():
while True:
analogVal = ADC0834.getResult()
Vr = 5 * float(analogVal) / 255
Rt = 10000 * Vr / (5 - Vr)
temp = 1/(((math.log(Rt / 10000)) / 3950) + (1 / (273.15+25)))
Cel = temp - 273.15
Fah = Cel * 1.8 + 32
print ('Celsius: %.2f °C Fahrenheit: %.2f ℉' % (Cel, Fah))
time.sleep(0.2)
if __name__ == '__main__':
init()
try:
loop()
except KeyboardInterrupt:
ADC0834.destroy()
**Code-Erklärung**
.. code-block:: python
import math
Es gibt eine numerische Bibliothek, die eine Reihe von Funktionen zur Berechnung
häufiger mathematischer Operationen und Transformationen deklariert.
.. code-block:: python
analogVal = ADC0834.getResult()
Diese Funktion wird verwendet, um den Wert des Thermistors auszulesen.
.. code-block:: python
Vr = 5 * float(analogVal) / 255
Rt = 10000 * Vr / (5 - Vr)
temp = 1/(((math.log(Rt / 10000)) / 3950) + (1 / (273.15+25)))
Cel = temp - 273.15
Fah = Cel * 1.8 + 32
print ('Celsius: %.2f °C Fahrenheit: %.2f ℉' % (Cel, Fah))
Diese Berechnungen wandeln die Thermistorwerte in Grad Celsius und Grad Fahrenheit um.
.. code-block:: python
Vr = 5 * float(analogVal) / 255
Rt = 10000 * Vr / (5 - Vr)
Diese beiden Codezeilen berechnen die Spannungsverteilung mit dem ausgelesenen
analogWert, um Rt (Widerstand des Thermistors) zu erhalten.
.. code-block:: python
temp = 1/(((math.log(Rt / 10000)) / 3950) + (1 / (273.15+25)))
Dieser Code bezieht sich darauf, Rt in die Formel
**T\ K\ =1/(ln(R\ T/R\ N)/B+1/T\ N)** einzusetzen, um die Kelvin-Temperatur zu erhalten.
.. code-block:: python
temp = temp - 273.15
Konvertierung der Kelvin-Temperatur in Grad Celsius.
.. code-block:: python
Fah = Cel * 1.8 + 32
Umwandlung des Celsius-Grades in den Fahrenheit-Grad.
.. code-block:: python
print ('Celsius: %.2f °C Fahrenheit: %.2f ℉' % (Cel, Fah))
Ausgabe von Grad Celsius, Grad Fahrenheit und ihren Einheiten auf dem
Anzeigegerät.
Phänomen-Bild
--------------------
.. image:: ../img/image203.jpeg