Étape 9: Écrire des données de BLE par programme en Python (framboise Pi)
Dans cette dernière étape, nous allons écrire un script en Python pour utiliser le programme gatttool par programme. Cela signifie que nous allons structurer notre script d’une manière qui nous permettra d’utiliser gatttool sans avoir à entrer à plusieurs reprises des commandes dans le terminal.
Le script est assez simple et peut être étendu en vous permet d’afficher des animations différentes de la LED RGB. Avec le RFduino alimenté et exécutant le même firmware que dans l’étape précédente, nous allons à notre Pi framboise et ouvrir un éditeur de texte (par exemple, Leafpad).
Nous allons l’utiliser pour créer notre script. Nous commençons par entrer dans un couple des définitions de fonction :
MAC = "DC:E2:F4:0B:3A:03"
CHAR = 0X0011
initialize() def :
Commands.GetOutput ('hciconfig hci0 vers le bas")
Commands.GetOutput '(hciconfig hci0 de place')
impression commands.getoutput ('hciconfig-a')
Commands.GetOutput ('killall hcitool')
La fonction initialize() s’occupe de la configuration de l’interface BLE. Bien que nous l’avons fait déjà dans une étape précédente, il n’est pas mauvais pour qu'elle soit disponible. Cette fonction affichera la sortie de la commande hciconfig pour le Terminal Windowwhere le script est exécuté.
def sendColor(c) :
commande = « gatttool de sudo -t aléatoire -b {0}--char-écriture-req {1}-a-n {2} » .format (MAC, CHAR, c)
p = sous-processus. Popen(Command.Split(), coquille = False)
impression p.communicate() [0]
La fonction sendColor prend une chaîne de 3 octets et l’envoie à l’appareil avec l’adresse mac MAC à la poignée caractéristique CHAR. Vous aurez besoin de remplacer ces valeurs par vos propres valeurs au début du script.
Si __name__ == « __main__ » :
Initialize()
sendColor('FF0000')
Time.Sleep(1)
sendColor('00FF00')
Time.Sleep(1)
sendColor('0000FF')
Time.Sleep(1)
sendColor('000000')
Enfin, lorsque le script est exécuté il s’exécutera la fonction initialize() une fois et puis définissez la couleur à plein-éclat rouge, attendre 1 seconde, plein-éclat vert, attendre 1 seconde, plein-éclat bleu, attendre 1 seconde et ensuite envoyer une "sans couleur" (OFF) commande. Si tout est en place, le RFduino devrait montrer le comportement suivant :