Posts by Lynix

    GPIOs ändern den status nach einigen Sekunden

    Raus damit. Vll kommt auch dann der Entscheidene Hinweis.

    Statt rpi würd ich dir gpiozero empfehlen.

    Setzt Vll testt den Status zurück? Müsstest davon auch mal den Code zeigen

    Was meintest du mit "Raus damit"? testt ist wirklich nur eine Funktion die eine random nummer generiert und diese returned. Ich habe das problem auch wenn über console die Pins ansteuere also am Programm kann es nicht liegen.

    Hallo,

    Ich setze den GPIO pin auf out mit GPIO.setup(7, GPIO.OUT) danach ist der "status" des pins für ca. 6 Sekunden auf OUT (habe ich mit "gpio readall überprüft")

    wenn ich dann 6 Sekunden später nochmal "gpio readall" in das Terminal eingebe ist der Status wieder auf IN. Also kurz der status ändert sich immer nach einigen Sekunden von OUT wieder zu IN ohne das irgendwelche Skrips laufen.

    Wieso wird der Status automatisch geändert und wie kann ich das verhindern?

    folgendes Skript funktioniert deshalb nicht.

    testt simuliert momentan einen wert der später von einem Temperatursensor gegeben werden soll, allerdings brauche ich noch einen 4,7kOhm Wiederstand der noch unterwegs ist. :)

    Bonus-frage: Wie schlimm strukturiert ist mein code? :D Kennt ihr irgendwelche guten Ressourcen wo ich das strukturieren von code für z.b. größere Projekte lernen könnte.

    Ich bin im Moment noch ziemlich verwirrt und weiß nicht wann ich am besten eine Klasse oder e ine Funktion nehme oder wann ich eine neue Datei erstellen sollte auf die dann die main Datei zugreift.

    Euch allen noch einen schönen Abend.

    Vielen Dank für eure hilfe:):danke_ATDE::danke_ATDE:

    Ups :) Vielen Dank.

    Die Variable wird temporär in den String eingepasst, also nur für die Dauer des Aufrufs.

    Ich habe eine Lösung für das Problem gefunden. Google Chrome ruft einen Link so lange wiederholt ab bis es eine Antwort hat. In einer Anwendung gibt es kein Problem da der link nur einmal abgerufen wird.:danke_ATDE:

    Vielen Dank. Es funktioniert. Ich verstehe aber noch nicht ganz was passiert? Wird die Variable an das Html script geschickt und dann wieder zurück ins python script? Ich bekomme außerdem noch folgende Error message: return render_template("hello_{}.html".fromat(sec))

    AttributeError: 'str' object has no attribute 'fromat' . Wenn ich jetzt das Relais ausersehenen für eine lange zeit öffne kann ich es nicht wieder mit einem anderen link schließen da es bei time.sleep stehen bleibt. Wie kann ich das ändern? vielleicht mit try und except? hier nochmal der Gesamte code.

    Hallo,

    Ich habe folgenden code:

    Ich möchte eine Variable in eine Url einbauen. Ich habe es schon versucht aber die Variable wird im html code eingefügt und nicht im Python code. Ich möchte ein Relais über einen link für eine gewisse Zeit öffnen und dann wieder schließen. Beispielcode(funktioniert nicht):

    :danke_ATDE:

    Udate: Ich habe jetzt Flask benutzt, und bin jetzt so weit das ich per link verschiedene Funktionen ausführen kann. Ich habe auch schon mit Kivy eine App erstellt. In der App gibt es zwei Buttons die auf Knopfdruck die jeweilige Url anfordern (via Kivy UrlRequest). Die App funktioniert auch. Ich habe dann mit Virtual Box und Buildozer die App in eine APK umgewandelt. Die App funktioniert zwar, aber auf Knopfdruck passiert nichts. Ich denke das ich noch irgendetwas in den Buildozer specs einstellen muss damit es funktioniert. Ich hoffe ihr könnt mir helfen. Hier der App code:


    Python
    from kivy.network.urlrequest import UrlRequestfrom kivy.app import Appfrom kivy.uix.button import Buttonfrom kivy.uix.boxlayout import BoxLayoutclass RemoteApp(App):def build(self):layout = BoxLayout(orientation="vertical")btn1 = Button(text="An!", background_color=(0, 1, 0.5, 1), font_size=150)btn1.bind(on_press=self.callback)btn2 = Button(text="Aus!", background_color=(0, 1, 0.5, 1), font_size=150)btn2.bind(on_press=self.aus)layout.add_widget(btn1)layout.add_widget(btn2)return layoutdef callback(self, event):UrlRequest("http://(MeineIP):5000/on")def aus(self, event):UrlRequest("http://(MeineIP):5000/off")if __name__ == '__main__':RemoteApp().run()


    Hier meine Buildozer Specs:

    :danke_ATDE::danke_ATDE:

    HTTP, oder direkt über Sockets.

    Ich versuche es gerade mal über Sockets. Ich habe mir folgenden code kopiert: Server

    Client

    Ich habe natürlich die IPs geändert. Der server code auf dem Raspberry pi funktioniert aber bei dem code für den Client kommt folgende Errormessage:

    "line 11, in <module>

    s.send(args + ' ')

    TypeError: a bytes-like object is required, not 'str'"

    Irgendwelche Ideen was ich machen kann?:danke_ATDE:

    Quote

    Aber wenn du Remote irgendwas ausführen willst, für was brauchst du dann ne GUI?

    Ich möchte erstmal nur Programme ausführen ich kenne mich noch nicht genug mit Kivy aus. Später möchte ich über eine App auch inputs geben können. Ich möchte meine vorhaben nur langsam angehen um sinnlose Frustration zu vermeiden :P . Meine Frage ist jetzt eher wie ich (vermutlich über eine SSH verbindung) vom Handy mit dem Raspberry pi Kommunizieren kann bzw. wo ich Informationen zu diesem Thema finden kann. (Google war bis jetzt erfolglos.)

    Hallo,

    kann ich mit Kivy eine App programmieren mit der ich dem Raspberry pi remote (im localen netz) befehle geben kann? Kivy macht das App Design relativ einfach. Ich möchte das verschieden buttons in der App, verschiedene python scripte auf dem Raspberry pi ausführen. Ich möchte keine fertige Raspberry pi app verwenden wie z.b.: Raspberry Pi check, Pi control App, RaspController...

    Gibt es irgendwelche guten Anleitungen (Eng/Ger)?

    Danke :danke_ATDE:

    Hallo,
    ich programmiere mit meinem Raspberry pi schon seit einiger Zeit Leds, Relais... mit Python. Ich wollte jetzt mal programmieren das ein Relais sich jeden tag für eine gewisse Zeit öffnet und danach wieder schließt. Das hab ich mit crontab gemacht. Jetzt wollte ich noch einen schalter hinzufügen der zu jeder Zeit auf Knopfdruck das Relais öffnet. Als ich Fertig war merkte ich das meine beiden Programme gar nicht miteinander funktionieren da in einer schleife (while 1) abgefragt wird ob der Knopf gedrückt ist und wenn nicht wird das Relais auf LOW (geschlossen) gesetzt. Das heißt wiederum das wenn durch crotab das Programm zum Relais öffnen ausgeführt wird, der wert Relais öffnen direkt wieder zu Relais schließen geändert wird. Ich habe auch versucht die beiden Programme in ein Programm zu verarbeiten aber das hat auch nicht funktioniert.
    Jetzt ist meine Frage. Gibt es eine Möglichkeit mein Plan umzusetzen?
    Mir kommt es generell so vor als wär Python sehr eingeschränkt. Gibt es eine Möglichkeit mein Plan mit C umzusetzen und würdet ihr mir vielleicht empfehlen von Python auf C zu wechseln?

    Ich habe noch eine Frage. Gibt es ein gutes IDE für den Raspberry Pi (Python oder C) das mir Fehler immer gleich anzeigt so was ähnliches wie eclipse.

    Vielen Dank :danke_ATDE: :danke_ATDE: :danke_ATDE:
    Lynix

    Hallo,
    ich habe eine 7 Segment-Anzeige und will mal dahinter kommen wie sie funktioniert.
    ich habe folgenden code:


    könntet ihr mir erklären was in def hc595_shift(dat) und def loop() passiert? Woher weis ich welchen code (z.b. 0x80) eine zahl hatt?
    Vielen Dank :danke_ATDE: :danke_ATDE: :danke_ATDE:
    Lynix

    Hallo,
    Ich habe mal wieder ein Problem. Ich möchte das das releais so lange geöffnet bleibt wie ich es im Gui im textfeld eingebe aber das funktioniert nicht. Ich habe schon gehört das das was mit einem string zu tun hat habe aber keine lösungsvorschläge gefunden.
    Vielen Dank für eure Antworten :danke_ATDE:

    Hallo,
    Ich habe 2 Programme zum bewässern. Hier das erste
    [code]#!/usr/bin/python
    import time
    import RPi.GPIO as GPIO
    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(11, GPIO.OUT)

    GPIO.output(11, GPIO.LOW)
    time.sleep(5)
    GPIO.output(11, GPIO.HIGH)

    GPIO.setup(11, GPIO.IN)


    Dieses programm wird per crontab jeden Tag einmal ausgeführt. Ich will aber das man auch per knopf das releais schalten kann deshalb habe ich das programm geschrieben:
    [code]import RPi.GPIO as GPIO
    import time

    GPIO.setmode(GPIO.BOARD)
    GPIO.setwarnings(False)
    GPIO.setup(11, GPIO.OUT)
    GPIO.output(11, GPIO.LOW)
    GPIO.setup(16, GPIO.IN, pull_up_down=GPIO.PUD_UP)

    while True:
    GPIO.output(11, GPIO.HIGH)
    input_state = GPIO.input(16)
    if input_state == False:
    GPIO.output(11, GPIO.LOW)


    Wenn aber das knopfprogramm läuft funktioniert das andere programm nicht da ja durch die schleife die ganze zeit GPIO.output(11, GPIO.HIGH) gespamt wird. Habt ihr irgentwelche lösungsvorschläge?
    vielen Dank für eure Antworten. :danke_ATDE: