Jump to content

heinz_a

Members
  • Content Count

    8
  • Joined

  • Last visited

Community Reputation

0 Neutral
  1. Mit dem Quad Relay steuere ich ein Magnetventil 12 V (920 mA). Nun hat es einen Kurzschluss gegeben (siehe Bild). Könnte das eine Motte gewesen sein? Ist das Quad Relay möglicherweise nicht geeignet für diese Aufgabe? Nun muss eine zusätzliche Absicherung her, da „iqr.get_value()“ in diesem Fall kein brauchbares Ergebnis liefert.
  2. Funktion zum Laden des Akkus def akku_spannung(): spannung = servo.get_external_input_voltage() if spannung < 6500: # 6,5 V print("Laden") #Relais ein # NiMH-Akku 7,2 V relais.set_state(True, False) elif spannung > 8500: #8,5 V print("Stop Laden") #Relais aus relais.set_state(False,False ) return spannung
  3. Solarmodul per Servo der Sonne nachführen. Material: Servo-Brick, Servo, PV-Modul, Raspberry-Pi Das Programm ist recht einfach gehalten. An Sonenauf-/untergang kann mach noch weiterentwickeln. Die Zeiten im Programm sind für Tests reduziert. Das Poti ist zum manuellen Stellen, z.B. nach Sonnenuntergang ... #!/usr/bin/env python # -*- coding: utf-8 -*- HOST = "localhost" PORT = 4223 UID_servo = "6KveiL" # Change to your UID UID_rotary = "y5A" servo_num = 1 from tinkerforge.ip_connection import IPConnection from tinkerforge.brick_servo import Servo from tinkerforge.bricklet_rotary_poti import RotaryPoti from threading import * from datetime import time, datetime, timedelta ipcon = IPConnection() # Create IP connection servo = Servo(UID_servo, ipcon) # Create device object poti = RotaryPoti(UID_rotary, ipcon) Sonnenzeit = timedelta(hours=10) Sonnenuntergang = time(17, 0, 0).hour Trackzeit = 10 #1800 = halbe Stunde def track(): jetzt = datetime.now().hour Zeit_bis_Untergang = timedelta(hours=(Sonnenuntergang-jetzt)) print("Zeit: {0}".format(str(datetime.now()))) print("Sonnenuntergang: {0}".format(str(Sonnenuntergang))) print("Verbleibende Zeit: {0} ".format(str(Zeit_bis_Untergang)) + " (Std.)") global akt_position servo.set_position(6, akt_position) akt_position = akt_position + 900 t = Timer(Trackzeit, track) t.start() def cb_position(position): #Poti zum manuellen Positionieren servo.set_position(6,60*position) def cb_reached(servo_num, position): #Zielposition erreicht global akt_position print("Position: {0}".format(str(akt_position))) if position == 9000: akt_position = -9000 t = Timer(14, track) #14*3600 Min. bis Sonnenaufgang if __name__ == "__main__": ipcon.connect(HOST, PORT) # Connect to brickd servo.register_callback(servo.CALLBACK_POSITION_REACHED, cb_reached) servo.enable_position_reached_callback() servo.set_velocity(6, 4000) #Geschwindigkeit niedrig servo.set_acceleration(6,8000) #Beschleunigung gering servo.set_position(6, 0) servo.enable(6) poti.set_position_callback_period(50) poti.register_callback(poti.CALLBACK_POSITION, cb_position) global akt_position jetzt = datetime.now().hour if jetzt > Sonnenuntergang: # Nacht Stunden_bis_Start = timedelta(hours=24-jetzt+7) print("Start in {0} Stunden".format(str(Stunden_bis_Start))) t = Timer(Stunden_bis_Start.total_seconds()/3600, track) t.start() # bei Sonnenaufgang starten else: print("jetzt: {0}".format(str(jetzt))) # Startposition anfahren akt_position = 9000-(Sonnenuntergang-jetzt)*1800 #Endposition - Stunden * Winkel/Std. akt_position = -9000 t = Timer(3, track) # t.start() # sofort starten raw_input('Press key to exit\n') # Use input() in Python 3 ipcon.disconnect() t.cancel()
  4. Das war's. Ich habe den Brick so knapp verbaut, daß beide Taster gedrückt wurden ... Besten Dank!
  5. Kann da jemand einen Defekt erkennen? Gruß Heinz
  6. Die Konzentration der Säure ändert sich nicht so stark, dass man diese über den Behandlungszeitraum überwachen müßte. Sensoren gibt es, die dann mehrere hundert Euronen kosten. Wenn man es mit Tinkerforge angehen will, wären Impedanz und Dichte ein Ansatz. Für den Imker macht die Überwachung des Gewichtes des Bienenstocks Sinn. Das kann man mit dem „Load Cell Bricklet“ realisieren.
  7. Callback function ist besser .... def cb_illuminance(illuminance): global StartZeit global StopZeit if illuminance/10.0 > 50:# Lampe leuchtet StartZeit = time.time() if illuminance/10.0 < 20:# Lampe aus StopZeit = time.time() print('Brennerzeit = {0}'.format(str(round(StopZeit - StartZeit,0)))+' Sekunden') # Tag, Uhrzeit, Brennerzeit in DB schreiben
  8. Du brauchst noch einen Master-Brick, der mit den Bricklets verbunden wird. Dann kannst du mit dem Brick-Viewer deinen Aufbau testen. Software-Beispiele sind für jede Sprache in der Dokumentation zu finden. Viel Spaß Heinz
×
×
  • Create New...