Jump to content

FD

Members
  • Content Count

    9
  • Joined

  • Last visited

Community Reputation

0 Neutral
  1. Hallo zusammen, anbei mein Code zur Erstellung einer CSV Datei, in der die Luftfeuchtigkeit jede 5 min abgespeichert werden soll. Lass ich den Code so laufen, wird bei mir im Ordner eine CSV Datei erstellt in der die Werte abgespeichert werden. Nun meine Frage: Ist es möglich, dass ich diesen Code als Porgramm auf den Red Brick hoch lade und mir die CSV Dateien auf dem Red gespeichert werden? Und wenn ja wie? (Ich möchte nicht den Brick Logger nutzen) Vielen Dank euch. #!/usr/bin/env python # -*- coding: utf-8 -*- from time import * HOST = "localhost" PORT = 4223 UID_Hum = "Hu" from tinkerforge.ip_connection import IPConnection from tinkerforge.bricklet_humidity import BrickletHumidity if __name__ == "__main__": #Verbindung zu Bricklets wird aufgebaut. ipcon = IPConnection() Hum = BrickletHumidity(UID_Hum, ipcon) ipcon.connect(HOST, PORT) # Connect to brickd # Don't use device before ipcon is connected t = time() flag = False j = True while True: Time_akt = localtime() if ((Time_akt[4] == 0 or Time_akt[4] == 5 or Time_akt[4] == 10 or Time_akt[4] == 15 or Time_akt[4] == 20 or Time_akt[4] == 25 or Time_akt[4] == 30 or Time_akt[4] == 35 or Time_akt[4] == 40 or Time_akt[4] == 45 or Time_akt[4] == 50 or Time_akt[4] == 55)\ and flag == False): flag = True print('Flag: ' + str(flag)) #Sensoren auslesen alle 5min Luftfeuchtigkeit = Hum.get_humidity() #Akutelle Systemzeit auslesen Jahr = str(Time_akt[0]) Monat = str(Time_akt[1]) Tag = str(Time_akt[2]) Stunde = str(Time_akt[3]) Minute = str(Time_akt[4]) #Sensordaten konvertieren und speichern Hum_str = str(Luftfeuchtigkeit) Ausgabe = (Jahr+'.'+Monat+'.'+Tag+';'\ +Stunde+':'+Minute+';'\ +Hum_str+';'\ +'\n') filename = (Jahr+'_'+Monat+'_'+Tag+'_schnell'+'_'+'Data.csv') data = open(filename,'a') data.write(Ausgabe) data.close() if ((Time_akt[4] >= 1 and Time_akt[4] < 5) or\ (Time_akt[4] >= 6 and Time_akt[4] < 10) or\ (Time_akt[4] >= 11 and Time_akt[4] < 15) or\ (Time_akt[4] >= 16 and Time_akt[4] < 20) or\ (Time_akt[4] >= 21 and Time_akt[4] < 25) or\ (Time_akt[4] >= 26 and Time_akt[4] < 30) or\ (Time_akt[4] >= 31 and Time_akt[4] < 35) or\ (Time_akt[4] >= 36 and Time_akt[4] < 40) or\ (Time_akt[4] >= 41 and Time_akt[4] < 45) or\ (Time_akt[4] >= 46 and Time_akt[4] < 50) or\ (Time_akt[4] >= 51 and Time_akt[4] < 55) or\ (Time_akt[4] >= 56 and Time_akt[4] < 60)): flag = False t = time() if j == False: break ipcon.disconnect()
  2. Könnte mir vll kurz wer erklären wie ich die API Bindings dann hochlade? Vielen Dank!
  3. gibt es inzwischen ne Lösung? habe das Problem auch ständig... Danke!
  4. Servus zusammen, ich habe das von Tinkerforge gestellte Beispielprogramm für den RTC auf den Red-Brick hochgeladen.Leider bekomme ich immer diese Fehlermeldung: Wer ne Idee? Vielen Dank! #!/usr/bin/env python # -*- coding: utf-8 -*- HOST = "localhost" PORT = 4223 UID = "xKG" # Change XYZ to the UID of your Real-Time Clock Bricklet from tinkerforge.ip_connection import IPConnection from tinkerforge.bricklet_real_time_clock import BrickletRealTimeClock # Callback function for date and time callback def cb_date_time(year, month, day, hour, minute, second, centisecond, weekday, timestamp): print("Year: " + str(year)) print("Month: " + str(month)) print("Day: " + str(day)) print("Hour: " + str(hour)) print("Minute: " + str(minute)) print("Second: " + str(second)) print("Centisecond: " + str(centisecond)) print("Weekday: " + str(weekday)) print("Timestamp: " + str(timestamp)) print("") if __name__ == "__main__": ipcon = IPConnection() # Create IP connection rtc = BrickletRealTimeClock(UID, ipcon) # Create device object ipcon.connect(HOST, PORT) # Connect to brickd # Don't use device before ipcon is connected # Register date and time callback to function cb_date_time rtc.register_callback(rtc.CALLBACK_DATE_TIME, cb_date_time) # Set period for date and time callback to 5s (5000ms) # Note: The date and time callback is only called every 5 seconds # if the date and time has changed since the last call! rtc.set_date_time_callback_period(5000) ipcon.disconnect()
  5. Vielen Dank!!!!!!!!!!!!!! Hast mir sehr geholfen
  6. Mir ist leider noch nicht so ganz klar, es klappt immer noch nicht. Könntest du mir es bitte kurz mit einem Code erklären? Wo genau kann ich über die Funktion x=get.temperature () o. Ä. meine Messwerte einlesen, muss ich hierfür eine neue Funktion erstellen? Vielen Dank.
  7. Ja mit den Min/Max muss ich mich erst noch auseinandersetzen Aber nochmal kurz auf das Thema mit der Messdatenberechnung zurückzukommen: Ziel soll es sein, einen Wert Y zu erhalten, der sich aus den Messwerten Temp und CO2 ergibt (Ja dies ist wirklich nur ein fiktives Beispiel, ohne Bedeutung der Variablen). Dieser Wert Y soll jedes mal ausgegeben werden, wenn sich ein Messwert ändert, also entweder die Temp oder der CO2 Wert. Im folgend dargestellten Code habe ich das Problem, dass der Wert Y immer nur dann ausgegeben wird, wenn sich auch die Temperatur ändert. Wenn die Temperatur konstant bleibt und sich der CO2 Wert ändert, bekomme ich so leider keine Ausgabe. Bitte bitte ich komme einfach nicht weiter def cb_temperature(temperature): print (str(temperature/100)) x= co2.get_co2_concentration() print ("CO2 in cb_temp " + str(x)) y = x + (temperature/100) print ("Y " + str(y)) def cb_co2_concentration(co2_concentration): print(str(co2_concentration))
  8. Hallo MacDUff, erstmal Danke für deine ausführliche Erklärung. Leider wurde die Frage wahrscheinlich zu schlecht formuliert: Es geht mir darum, dass ich mit den unterschiedlichsten Messwerte (Hier als Beispiel Temperatur und CO2 brauche, aber für meine Auswertung noch weitere Messwerte wie Luftfeuchtigkeit, IR Temperatur etc.) Über die Callback Funktion kann ich mir ja jeden Messwert ausgeben lassen, der sich nach einer bestimmten Zeit bei einer Änderung aktualisiert. Wenn ich jedoch einen anderen Ausgabewert haben will, der sich aus den Messwerten zusammenstellt (z.B: PMV = Luftfeuchtigkeit/Lufttemperatur + 20, ja das macht keinen Sinn ^^) komme ich auf keine Lösung. Dieser Wert soll sich natürlich simultan anpassen, wenn sich in dem Fall die Luftfeuchtigkeit oder Lufttemperatur ändert und soll ausgegeben werden. Vielen vielen Dank! Und ja ich tue mir echt schwer mit dem Programmieren =/ Zum Thema Durchschnittswert: Hier bin ich noch auf der Suche nach einer Möglichkeit, ähnlich wie im Beispiel der Wetterstation einen Durchschnitts/Max/Min Wert der aufgenommenen Messwerte darstellen zu lassen, vll kann mir hier auch noch einer helfen.
  9. Hallo zusammen, folgende Frage: Ich würde gerne die Messwerte, die ich über die Callback Funktion erhalte weiter bearbeiten. Sprich: Ich schließe zum Beispiel einen IR-Temperatur-Sensoren sowie einen Temperatur-Sensor an und möchte den Durchschnitt davon berechnen. Dieser Durchschnitt soll sich natürlich zusammen mit den Callback-Werten ebenfalls aktualisieren. Kann mir einer helfen? Stehe wirklich auf dem Schlauch. Vielen Dank! #!/usr/bin/env python # -*- coding: utf-8 -*- HOST = "localhost" PORT = 4223 UID1 = "oed" # Change XYZ to the UID of your OLED 64x48 Bricklet UID2 = "co2" # Change XYZ to the UID of your CO2 Bricklet UID3 = "Temp" # Change XYZ to the UID of your Temperature Bricklet from tinkerforge.ip_connection import IPConnection from tinkerforge.bricklet_oled_64x48 import BrickletOLED64x48 from tinkerforge.bricklet_co2 import BrickletCO2 from tinkerforge.bricklet_temperature import BrickletTemperature def cb_temperature(temperature): print(str(temperature/100)) def cb_co2_concentration(co2_concentration): print(str(co2_concentration)) ## dieser Wert X soll sich zum Beispiel an die callbacks anpassen X = co2_concentration+ (temperature/100) print (x) if __name__ == "__main__": ipcon = IPConnection() # Create IP connection oled = BrickletOLED64x48(UID1, ipcon) # Create device object co2 = BrickletCO2(UID2, ipcon) # Create device object t = BrickletTemperature(UID3, ipcon) # Create device object ipcon.connect(HOST, PORT) # Connect to brickd # Don't use device before ipcon is connected co2.register_callback(co2.CALLBACK_CO2_CONCENTRATION, cb_co2_concentration) co2.set_co2_concentration_callback_period(1000) t.set_temperature_callback_period(1000) t.register_callback(t.CALLBACK_TEMPERATURE, cb_temperature) co2_concentration = co2.get_co2_concentration() print(str(co2_concentration)) temperature = t.get_temperature() print(str(temperature/100.0)) input("Press key to exit\n") ipcon.disconnect()
×
×
  • Create New...