Raspberry Pi Internetradio - Endlosschleife

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
jwow
User
Beiträge: 1
Registriert: Donnerstag 8. Oktober 2015, 17:44

Hi,
Ich bastle seit einigen Tagen an einem Internetradio auf meinem Raspi.
Das Prinzip ist folgendes:
Wenn ich klatsche soll sich das Radio einschalten und entsprechend wieder ausschalten.
Die Steuerung der einzelnen Radiostationen soll nur bei Bedarf erfolgen, wofür ich mit html eine kleine Seite geschrieben habe, die auch funktioniert.

Jetzt mein Problem:
Ich habe wenig Ahnung vom Programmieren und habe mit meinem Halbwissen ein Python Script geschrieben. Das funktioniert grundlegend auch, allerdings bekomme ich entweder eine Endlosschleife, die mir den Radiosender immer wieder neu lädt (und ich weiß nicht wieso). Oder es läuft ganz normal wenn ich mit einem break die Schleife durchbreche. Dann lässt sich das Radio allerdings nicht mehr ausschalten.

Ich hoffe also, dass mit jemand helfen und ich mein Projekt beenden kann.

Danke!

Der Code sieht folgendermaßen aus:

Code: Alles auswählen

#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import os
import sys
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO_PIN = 4
print "-->Sound Module Test (CTRL-C to EXIT)"

GPIO.setup(GPIO_PIN, GPIO.IN)

Current_State = 0
Previous_State = 0

def radio_on():
	print "-->Sound Detected!"
	os.system("mpc play 1")
	Previous_State = 1
	Current_State = 0
	time.sleep(5)
	return

def radio_off():
	print "-->Sound Detected!"
	os.system("mpc stop")
	Previous_State = 0
	Current_State = 0
	time.sleep(5)
	return

try:
	print " Clap to start the Radio!"
	while GPIO.input(GPIO_PIN) == 1:
		Current_State = 0
	
	while True:
		Current_State = GPIO.input(GPIO_PIN)

		if Current_State == 1 and Previous_State == 0:
			radio_on()
			
		elif Current_State == 1 and Previous_State ==1:
			radio_off()
			
		else:
			print "-->ERROR!"
			os.system("mpc stop")
		
except KeyboardInterrupt:
	print " Quit"
	GPIO.cleanup()
Antworten