Ausgehend von der vorherigen Zeit werden wir uns der Herausforderung stellen, Bluetooth-gesteuerte LED-Lampen von einem Mikrocomputer aus zu steuern. Dieses Mal werde ich versuchen, über die Programmiersprache (Python) zu steuern.
In diesem Artikel werden wir am 2. Schritt arbeiten.
Es wird davon ausgegangen, dass die Einstellungen des Mikrocomputers (Intel Edison), die Verbindung mit der Bluetooth-gesteuerten LED-Lampe (PLAYBULB) und die Steuerung der Lampe mit gatttools abgeschlossen sind (vorherige). / items / 7d6afca7b81ea46f9474)). In diesem Artikel werden wir es ermöglichen, das zu tun, was wir mit gatttools (Gerätesteuerung über das Bluetooth LE GATT-Protokoll) in einer Programmiersprache gemacht haben. Ich habe Python als Sprache verwendet, weil "die Umgebung und die Informationen zu Edison erheblich sind". Ich denke, dass andere Sprachen verwendet werden können, solange es sich um eine Programmiersprache handelt, die das GATT steuern kann.
Ich habe eigenständiges Python (3.5.3) und Pip von der Quelle installiert (aus einem anderen Grund als diesem). Für die Methode habe ich auf [offizielle Intel-Website] verwiesen (https://software.intel.com/en-us/blogs/2017/02/07/installing-python-36-on-your-intel-edison). ..
Es gibt verschiedene Möglichkeiten, die GATT-Funktionalität über Python zu verwenden. Dieses Mal habe ich [Bluepy] verwendet (https://github.com/IanHarvey/bluepy).
--Pexpect (Edison Official Page -edison) hat einen Artikel)
$ pip3 install bluepy
Jetzt, da wir bereit sind, werden wir mit der Implementierung beginnen. Hier erstellen wir ein Programm, das die Farbe alle 3 Sekunden wiederholt ändert.
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)
Es gibt verschiedene Möglichkeiten, um das Merkmal zu erhalten (ich verstehe es in Form eines "Objekts, das eine bestimmte Funktion steuert"), aber ich habe die Methode gewählt, alle Merkmale abzurufen und dann die Ziehpunkte abzugleichen. Informationen zu Handles und Steuerbefehlen finden Sie in der Tabelle im Artikel Letztes Mal.
Wenn das Programm abgeschlossen ist, versuchen Sie es mit dem folgenden Befehl auszuführen
$ python3 light_controll.py
Hat sich die Farbe der LED-Lampe alle 3 Sekunden geändert?
Ich konnte die LED-Lampe (PLAYBULB) mit meinem eigenen Programm (Python) und meiner eigenen Bibliothek (Bluepy) steuern. Als Anwendung
Usw. realisiert werden kann. Es kann mit einem kleinen Intel Edison im Wohnzimmer installiert und als Informationsleuchte für Familien verwendet werden. Wenn Sie wissen, dass es eine so interessante Anwendung gibt, lassen Sie es mich bitte wissen.
Ich habe zweimal versucht, die Lampenfunktion der LED-Lampe zu verwenden, aber beim nächsten Mal möchte ich eine andere Lautsprecherfunktion verwenden.
Recommended Posts