26 ΜΙΚΡΑ ΒΙΤS

έρευνα, τεχνολογία, υδατικό, τυπογραφία, κοινωνία και λοιπά… του Δημήτρη Ηλιάδη

Python και Bluetooth 11/7/2008

Κατηγορίες: Προγραμματισμός — Δημήτριος Ηλιάδης @ 5:19 μμ
Tags: ,

Τις τελευταίες ημέρες προσπάθησα να καταλάβω πώς μπορώ να χρησιμοποιήσω την υποδομή του Bluetooth για να επικοινωνήσει το κινητό μου με τον υπολογιστή μου. Ενώ έψαχνα διάφορες λύσεις ανοικτού κώδικα, τελικά κατέληξα στην Python (η οποία αποτελεί και την αγαπημένη μου γλώσσα προγραμματισμού!)

Με τη χρήση του πακέτου PyBluez, η χρήση του bluetooth γίνεται απλή υπόθεση, με την απλή εντολή

import bluetooth

Αμέσως μετά, αρκεί η εντολή

nearby_devices = bluetooth.discover_devices()

για να ψάξει και να βρει όλες τις συσκευές στην περιοχή.

Τί άλλο να θέλει κανείς;

Για να ενωθείς με κάποιο κινητό, πρέπει να ανοίξει socket,

sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM)

sock.connect((’XX:XX:XX:XX:XX:XΧ’, Υ))

όπου ‘XX:XX:XX:XX:XX:XΧ’ είναι η διεύθυνση του κινητού και Υ η θύρα όπου γίνεται η σειριακή επικοινωνία (για τη δική μου περίπτωση Υ=5, και το βρήκα τρέχοντας τα παραδείγματα του PyBluez).

Αφού γίνει pair (ίσως χρειαστεί να βάλουμε κωδικούς αυθεντικοποίησης), μπορούμε να τρέξουμε ΑΤ Commands.

Για παράδειγμα:

sock.send(’AT+CMGF=1\r’) #ενεργοποίηση του GPRS

sock.send(’AT+CMGS=”+35799…..”\r’) # Παραλήπτης

sock.send(’to minima mou…\n’)

sock.send(chr(26)) #αντιστοιχεί στο CTRL+Z

Μπορούμε ανά πάσα στιγμή να δούμε την απάντηση του κινητού

print sock.recv(1000)

Για να κλείσουμε το socket, απλά γράφουμε

sock.close()

 

Δεν βρήκα τρόπο να ελέγξω το pairing, για να επιλέγω τους κωδικού ανάλογα με τον χρήστη. Έχω την εντύπωση πως αυτό είναι εφικτό στα Linux.

 

Leave a Reply