Note

Bonjour et bienvenue dans la Communauté Facebook des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder ! Plongez plus profondément dans l’univers des Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.

Pourquoi rejoindre ?

  • Support d’experts : Résolvez les problèmes après-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.

  • Apprendre et partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.

  • Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus.

  • Réductions spéciales : Profitez de réductions exclusives sur nos produits les plus récents.

  • Promotions festives et cadeaux : Participez à des cadeaux et des promotions de vacances.

👉 Prêt à explorer et à créer avec nous ? Cliquez [Ici] et rejoignez-nous aujourd’hui !

2.2.2 Thermistance

Note

../_images/mcp3008_and_adc0834.jpg

Selon la version de votre kit, identifiez si vous disposez d’un ADC0834 ou d’un MCP3008 et suivez la section correspondante.

Introduction

Tout comme la photorésistance peut détecter la lumière, la thermistance est un dispositif électronique sensible à la température qui peut être utilisé pour réaliser des fonctions de contrôle de la température, telles que la création d’une alarme de chaleur.

Composants nécessaires

Dans ce projet, nous avons besoin des composants suivants.

../_images/2.2.2_thermistor_list.png

Il est certainement pratique d’acheter un kit complet, voici le lien :

Nom

ARTICLES DANS CE KIT

LIEN

Kit Raphael

337

Raphael Kit

Vous pouvez également les acheter séparément via les liens ci-dessous.

INTRODUCTION DU COMPOSANT

LIEN D’ACHAT

Carte d’extension GPIO

ACHETER

Plaque d’expérimentation (Breadboard)

ACHETER

Fils de Liaison

ACHETER

Résistance

ACHETER

Thermistance

ACHETER

ADC0834

-

Schéma

../_images/2.2.2_thermistor_schematic_1.png ../_images/2.2.2_thermistor_schematic_2.png

Procédures expérimentales

Étape 1 : Construisez le circuit.

../_images/2.2.2_thermistor_circuit.png

Étape 2 : Allez dans le dossier du code.

cd ~/raphael-kit/python-pi5

Étape 3 : Exécutez le fichier exécutable

sudo python3 2.2.2_Thermistor_zero.py

Lorsque le code s’exécute, la thermistance détecte la température ambiante qui sera affichée à l’écran une fois le calcul du programme terminé.

Avertissement

Si vous recevez le message d’erreur RuntimeError: Cannot determine SOC peripheral base address, veuillez consulter Si « gpiozero » ne fonctionne pas.

Code

Note

Vous pouvez Modifier/Réinitialiser/Copier/Exécuter/Arrêter le code ci-dessous. Mais avant cela, vous devez vous rendre au chemin du code source comme raphael-kit/python-pi5. Après avoir modifié le code, vous pouvez l’exécuter directement pour voir l’effet.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import ADC0834
import time
import math

# Initialize the ADC0834 module
ADC0834.setup()

# Run the process in a try-except block
try:
    while True:
        # Read the analog value from the sensor
        analogVal = ADC0834.getResult()

        # Convert the analog value to a voltage
        Vr = 5 * float(analogVal) / 255

        # Calculate the resistance of the thermistor
        Rt = 10000 * Vr / (5 - Vr)

        # Calculate the temperature in Kelvin
        temp = 1 / (((math.log(Rt / 10000)) / 3950) + (1 / (273.15 + 25)))

        # Convert Kelvin to Celsius
        Cel = temp - 273.15

        # Convert Celsius to Fahrenheit
        Fah = Cel * 1.8 + 32

        # Print the temperature in both Celsius and Fahrenheit
        print('Celsius: %.2f C  Fahrenheit: %.2f F' % (Cel, Fah))

        # Wait for 0.2 seconds before the next read
        time.sleep(0.2)

# Handle KeyboardInterrupt for graceful termination
except KeyboardInterrupt:
    # Clean up ADC0834 resources
    ADC0834.destroy()

Explication du code

  1. Cette section importe la bibliothèque ADC0834 pour la conversion analogique-numérique, la bibliothèque time pour implémenter des délais, et la bibliothèque math pour effectuer des opérations mathématiques.

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    
    import ADC0834
    import time
    import math
    
  2. Initialise le module ADC0834 pour permettre la lecture des valeurs analogiques.

    # Initialize the ADC0834 module
    ADC0834.setup()
    
  3. Implémente une boucle infinie pour la lecture continue des données. La boucle lit la valeur analogique d’une thermistance, convertit cette valeur en tension, calcule la résistance de la thermistance, puis traduit cette résistance en mesures de température en Kelvin, Celsius et Fahrenheit. Elle affiche également les relevés de température en Celsius et Fahrenheit, en faisant une pause de 0,2 seconde entre chaque lecture.

    # Run the process in a try-except block
    try:
        while True:
            # Read the analog value from the sensor
            analogVal = ADC0834.getResult()
    
            # Convert the analog value to a voltage
            Vr = 5 * float(analogVal) / 255
    
            # Calculate the resistance of the thermistor
            Rt = 10000 * Vr / (5 - Vr)
    
            # Calculate the temperature in Kelvin
            temp = 1 / (((math.log(Rt / 10000)) / 3950) + (1 / (273.15 + 25)))
    
            # Convert Kelvin to Celsius
            Cel = temp - 273.15
    
            # Convert Celsius to Fahrenheit
            Fah = Cel * 1.8 + 32
    
            # Print the temperature in both Celsius and Fahrenheit
            print('Celsius: %.2f C  Fahrenheit: %.2f F' % (Cel, Fah))
    
            # Wait for 0.2 seconds before the next read
            time.sleep(0.2)
    
  4. Capture une exception KeyboardInterrupt pour terminer le programme proprement et inclut des instructions de nettoyage pour les ressources ADC0834 à la fin.

    # Handle KeyboardInterrupt for graceful termination
    except KeyboardInterrupt:
        # Clean up ADC0834 resources
        ADC0834.destroy()