Dans la continuité de précédent, nous allons contester le contrôle des ampoules LED contrôlées par Bluetooth à partir d'un micro-ordinateur. Cette fois, je vais essayer de contrôler à partir du langage du programme (Python).
Dans cet article, nous allons travailler sur la 2ème étape.
On suppose que les réglages du micro-ordinateur (Intel Edison), la connexion avec l'ampoule LED contrôlée par Bluetooth (PLAYBULB) et le contrôle de l'ampoule à l'aide de gatttools sont terminés (précédent. / items / 7d6afca7b81ea46f9474)). Dans cet article, nous allons permettre de faire ce que nous avons fait avec gatttools (contrôle des appareils via le protocole Bluetooth LE GATT) dans un langage de programmation. J'ai utilisé Python comme langage parce que "l'environnement et les informations sur Edison sont substantiels". Je pense que d'autres langages peuvent être utilisés tant que c'est un langage de programmation qui peut contrôler le GATT.
J'ai installé Python autonome (3.5.3) et Pip à partir des sources (pour une raison différente de celle-ci). Pour la méthode, je me suis référé au site Web officiel d'Intel ..
Il existe plusieurs façons d'utiliser la fonctionnalité GATT via Python. Cette fois, j'ai utilisé Bluepy.
--Pexpect ([Page officielle d'Edison](https://software.intel.com/en-us/articles/using-the-generic-attribute-profile-gatt-in-bluetooth-low-energy-with-your-intel] -edison) a un article)
$ pip3 install bluepy
Maintenant que nous sommes prêts, nous allons commencer à mettre en œuvre. Ici, créons un programme qui change à plusieurs reprises la couleur toutes les 3 secondes.
light_control.py
# -*- coding: utf-8 -*-
from bluepy import btle
from bluepy.btle import BTLEException
import time
LIGHT_MAC_ADDR="DB:22:4B:13:AC:E6"
if __name__ == '__main__':
# connect to device
tPeripheral = btle.Peripheral(deviceAddr=LIGHT_MAC_ADDR)
# find characteristic
tCharList = tPeripheral.getCharacteristics()
tChar = next(tChar for tChar in tCharList if tChar.getHandle()==0x001b)
while (True):
tChar.write(bytes([0, 255, 0, 0])) # red
time.sleep(3)
tChar.write(bytes([0, 0, 255, 0])) # green
time.sleep(3)
tChar.write(bytes([0, 0, 0, 255])) # blue
time.sleep(3)
Il y a plusieurs façons d'obtenir la caractéristique (je la comprends sous la forme «d'un objet qui contrôle une certaine fonction»), mais j'ai pris la méthode pour obtenir toutes les caractéristiques et ensuite faire correspondre les poignées. Pour les poignées et commandes de contrôle, reportez-vous au tableau publié dans l'article Dernière fois.
Lorsque le programme est terminé, essayez de l'exécuter avec la commande suivante
$ python3 light_controll.py
La couleur de l'ampoule LED a-t-elle changé toutes les 3 secondes?
J'ai pu contrôler l'ampoule LED (PLAYBULB) en utilisant mon propre programme (Python) et bibliothèque (bluepy). Comme application
Etc. peut être réalisé. Il peut être installé dans le salon avec un petit Intel Edison et utilisé comme lampe d'information pour les familles. Si vous savez qu'il existe une application aussi intéressante, faites-le moi savoir.
J'ai essayé deux fois d'utiliser la fonction ampoule de l'ampoule LED, mais la prochaine fois, j'aimerais utiliser une autre fonction haut-parleur.
Recommended Posts