Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

Raspberry PI Tutorial #5: DHT11 Sensor ansteuern (Teil2), Sensorwerte in eine CSV Datei speichern

Posted on 21. Oktober 20193. Mai 2023 by Stefan Draeger

Im Beitrag Raspberry PI Tutorial #4: DHT11 Sensor ansteuern (Teil1) habe ich gezeigt wie du die Daten vom DHT11 Sensor am Raspberry PI auslesen kannst. In diesem Beitrag möchte ich dir zeigen wie du die Daten in einer CSV Datei speichern kannst.

Für dieses Tutorial benötigst du die Schaltung welche ich im ersten Tutorial zum DHT11 Sensor aufgebaut habe.

Raspberry PI mit DHT11 Sensor
Raspberry PI mit DHT11 Sensor

  • Erweitern des Quellcodes
    • auslagern in einer Funktion
    • einbinden einer Pause
  • erstellen und befüllen der CSV Datei
  • schließen der Datei
  • Quellcode
    • Download
  • Video

Erweitern des Quellcodes

Ich verwende den Quellcode aus dem zuvor veröffentlichten Beitrag zum DHT11 Sensor wieder. Du kannst dir dieses bequem unter nachfolgendem Link herunterladen.

Raspberry PI Tutorial #4: DHT11 Sensor ansteuern (Teil1)Herunterladen

auslagern in einer Funktion

Zunächst einmal werden wir die Funktion des lesens der Werte in eine Funktion auslagern.

def readDht11Values():
	#Variablen deklarieren und gleichzeitig die Werte vom Sensor empfangen.
	humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) 

	#Wenn die Werte erfolgreich gelesen werden konnten dann...
	if humidity is not None and temperature is not None: 
		#formatierte Ausgabe der Werte auf der Kommandozeile
		print('Temperatur={0:0.1f}*C Luftfeuchtigkeit={1:0.1f}%'.format(temperature, humidity)) 
	else: #ansonsten
		#Ausgabe einer Fehlermeldung auf der Kommandozeile
		print('Fehler beim empfangen der Daten. Bitte versuche es erneut!')

Diese Funktion „readDht11Values“ rufen wir nun in einer Dauerschleife auf.

while True:
	readDht11Values()

einbinden einer Pause

Der Sensor liefert alle 2 Sekunden einen neuen Wert daher legen wir nun nach dem lesen & ausgeben der Werte eine kleine Pause von 2,5 Sekunden ein. Dazu müssen wir zunächst die Bibliothek „time“ einbinden.

import time

Nun können wir in der Dauerschleife die Pause mit der Funktion „sleep“ implementieren. Diese Funktion erwartet als Parameter einen Gleitkommawert um zu definieren wie lange die Pause dauern soll.

time.sleep(2) #2 Sekunden Pause

erstellen und befüllen der CSV Datei

Eine CSV Datei ist eine ASCII Datei in welcher die Daten Kommasepariert aufgelistet werden.

Wie man Daten in eine CSV Datei mit Python speichert & ausliest habe ich im Tutorial Python #10: Dateiverarbeitung ausführlich beschrieben.

Als erstes benötigen wir eine Datei in welche wir die Daten schreiben können, diese erzeugen wir uns mit dem Tool „nano“

sudo nano dht11values.csv

In dem nun geöffneten Editor tragen wir die Kopfzeile ein,

Temperatur; Luftfeuchtigkeit

Speichern (Strg + O) und verlassen diesen mit der Tastenkombination „Strg + X“.

Nun können wir im Pythonskript diese Datei laden.

csvFile = open("dht11values.csv", "a")

Der Parameter Wert „a“ steht hier für „append“ d.h. es werden immer wieder Werte an das Dateiende hinzugefügt.

Die Daten schreiben wir mit der Funktion „write“ wiefolgt:

csvFile.write('{0:0.1f}*C; {1:0.1f}%'.format(temperature, humidity))

Als Trennzeichen verwende ich das Semikolon, dieses kann später in zbsp. Microsoft Excel beim import der Daten konfiguriert werden.

schließen der Datei

Eine geöffnete Datei muss immer geschlossen werden! D.h. es sollte in jedemfall einen „Mechanismuss“ geben welcher sicherstellt das die Datei geschlossen wird. Hier nutzen wir einen Try Except Block um unsere Dauerschleife:

#Wenn ein Fehler passiert dann soll dieser Abgefangen werden.
try:		
   while True:
	readDht11Values()
	time.sleep(2) #2 Sekunden Pause
except KeyboardInterrupt:
   csvFile.close() #Schliesen der Datei beim beenden des Skriptes
   pass

Quellcode

Hier nun der gesamte überarbeitete Quellcode.

import Adafruit_DHT
import time

sensor = Adafruit_DHT.DHT11

pin = 4

csvFile = open("dht11values.csv", "a")

def readDht11Values():
        humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
        if humidity is not None and temperature is not None:
                print('Temperatur={0:0.1f}*C Luftfeuchtigkeit={1:0.1f}%'.format(temperature, humidity))
                csvFile.write('{0:0.1f}*C; {1:0.1f}%'.format(temperature, humidity))
                csvFile.write('\n')
        else:
                print('Fehler beim empfangen der Daten. Bitte versuche es erneut!')

try:
        while True:
                readDht11Values()
                time.sleep(2)
except KeyboardInterrupt:
        csvFile.close()
        pass

Download

Raspberry PI Tutorial #5: DHT11 Sensor ansteuern (Teil2), Sensorwerte in eine CSV Datei speichernHerunterladen

Video

Raspberry PI & DHT11 Sensor, schreiben in eine CSV Datei
Dieses Video auf YouTube ansehen.

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}