[PYTHON] Contrôle des ampoules LED à partir d'un micro-ordinateur (Intel Edison) (2)

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).

Chose que tu veux faire

slide.png

Dans cet article, nous allons travailler sur la 2ème étape.

environnement

Procédure de contrôle

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.

[1] Installation de Python et Pip (facultatif)

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 ..

[2] Installation de BluePy

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

[3] Mise en œuvre et exécution de programmes qui traitent du GATT

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?

Résumé

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

Contrôlez les ampoules LED depuis un micro-ordinateur (Intel Edison) (1)
Contrôle des ampoules LED à partir d'un micro-ordinateur (Intel Edison) (2)
Contrôlez le panneau LED Matrix depuis ROS
Réception de la télécommande infrarouge avec Intel Edison
Démarrage Intel Edison
Envoyer la valeur du capteur d'accélération d'Eaglet + Intel Edison à Kinesis