Я работаю над тем, чтобы помочь кому-нибудь отладить код для проекта Raspberry Pi, где он может управлять сценарием через соединение Bluetooth, связанное с их телефоном.При запуске я получаю сообщение об ошибке server_socket.bind((bind_ip,port))
с ошибкой OSError: An attempt was made to access a socket in a way forbidden by its access permissions.
. Я ищу либо ответ о том, как решить проблему, либо альтернативу для той же цели.Полный код здесь:
import bluetooth
import RPi.GPIO as GPIO #calling for header file which helps in using GPIOs of PI
GPIO.setmode(GPIO.BCM)
LED=26
servoPin=8
GPIO.setup(servoPin, GPIO.OUT)
pwm=GPIO.PWM(servoPin, 50)
pwm.start(0)
GPIO.setwarnings(False)
GPIO.setup(LED,GPIO.OUT) #initialize GPIO21 (LED) as an output Pin
GPIO.output(LED,1)
print ("init GPIO")
server_socket=bluetooth.BluetoothSocket( bluetooth.RFCOMM )
print ("init socket")
port = 1
server_socket.bind(("",port))
server_socket.listen(1)
print ("server_socket.bind")
client_socket,address = server_socket.accept()
print "Accepted connection from ",address
while 1:
data = client_socket.recv(1024)
print "Received: %s" % data
if (data == "1"): #if '0' is sent from the Android App, turn OFF the LED
print ("GPIO 26 LOW, LED OFF")
GPIO.output(LED,0)
QR=1./18.*(5)+2
pwm.ChangeDutyCycle(QR)
if (data == "0"): #if '1' is sent from the Android App, turn OFF the LED
print ("GPIO 26 HIGH, LED ON")
GPIO.output(LED,1)
DC=1./18.*(45)+2
pwm.ChangeDutyCycle(DC)
if (data == "5"):
print ("CLOSE")
QR=1./18.*(5)+2
pwm.ChangeDutyCycle(QR)
if(data=="45"):
print ("OPEN")
DC=1./18.*(45)+2
pwm.ChangeDutyCycle(DC)
# break
client_socket.close()
server_socket.close()