Verwendung des digitalen 1-Draht-Temperatursensors DS18B20 mit Raspberry Pi von Python

Python auf Adafruits Raspberry Pi Lektion 11. DS18B20 Temperature Sensing auf Adafruits Lernseite, auf die ich mich immer beziehe Es gab eine Probe der Temperaturerfassung von DS18B20 unter Verwendung von. Die Bibliothek W1ThermSensor wird als einfache Methode eingeführt. Probieren Sie es also aus. Die Lizenz lautet GPLv2.

1-Draht-Setup

Überprüfen Sie die Kernel-Version.

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

Der Kernel ist wie in 1-Draht in Parasite Power-Konfiguration beschrieben (1-Draht mit 2 Drähten) funktioniert in 3.18.3 # 348 nicht. Wenn es "3.18.1 +" oder höher ist, wurde die Einstellung zum Aktivieren von 1-Wire geändert. Fügen Sie die folgende Zeile zu / boot / config.txt hinzu und starten Sie neu.

/boot/config.txt


dtoverlay=w1-gpio-pullup,gpiopin=4

So lesen Sie w1_slave-Dateien direkt

Versuchen Sie zunächst, die Datei "w1_slave" unter "/ sys / bus / w1 / device /" aus Ihrem Python-Code zu lesen.

~/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)

Führen Sie das Programm aus. Ich habe Chung und Hana bekommen und sie mit 3 Nachkommastellen formatiert.

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

Verwendung von W1ThermSensor

Installieren Sie W1ThermSensor mit git clone.

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

Schreiben Sie ein einfaches Programm. Erfassungsdaten können mit einem Gleitkommazahl mit 3 Nachkommastellen erfasst werden.

~/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))

Führen Sie das Programm aus. Der Code wurde vereinfacht, da die Bibliothek das Lesen der Datei "w1_slave" aus dem Verzeichnis "/ sys / bus / w1 / Geräte" wie im ersten Beispiel übernimmt.

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

Recommended Posts

Verwendung des digitalen 1-Draht-Temperatursensors DS18B20 mit Raspberry Pi von Python
Versuchen Sie es mit dem Temperatursensor (LM75B) mit Raspeye.
Verwenden Sie Python auf Raspberry Pi 3, um "Temperatur (mit A / D-Wandler)" zu erkennen!
Ermitteln Sie die Temperatur mit Python auf Raspberry Pi 3!
Steuern Sie den Motor mit einem Motortreiber mit Python auf Raspberry Pi 3!
Lassen Sie den Summer mit Python auf Raspberry Pi 3 erklingen!
Verwenden Sie den Temperatur- / Feuchtigkeits- / Drucksensor BME280 von Python mit Raspberry Pi 2
Erkennen Sie "Helligkeit" mit Python auf Raspberry Pi 3!
Verwenden Sie den Grove-Sensor mit Raspberry Pi
Lassen Sie einen Servomotor mit Python auf Raspberry Pi 3 laufen
[Hinweis] Verwenden eines 16x2-stelligen LCD-Zeichens (1602A) von Python mit Raspeye
Über den Fehler, den ich beim Versuch, Adafruit_DHT von Python auf Raspberry Pi zu verwenden, festgestellt habe
Erkennen Sie analoge Signale mit dem A / D-Wandler mithilfe von Python auf Raspberry Pi 3!
Versuchen Sie, QR-Code mit Raspberry Pi zu verwenden
Erkennen Sie Magnetschalter mit Python auf Raspberry Pi 3!
Erstellen Sie eine Python-Entwicklungsumgebung auf Raspberry Pi
Endlich ... Erstellen Sie einen Funkcontroller mit Python auf Raspberry Pi 3! (Der Motor bewegt sich, während die Taste gedrückt wird.)
Ausgabe auf "7 Segment LED" mit Python mit Raspberry Pi 3!
Endlich ... Erstellen Sie einen Funkcontroller mit Python auf Raspberry Pi 3! (Der Motor bewegt sich, während der Magnet näher gebracht wird)
[Siehe nicht 04.02.17] Zeigen Sie den Temperatursensor in Echtzeit in einem Diagramm mit Himbeer-Pi 3 an
Installieren Sie PyCall auf Raspberry PI und versuchen Sie, die GPIO-Bibliothek für Python von Ruby zu verwenden
Zugriff auf Google Spreadsheets Verwenden von Python mit Himbeer-Pi (für sich selbst)
So erhalten Sie die Temperatur vom SwitchBot-Thermo-Hygrometer mit Himbeer-Pi
Hinweise zur Verwendung von MeCab aus Python
Verwenden einer Webkamera mit Raspberry Pi
Machen Sie einen einfachen CO2-Inkubator mit Raspberry PI und CO2-Sensor (MH-Z14A)
Verwenden Sie Python auf Raspberry Pi 3, um die LED zu beleuchten (Hello World)
Endlich ... Erstellen Sie einen Funkcontroller mit Python auf Raspberry Pi 3! (Wenn der Magnet näher gebracht wird, bewegt sich der Motor und stoppt automatisch)
Ein Memo zur einfachen Verwendung des Beleuchtungsstärkesensors TSL2561 mit Raspberry Pi 2
Adafruit Python BluefruitLE arbeitet mit Raspeye.
Verwenden Sie Python auf Raspberry Pi 3, um die LED mit Schaltersteuerung zu beleuchten!
Versuchen Sie, den RSS-Feed von arXiv mit Python von Raspeye auf Twitter zu twittern
[Python + PHP] Erstellen Sie mit Raspberry Pi einen Temperatur-, Feuchtigkeits- und Druckmonitor
[Python] Ein Fortschrittsbalken auf dem Terminal
Arbeiten mit GPS in Python für Raspberry Pi 3
Die Temperatur wird automatisch mit Raspberry Pi 3 gemessen und automatisch zur Anzeige auf den Server (Docker Python3 + Flasche + MySQL) hochgeladen!
[19.11.2015] So registrieren Sie einen Dienst lokal mit dem Python SDK bei naoqi os
Machen Sie ein Thermometer mit Raspberry Pi und machen Sie es im Browser Teil 3 sichtbar
Erstellen eines Temperaturregelungssystems mit Himbeerkuchen und ESP32 (3) Empfangen einer Python-Datei
Verwenden Sie Python auf Raspberry Pi 3, um die LED zu beleuchten, wenn es dunkel wird!
Verwenden Sie den analogen Temperatursensor Raspberry Pi Python to TMP36 und den AD-Wandler MCP3008
Erstellen Sie eine Django-Umgebung auf Raspai (MySQL)
Python: Versuchen Sie, die Benutzeroberfläche von Pythonista 3 auf dem iPad zu verwenden
Senden Sie Daten von Raspberry Pi mit AWS IOT
Stellen Sie DHT11 mit Raspeye + Python zur Verfügung (Hinweis)
Führen Sie Python-Dateien mit Django aus HTML aus
Erstellen Sie ein Besuchermeldungssystem mit Raspberry Pi
Zeigen Sie die CPU-Temperatur alle 5 Sekunden auf dem Raspberry Pi 4 an
Führen Sie Python-Skripte in Excel aus (mit xlwings).
Stellen Sie mit Python auf Raspberry Pi eine Verbindung zu MySQL her
Erstellen Sie eine GUI auf dem Terminal mit Flüchen
Messen Sie die CPU-Temperatur von Raspeye mit Python
Verwirklichen Sie ein Super-IoT-Haus, indem Sie mit Raspberry Pi Sensordaten im Haus erfassen
Ein Hinweis zur Bibliotheksimplementierung, in der Hyperparameter mithilfe der Bayes'schen Optimierung in Python untersucht werden
Verwenden Sie das Kintone API SDK für Python mit Raspberry Pi (speichern Sie Daten einfach in Kintone von Raspberry Pi).