Raspberry Pi Temperatur logger

Du hast eine Idee für ein Projekt?
Antworten
Maylifreeed
User
Beiträge: 6
Registriert: Montag 25. Mai 2020, 11:01

Moin,
ich bin sehr neu und unbeholfen in diesem Gebiet, ich habe einen Temperatur und Luftfeuchtigkeitssensor an einem Pi Laufen, der die Werte auf einen Monitor ausgibt.
Nun wollte ich gerne diese Werte auf einem USB-Stick in einer Textdatei speicher, sodass diese druckbar sind. Es soll Datum Uhrzeit und halt die Temperatur und Luftfeuchte enthalten.
Ausserdem soll der Pi die Werte einen Monat speichern und danach eine neue Datei anfangen und ab dem dritten Monat soll die erste Datei gelöscht werden, es darf keinen Einfluss nehmen, wenn ich den USB-Stick rausziehe, wenn ich ihn wieder reinstecke soll der Pi die Aufzeichnung weiterführen.
Ist das soweit möglich? Der Sensor ist ein DHT22 und der Pi ein 3B+. Angedacht war auch einen zweiten Pi mit dem anderen zu kommunizieren lassen, sodass ich einen Mittelwert aus zwei Sensoren messen kann, das wäre wenns zu aufwändig ist aber erstmal nicht so wichtig.
MfG



Hier mein aktueller Code:

Code: Alles auswählen

# -*- coding: utf-8 -*-

from Tkinter import *
import Tkinter as tk
import Adafruit_DHT as dht
import threading
import tkFont

import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BOARD)
GPIO.setup(40, GPIO.OUT)
GPIO.output(40, GPIO.HIGH)

root = tk.Tk()

image = PhotoImage(file="background.gif")

background=Label(root, image=image)
background.place(x=0,y=0,relwidth=1, relheight=1)

temperature = StringVar()
temperature.set("----"+" °C")		

humidity = StringVar()
humidity.set("----"+" %")		

temperatureLabel = Label(root, fg="blue", background="#FFFFFF", textvariable=temperature, font=("Helvetica", 120,"bold"))
temperatureLabel.place(x=50, y=500)

humidityLabel = Label(root, fg="blue", background="#FFFFFF", textvariable=humidity, font=("Helvetica", 120,"bold"))
humidityLabel.place(x=50, y=700)
 
root.attributes("-fullscreen",True)
root.bind("<1>",exit)

def exit():
	root.quit()

def readSensor():
	root.after(2000, readSensor)
        h,t = dht.read_retry(dht.DHT22,20)
        temp = "Temperatur         "+"%.1f" %t
	temperature.set(temp+" °C")	
	hum = "Luftfeuchtigkeit  "+"%.1f" %h
	humidity.set(hum+"  %")
		
root.after(2000, readSensor)

root.mainloop()
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ist das Zufall, dass du das exakt gleiche Programm wie in https://forum-raspberrypi.de/forum/thre ... en-lassen/ hast?

Und wenn nicht, warum erwaehnst du nicht all die anderen Randbedingungen, also das es mehrere PIs in einer Werkhalle gibt, etc?
Maylifreeed
User
Beiträge: 6
Registriert: Montag 25. Mai 2020, 11:01

gehören die foren zusammen?
MfG
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Python2 sollte man nicht mehr benutzen, das ist veraltet. Eingerückt wird mit 4 Leerzeichen pro Ebene, keine Tabs. Variablen- und Funktionsnamen schreibt man klein.
Dann sollte man noch alles in Funktionen packen und keine globalen Variablen benutzen.

Zur Frage: ja das geht.
Maylifreeed
User
Beiträge: 6
Registriert: Montag 25. Mai 2020, 11:01

Wie sollte es dann am besten aussehen?
Ich bitte um Hilfe.
MfG
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Die Foren gehoeren nicht zusammen. Aber viele Leute hier lesen beide. Es ist auch kein Problem doppelst zu posten (ich zumindest sehe das so), aber du hast die Fragen nicht beantwortet. Damit man helfen kann, braucht es schon einen Ueberblick darueber, was da insgesamt erreicht werden soll - und da fehlt noch so einiges.

Zu guter Letzt - Hand auf's Herz: hast du den Code geschrieben? Oder irgendwo gefunden, und bestenfalls Namen gaendert? Denn eine GUI ist fuer dein Problem (in den Grenzen, in denen es bekannt ist), ueberhaupt nicht notwendig, im Gegenteil.
Maylifreeed
User
Beiträge: 6
Registriert: Montag 25. Mai 2020, 11:01

Ich habe den Code im groben übernommen und so abgeändert das er zu meiner Anwendung passt.
MfG
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ok. Da du immer noch nicht weiter ausholts, was du da machen willst, ist hier fuer mich Ende. Viel Erfolg.
Maylifreeed
User
Beiträge: 6
Registriert: Montag 25. Mai 2020, 11:01

:-)
NPC
User
Beiträge: 54
Registriert: Dienstag 8. Januar 2019, 17:51

Hallo Maylifreeed,

Es bietet sich vielleicht an, dass du zuerst einmal ein Python tutorial machst.
Wenn ich richtig verstehe was du machen willst, brauchst du aus dem Code oben ungefähr zwei Zeilen https://tutorials-raspberrypi.de/raspbe ... t11-dht22/. Wobei ich zu geben muss, dass ich mit diesem Sensor noch nicht gearbeitet habe....

Schau dir erstmal die Python basics an und versuche dann ein Skript zu schreiben, dass dir beim Ausführen einmalig die Temp, ... ausgibt. Daran arbeitest du dich dann langsam vor.
Maylifreeed hat geschrieben: Montag 25. Mai 2020, 13:42 Ich habe den Code im groben übernommen und so abgeändert das er zu meiner Anwendung passt.
Die beiden sehen sich für "grob" übernommen aber verdammt ähnlich... Letztlich ist es mir egal, ob du den Code selbst schreibst oder nicht aber wenn du sagst, dass du Ihn abändern kannst, wird vielleicht etwas mehr verständnis des Codes angenommen als du vielleicht hast. Wenn man dir dann also sowas schreibt wie:
__deets__ hat geschrieben: Montag 25. Mai 2020, 13:05 ... eine GUI ist fuer dein Problem (in den Grenzen, in denen es bekannt ist), ueberhaupt nicht notwendig, im Gegenteil.
erwartet man dann, dass du weißt welche Teile des Codes gemeint sind und vielleicht erklärst warum du sie beim abändern nicht entfernt hast (da dein Vorhaben dann offenbar falsch von uns verstanden wurde).


Viele Grüße
NPC
Maylifreeed
User
Beiträge: 6
Registriert: Montag 25. Mai 2020, 11:01

Moin, erstmal vielen Dank für deine Antwort. Ich sollte mich wirklich mehr mit dem Thema beschäftigen. Also das mit dem automatisch speichern habe ich jetzt auch soweit hinbekommen mit vielen Videos und Codes an denen ich solange geändert und probiert habe bis es lief, es sind mit Sicherheit nicht die besten Lösungen aber es läuft. :D
Antworten