31/03/2020, 13:54
Ciao,
sono un neofita e sto cercando di far comunicare un raspberry 3b con un applicazione android su smartphone che avevo fatto tempo fa per Arduino per controllare la GPIO.
Andiamo per gradi:
Ad oggi l'unica app android che sono riuscito a far funzionare è BlueTerm con il codice che poi posterò di seguito.
Vorrei far funzionare l'app "Serial bluetoth Terminal" (se funziona questa, funziona anche quella che ho creato io), che mi permette di inviare una stringa e non un solo carattere.
Attualmente non riesco a collegarmi e ad ogni tentativo la risposta è sempre la stessa :" connection failed: read failed, socket might closed or timeout, read ret: -1"
Cosa manca?
Grazie,
Il codice è il seguente:
sono un neofita e sto cercando di far comunicare un raspberry 3b con un applicazione android su smartphone che avevo fatto tempo fa per Arduino per controllare la GPIO.
Andiamo per gradi:
Ad oggi l'unica app android che sono riuscito a far funzionare è BlueTerm con il codice che poi posterò di seguito.
Vorrei far funzionare l'app "Serial bluetoth Terminal" (se funziona questa, funziona anche quella che ho creato io), che mi permette di inviare una stringa e non un solo carattere.
Attualmente non riesco a collegarmi e ad ogni tentativo la risposta è sempre la stessa :" connection failed: read failed, socket might closed or timeout, read ret: -1"
Cosa manca?
Grazie,
Il codice è il seguente:
Codice:
import bluetooth
import RPi.GPIO as GPIO #calling for header file which helps in using GPIOs of PI
LED=21
GPIO.setmode(GPIO.BCM) #programming the GPIO by BCM pin numbers. (like PIN40 as GPIO21)
GPIO.setwarnings(False)
GPIO.setup(LED,GPIO.OUT) #initialize GPIO21 (LED) as an output Pin
GPIO.output(LED,0)
server_socket=bluetooth.BluetoothSocket( bluetooth.RFCOMM )
port = 1
server_socket.bind(("",port))
server_socket.listen(1)
client_socket,address = server_socket.accept()
print ("Accepted connection from ",address)
while 1:
data = client_socket.recv(1024)
data2 = data.decode()
invio ="\n"+ "fatto"+"\n"
print ("Received:")
print (data)
print (data2)
if (data2 == "0"): #if '0' is sent from the Android App, turn OFF the LED
print ("GPIO 21 LOW, LED OFF")
GPIO.output(LED,0)
print (invio)
client_socket.send(invio)
if (data2 == "1"): #if '1' is sent from the Android App, turn OFF the LED
print ("GPIO 21 HIGH, LED ON")
GPIO.output(LED,1)
print (invio)
client_socket.send(invio)
if (data2 == "q"):
print ("Quit")
break
client_socket.close()
server_socket.close()