Utilisation du capteur de température numérique à 1 fil DS18B20 avec Raspberry Pi de Python

Python sur Adafruit's Raspberry Pi Lesson 11. DS18B20 Temperature Sensing sur le site d'Adafruit Lern auquel je me réfère toujours Il y avait un échantillon de détection de température du DS18B20 en utilisant. La bibliothèque W1ThermSensor est présentée comme une méthode simple, essayons-la. La licence est GPLv2.

Configuration à 1 fil

Vérifiez la version du noyau.

$ uname -a
Linux raspberrypi 3.18.11+ #777 PREEMPT Sat Apr 11 17:24:23 BST 2015 armv6l GNU/Linux

Le noyau est tel que décrit dans 1-Wire in Parasite Power configuration (1-Wire utilisant 2 fils) ne fonctionne pas dans 3.18.3 # 348. S'il est «3.18.1 +» ou supérieur, le réglage pour activer 1-Wire a été modifié. Ajoutez la ligne suivante à / boot / config.txt et redémarrez.

/boot/config.txt


dtoverlay=w1-gpio-pullup,gpiopin=4

Comment lire directement les fichiers w1_slave

Tout d'abord, essayez de lire le fichier w1_slave sous / sys / bus / w1 / devices / à partir de votre code Python.

~/python_apps/w1-test.py


# -*- coding: utf-8 -*-
import os
import glob
import time
import subprocess

os.system('modprobe w1-gpio')
os.system('modprobe w1-therm')

base_dir = '/sys/bus/w1/devices/'
device_folder = glob.glob(base_dir + '28*')[0]
device_file = device_folder + '/w1_slave'

def read_temp_raw():
    catdata = subprocess.Popen(['cat',device_file], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    out,err = catdata.communicate()
    out_decode = out.decode('utf-8')
    lines = out_decode.split('\n')
    return lines

def read_temp():
    lines = read_temp_raw()
    while lines[0].strip()[-3:] != 'YES':
        time.sleep(0.2)
        lines = read_temp_raw()
    equals_pos = lines[1].find('t=')
    if equals_pos != -1:
        temp_string = lines[1][equals_pos+2:]
        temp_c = float(temp_string) / 1000.0
        temp_f = temp_c * 9.0 / 5.0 + 32.0
        return temp_c, temp_f
	
while True:
    s = "celsius: {0:.3f}, fahrenheit: {1:.3f}"
    temp = read_temp()
    print(s.format(*temp))
    time.sleep(5)

Exécutez le programme. J'ai eu Chung et Hana et je les ai formatés avec 3 chiffres après la virgule décimale.

$ python w1-test.py
celsius: 27.312, fahrenheit: 81.162
celsius: 27.687, fahrenheit: 81.837
celsius: 27.500, fahrenheit: 81.500

Comment utiliser W1ThermSensor

Installez W1ThermSensor par git clone.

$ cd ~/python_apps
$ git clone https://github.com/timofurrer/w1thermsensor.git 
$ cd w1thermsensor
$ sudo python setup.py install

Écrivez un programme simple. Les données de détection peuvent être acquises avec un flotteur avec 3 chiffres après la virgule décimale.

~/python_apps/w1-test.py


# -*- coding: utf-8 -*-
from w1thermsensor import W1ThermSensor

sensor = W1ThermSensor()
celsius = sensor.get_temperature()
fahrenheit = sensor.get_temperature(W1ThermSensor.DEGREES_F)
all_units = sensor.get_temperatures([W1ThermSensor.DEGREES_C, W1ThermSensor.DEGREES_F, W1ThermSensor.KELVIN])

print("celsius:    {0:.3f}".format(celsius))
print("fahrenheit: {0:.3f}".format(fahrenheit))
s = "celsius: {0:.3f}, fahrenheit: {1:.3f}, kelvin: {2:.3f}"
print(s.format(*all_units))

Exécutez le programme. Le code a été simplifié car la bibliothèque se charge de lire le fichier w1_slave depuis le répertoire / sys / bus / w1 / devices comme dans le premier exemple.

$ python w1-test.py
celsius:    26.625
fahrenheit: 79.925
celsius: 26.625, fahrenheit: 79.925, kelvin: 299.775

Recommended Posts

Utilisation du capteur de température numérique à 1 fil DS18B20 avec Raspberry Pi de Python
Essayez d'utiliser le capteur de température (LM75B) avec Raspeye.
Utilisez python sur Raspberry Pi 3 pour détecter la "température (en utilisant un convertisseur A / N)"!
Détectez la température à l'aide de python sur Raspberry Pi 3!
Contrôlez le moteur avec un pilote de moteur en utilisant python sur Raspberry Pi 3!
Sonnez le buzzer en utilisant python sur Raspberry Pi 3!
Utilisez le capteur de température / humidité / pression BME280 de Python avec Raspberry Pi 2
Détectez la "luminosité" en utilisant python sur Raspberry Pi 3!
Utiliser le capteur Grove avec Raspberry Pi
Exécutez un servomoteur en utilisant python sur Raspberry Pi 3
[Remarque] Utilisation d'un écran LCD à 16 caractères à 2 chiffres (1602A) de Python avec Raspeye
À propos de l'erreur que j'ai rencontrée en essayant d'utiliser Adafruit_DHT à partir de Python sur Raspberry Pi
Détectez les signaux analogiques avec un convertisseur A / N en utilisant python sur Raspberry Pi 3!
Essayez d'utiliser le code QR avec Raspberry Pi
Détectez les commutateurs magnétiques à l'aide de python sur Raspberry Pi 3!
Construire un environnement de développement Python sur Raspberry Pi
Enfin ... Créez un contrôleur radio en utilisant python sur Raspberry Pi 3! (Le moteur se déplace lorsque le bouton est enfoncé)
Sortie sur "LED 7 segments" en utilisant python avec Raspberry Pi 3!
Enfin ... Créez un contrôleur radio en utilisant python sur Raspberry Pi 3! (Le moteur se déplace tandis que l'aimant est rapproché)
[Ne pas se référer au 04.02.17] Afficher le capteur de température dans un graphique en temps réel avec rasberry pi 3
Installez PyCall sur Raspberry PI et essayez d'utiliser la bibliothèque GPIO pour Python de Ruby
Accédez aux feuilles de calcul Google en utilisant python avec raspberry pi (pour vous-même)
Comment obtenir la température du thermo-hygromètre SwitchBot à l'aide de Raspberry Pi
Remarques sur l'utilisation de MeCab depuis Python
Utiliser une webcam avec Raspberry Pi
Fabriquez un incubateur à CO2 simple à l'aide de Raspberry PI et d'un capteur de CO2 (MH-Z14A)
Utilisez python sur Raspberry Pi 3 pour éclairer la LED (Hello World)
Enfin ... Créez un contrôleur radio en utilisant python sur Raspberry Pi 3! (Lorsque l'aimant est rapproché, le moteur se déplace et s'arrête automatiquement)
Un mémo pour utiliser simplement le capteur d'éclairement TSL2561 avec Raspberry Pi 2
Adafruit Python BluefruitLE fonctionne sur Raspeye.
Utilisez python sur Raspberry Pi 3 pour éclairer la LED avec le contrôle du commutateur!
Essayez de tweeter le flux RSS d'arXiv sur Twitter avec python de Raspeye
[Python + PHP] Créez un moniteur de température / humidité / pression avec Raspberry Pi
[Python] Une barre de progression sur le terminal
Travailler avec le GPS en Python pour Raspberry Pi 3
La température est automatiquement mesurée à l'aide de Raspberry Pi 3 et automatiquement téléchargée sur le serveur (Docker python3 + bouteille + MySQL) pour visualisation!
[2015/11/19] Comment enregistrer un service localement à l'aide du SDK python avec naoqi os
Fabriquez un thermomètre avec Raspberry Pi et rendez-le visible sur le navigateur Partie 3
Création d'un système de contrôle de température avec tarte aux framboises et ESP32 (3) Réception d'un fichier Python
Utilisez python sur Raspberry Pi 3 pour éclairer la LED quand il fait noir!
Utilisez le capteur de température analogique Raspberry Pi Python vers TMP36 et le convertisseur MCP3008 AD
Construire un environnement Django sur Raspai (MySQL)
Python: essayez d'utiliser l'interface utilisateur sur Pythonista 3 sur iPad
Envoyer des données depuis Raspberry Pi à l'aide d'AWS IOT
Rendre DHT11 disponible avec Raspeye + python (Remarque)
Exécutez des fichiers Python à partir de HTML en utilisant Django
Créer un système de notification des visiteurs à l'aide de Raspberry Pi
Afficher la température du processeur toutes les 5 secondes sur Raspberry Pi 4
Exécutez des scripts Python à partir d'Excel (en utilisant xlwings)
Connectez-vous à MySQL avec Python sur Raspberry Pi
Créez une interface graphique sur le terminal à l'aide de curses
Mesurer la température du processeur de Raspeye avec Python
Réalisez une maison super IoT en acquérant des données de capteur dans la maison avec Raspberry Pi
Une note sur l'implémentation de la bibliothèque qui explore les hyperparamètres à l'aide de l'optimisation bayésienne en Python
Utilisez le SDK API kintone pour Python avec Raspberry Pi (stockez facilement des données dans kintone à partir de Raspberry Pi)