🍪 Privacy & Transparency

We and our partners use cookies to Store and/or access information on a device. We and our partners use data for Personalised ads and content, ad and content measurement, audience insights and product development. An example of data being processed may be a unique identifier stored in a cookie. Some of our partners may process your data as a part of their legitimate business interest without asking for consent. To view the purposes they believe they have legitimate interest for, or to object to this data processing use the vendor list link below. The consent submitted will only be used for data processing originating from this website. If you would like to change your settings or withdraw consent at any time, the link to do so is in our privacy policy accessible from our home page..

Vendor List | Privacy Policy
Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry PI

Menu
  • Projekte
    • LED’s
    • Servo & Schrittmotoren
    • Sound
    • LCD’s
    • Kommunikation
    • Sicherheit
    • Weekend Project
  • Arduino
    • Tutorials
    • ProMini
      • Anschließen & Programmieren
    • Nano
      • Arduino Nano – Übersicht
    • UNO
      • Übersicht
    • MEGA 2560
      • Übersicht
    • Leonardo
      • Übersicht
    • NodeMCU
      • NodeMCU – “Einer für (fast) Alles!”
    • Lilypad
      • Arduino: Lilypad “Jetzt Geht’s Rund!”
    • WEMOS
      • WEMOS D1 – Arduino UNO kompatibles Board mit ESP8266 Chip
      • WEMOS D1 Mini – Übersicht
      • Wemos D1 mini Shields
    • STM32x
      • STM32F103C8T6 – Übersicht
    • Maker UNO
      • Maker UNO – Überblick und Test
    • ATTiny85
      • Mini Arduino mit ATTiny85 Chip
      • ATtiny85 mit dem Arduino UNO beschreiben
  • Android
  • Über mich
  • DeutschDeutsch
  • EnglishEnglish
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

Kategorien

Tools

  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator
  • Widerstandsrechner
  • Rechner für Strom & Widerstände
  • ASCII Tabelle

Meta

  • Videothek
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Kontakt
  • Cookie-Richtlinie (EU)

Links

Blogverzeichnis Bloggerei.de Blogverzeichnis TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com
©2023 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb