Ich habe Python-Skript mail.py erstellt, die Code des Sendens von Mail enthalten, wenn Gpio 4 gedrückt wird .. Mein Gpio 4 ist PULLED UP-Schalter, aber das Problem ist, wenn ich direkt Führen Sie das Skript, das es läuft bedeutet, dass es Mail senden, aber wenn ich diesen Schalter drücken, es nicht vor dem Drücken ausgeführt wird, geht es außerhalb der Schleife und Skript läuft nicht, auch E-Mail sendet nicht..ich habe auch Verzögerung dafür gesetzt ..i denke Problem ist, wenn ich den Schalter einmal drücken muss es den Zustand des Schalters speichern, so dass nach 10 Sekunden lesen Sie den Zustand, aber ich kann nicht speichern den Zustand des Schalters .. wenn irgendein Vorschlag PLZ sagen mir..danke im voraus ..Raspberry Pi: E-Mail senden, wenn PULLED UP-Schalter gedrückt wird
Antwort
Ich bin mir nicht sicher, ob ich verstehe, was Sie zu tun versuchen, aber es scheint mir, Sie wollen dieses Skript ausführen, bis die Taste gedrückt wird und dann ein ma senden einmal?
Etwas entlang der Linie von GPIO.wait_for_edge(4, GPIO.FALLING)
ist, was wäre am einfachsten in den Code passen, wie zum Beispiel:
try:
GPIO.wait_for_edge(4, GPIO.FALLING)
# Create email
...
except KeyboardInterrupt:
GPIO.cleanup()
GPIO.cleanup()
Sie können jedoch gedrückt jedes Mal eine E-Mail senden möchten, wird der Button? Wenn ja, ist es noch besser, eine Callback-Funktion mit GPIO.add_event_detect zu verwenden. In diesem Fall ist dies besser geeignet:
# Create and send mail
def send_mail():
...
# add rising edge detection on a channel, ignoring further edges
# for 200ms for switch bounce handling
GPIO.add_event_detect(channel, GPIO.FALLING, callback = send_mail, bouncetime = 200)
Weitere Einzelheiten zu RPi.GPIO Eingang finden Sie unter: https://sourceforge.net/p/raspberry-gpio-python/wiki/Inputs/
Sie den Hörer in einer Schleife schreiben können und auch die E-Mail-Funktionalität als Funktion
wie
GPIO.setup (23, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.setup (24, GPIO.IN, pull_up_down = GPIO. PUD_UP)
während True:
if (GPIO.input (23) == 1):
Taste # gedrückt dann cal die mail() Funktion
#after excutting die Funktion, wenn wenn die Pinpoint zurück auf 0
(GPIO.input (24) == 0) müssen Sie wieder einstellen:
print („Taste 2 gedrückt“)
GPIO.cleanup()
versuchen, das Beispiel
danke sehr viel ... das ist Arbeit für mich –
Hey lassen Sie mich wissen, warum Sie die Antwort abstimmen? es funktioniert nicht für dich? –
- 1. Raspberry Pi Python eine Schleife Sequenz anhalten, wenn Taste gedrückt
- 2. Senden serielle Kommunikation von Raspberry Pi
- 3. Raspberry Pi Embedded-Anwendung
- 4. SSH in Raspberry Pi
- 5. Raspberry Pi Programm Verzögerung
- 6. Raspberry PI MailCheck Fehler
- 7. Raspberry Pi: senden nur zuletzt aufgenommenes Bild mit Webcam
- 8. Raspberry Pi Sense Hut
- 9. Raspberry Pi - PSUtil Installationsfehler
- 10. Control Raspberry Pi mit einem anderen Raspberry Pi remote
- 11. Raspberry Pi mit Kinect
- 12. Raspberry Pi Wifi Dongle
- 13. Tensorflow auf Raspberry Pi
- 14. Raspberry Pi Modbus auf Rj45
- 15. Himbeer-Pi - Sensordetails mit Raspberry Pi?
- 16. Raspberry Pi sendet dieselben Daten?
- 17. Cross-Compiling für RaspBerry Pi
- 18. Kinect 2.0 auf Raspberry Pi
- 19. Java + Raspberry Pi + SQlite = NoClassDefFoundError
- 20. Raspberry Pi Kamera verschiedenen Weißabgleich
- 21. JavaFx Ensemble auf Raspberry Pi
- 22. Senden eines Befehls an Raspberry PI mit einer Android-App
- 23. Raspberry-pi - DHT11 + Relais-Trigger
- 24. Raspberry Pi-Anbieter für Vagrant?
- 25. Raspberry Pi 3 BLE Scan
- 26. Raspberry Pi NoIR Kamera hängt
- 27. Start Raspberry Pi ohne Login
- 28. Codeänderungen - Python - Piphone - Raspberry Pi
- 29. Xdotool schlägt auf Raspberry Pi
- 30. Raspberry Pi Arduino Bibliotheken Ordner
u danken, aber dies ist für mich nicht ... plz geben Sie mir eine andere Lösung ... mein Schalter ist bydefult 1, wenn ich es in 0 drücken geht State ... Also, was ist die Lösung, um den Staat zu retten ... können Sie mir ein vollständiges Beispiel geben, was ich genau in den Code schreiben muss. –
Anhand meines Beispiels und des darin enthaltenen Links sollten Sie in der Lage sein, eine passende Lösung für Ihren speziellen Bedarf zu finden. Wenn Sie den Status speichern möchten, können Sie die Eingabe verfolgen, indem Sie auf RISING- und FALLING-Ereignisse hören. – Elijan9
danke..ich bezog mich auf diesen Link..und ich verstehe, was Sie gesagt haben ..aber das ist nicht mein Problem..in meinem Fall, sobald Schalter gedrückt wird, wird es freizugeben. Ich drücke nicht kontinuierlich so nach einiger Zeit, wenn es wird es verstehen verstanden, dass Schalter nicht sogar einzelnes Mal gedrückt wird. So muss ich Zustand des Schalters rechts speichern, nachdem ich den Schalter so von diesem gespeicherten Staat gedrückt habe, ich sollte in der Lage sein, Post so einfach zu senden ist das, der freigegebene Schalter doesn ' t muss auf den Zustand des gedrückten Schalters einwirken. –