[PYTHON] Steuern Sie LED-Lampen von einem Mikrocomputer (Intel Edison) (1)

Einige LED-Lampen auf dem Markt können Farben ändern und über Bluetooth Geräusche machen. Normalerweise wird es über die angeschlossene Smartphone-Anwendung gesteuert, aber ich habe die Steuerung über den Mikrocomputer (Intel Edison) angefochten.

An erster Stelle

Ende letzten Jahres nahm ich am IT-Entwicklungswettbewerb Mashup Awards teil. Dieses Mal, als ich zum zweiten Mal teilnahm, habe ich ein IoT-Toilettensystem mit KI (Chatbot) und Sensoren erstellt und beantragt (In Verbindung stehender Artikel. ). Eine der Funktionen des Systems ist eine "Beobachtungs" -Funktion. Wenn die Toilette zu lang ist, fragt der Bot "Ist es in Ordnung?". Wenn der Deckel offen bleibt, "Wird er nicht leer gelassen?" Ich werde dich drängen.

Um diese Sprachführungsfunktion zu realisieren, verwendeten wir eine LED-Lampe mit Lautsprecherfunktion anstelle eines Bluetooth-Lautsprechers mit einer einzigen Funktion, sagten jedoch, dass "die Stromversorgung einfacher zu handhaben ist" und "sie an der Decke der Toilette installiert werden kann und der Schall leicht durchgelassen werden kann". Zusätzlich zu den Vorzügen konnte ich es auf interessante Weise verwenden, z. B. "Ändern der Farbe entsprechend der gesprochenen Sprache (Beispiel: Gelb, wenn Aufmerksamkeit erregt wird)".

Philips Hue steht bei steuerbaren LED-Glühbirnen an vorderster Front. Bei Hue, das nur Licht steuern kann, sind LED-Glühbirnen mit Bluetooth-Verbindung, die sowohl Ton als auch Licht steuern können, möglicherweise interessanter als Kunst. Ich dachte, also beschloss ich, die Kontrollmethode hier zusammenzufassen.

Was du machen willst

slide.png

In diesem Artikel schreiben wir zuerst den ersten Schritt und in den folgenden Artikeln den zweiten Schritt.

Umgebung

DSC_0203.JPG

Ich habe Mi Pow PLAYBULB als LED-Lampe verwendet (der Modellname BT100 ist auf dem Hauptgehäuse aufgedruckt). Eigentlich habe ich mehrere andere Modelle von Bluetooth-gesteuerten LED-Lampen ausprobiert, aber ich konnte das Kommunikationsprotokoll nicht analysieren und nicht steuern.

Als Mikrocomputer habe ich Intel Edison verwendet, das mit einem USB-Akku betrieben werden kann und einfach zu handhaben ist. Ich habe es nicht ausprobiert, aber ich denke, dass die gleiche Steuerung mit Raspberry Pi 3 und PC erreicht werden kann.

Verfahren zur Kontrolle

[1] Bluetooth-Vorbereitung auf der Seite des Mikrocomputers (Edison)

Es wird davon ausgegangen, dass das WLAN von Intel Edison bereits eingerichtet wurde (wenn Sie möchten, können Sie auch [hier] einstellen (http://qiita.com/hishi/items/47e15c7f1b398357a8e2)). Die Firmware-Version lautet wie folgt.

root@edison:~# uname -a
Linux edison 3.10.98-poky-edison+ #1 SMP PREEMPT Mon Jun 6 14:32:08 PDT 2016 i686 GNU/Linux

Aktivieren Sie gleichzeitig Bluetooth. Wenn Sie Edison neu starten, wird es wieder deaktiviert Ich habe festgelegt, dass es beim Start automatisch aktiviert wird, indem ich auf [this] verweise (http://rwx.io/blog/2015/02/18/seting-up-an-edison/).

root@edison:~# rfkill unblock bluetooth
root@edison:~# rfkill list
...
2: bcm43xx Bluetooth: bluetooth
        Soft blocked: no
        Hard blocked: no

[2] Überprüfen Sie den Anschluss der LED-Lampe (PLAYBULB)

Es wird davon ausgegangen, dass die LED-Glühbirne in die Fassung eingesetzt ist und die Farbe über die PLAYBULB-Steuerungs-App für Smartphones geändert werden kann. Überprüfen Sie zunächst, ob Sie PLAYBULB auf der Intel Edison-Konsole sehen können.

root@edison:~# bluetoothctl 
[NEW] Controller 98:4F:EE:04:28:48 edison [default]
[bluetooth]# scan on
Discovery started
[CHG] Controller 98:4F:EE:04:28:48 Discovering: yes
[NEW] Device DB:22:4B:13:AC:E6 PLAYBULB COLOUR LED    <--LED-Lampenfunktion
[NEW] Device AC:E6:4B:13:E4:9F PLAYBULB COLOUR        <--Lautsprecherfunktion

Da PLAYBULB zwei Funktionen hat, eine LED-Lampe und einen Lautsprecher, können Sie zwei als Gerät überprüfen. Notieren Sie sich die Adresse auf der Seite der LED-Lampe.

[3] Installation von Gattools

Installieren Sie als Nächstes die für die Steuerung erforderlichen Tools (gatttools) unter Intel Edison.

Bluetooth verfügt über Profile für verschiedene Geräte (HID-Profil für Maus und Tastatur, A2DP-Profil für Sprache usw.), PLAYBULB verfügt jedoch über das generische Attributprofil (GATT), das das Standardprofil für Bluetooth LE ist. ) Wird zur Steuerung verwendet. [Erklärender Artikel zur Verwendung von Gatttools unter Intel Edison](https://software.intel.com/en-us/articles/using-the-generic-attribute-profile-gatt-in-bluetooth-low-energy-with- your-intel-edison) befindet sich auf der offiziellen Website, daher gibt es kein Problem mit dieser Straße. Als Referenz werde ich den vorliegenden Befehl veröffentlichen.

root@edison: wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.43.tar.xz
root@edison: tar -xf bluez-5.43.tar.xz
root@edison: cd bluez-5.43
root@edison: ./configure --prefix=/usr/local --disable-systemd -disable-udev
root@edison: make
root@edison: make install
root@edison: cp ./attrib/gatttool /usr/local/bin
root@edison: export PATH=$PATH:/usr/local/bin
root@edison: gatttool 
Usage:
  gatttool [OPTION...]
...

Ich werde es in Zukunft häufig verwenden, also habe ich es nach / usr / local / bin kopiert und in den Pfad eingefügt.

[4] Versuche zu kontrollieren

Informationen zur Gerätesteuerung mit Bluetooth LE GATT-Profil

Ich betrachte es als ein Bild. Lassen Sie uns zunächst die Farbe der Glühbirne ändern. Geben Sie nach "gatttool -b" die Adresse auf der Seite der LED-Lampe an, die zuvor mit "bluetoothctl" überprüft wurde.

root@edison:~# gatttool -b DB:22:4B:13:AC:E6 -I
[DB:22:4B:13:AC:E6][LE]> connect
Attempting to connect to DB:22:4B:13:AC:E6
Connection successful
[DB:22:4B:13:AC:E6][LE]> char-write-cmd 0x001b 00ff0000  <--rot
[DB:22:4B:13:AC:E6][LE]> char-write-cmd 0x001b 0000ff00  <--Grün
[DB:22:4B:13:AC:E6][LE]> char-write-cmd 0x001b 000000ff  <--Blau
...

DSC_0036.png

Hat sich die Farbe geändert? Oben wird die Steuerung ausgeführt, indem 4 Datenbytes in das Handle (0x001b) geschrieben werden, das die Farbe steuert. Sie können jedoch auch Blinkmuster usw. angeben. Die Entsprechungstabelle ist unten dargestellt.

Beleuchtungsmodus (0x001b)

Byte Effect
0 Weißwert
1 Rote Ebene
2 Grünes Niveau
3 Blaue Ebene

Blink- / Fading-Modus (0x0019)

Byte Effect
0 Reserve?
1 Rotwert (einfarbig)
2 Grünwert (einfarbig)
3 Blaustufe (einfarbig)
4 0x00 :Einfarbiges Blinken
0x01 :Monochromatische Überblendung
0x02 :Regenbogen blinkt
0x03 :Regenbogen verblassen
5 Reserve?
6 Effektgeschwindigkeit(0x00 am schnellsten)
7 Reserve?

** Achtung **: Diese Korrespondenztabelle wird nicht offiziell verteilt, sondern durch unabhängige Analyse berechnet. Sie kann daher falsch sein oder sich je nach Modell ändern. Darüber hinaus besteht die Möglichkeit, das Produkt durch Einstellen von Parametern zu beschädigen, die nicht vom Hersteller vorgesehen sind. Bitte tun Sie dies auf eigenes Risiko.

Zusammenfassung

Die LED-Lampe (PLAYBULB) kann jetzt vom Mikrocomputer (Intel Edison) aus gesteuert werden, indem ein Steuerbefehl gemäß dem Bluetooth LE GATT-Profil gesendet wird.

Die obige Methode kann jedoch nicht angewendet werden, da Befehle zur Steuerung ausgegeben werden müssen. Als nächstes werden wir die Steuerung mit der Programmiersprache (Python) herausfordern.

Recommended Posts

Steuern Sie LED-Lampen von einem Mikrocomputer (Intel Edison) (1)
Steuern Sie LED-Lampen von einem Mikrocomputer (Intel Edison) (2)
Steuern Sie das Matrix-LED-Panel von ROS aus
Infrarot-Fernbedienungsempfang mit Intel Edison
Start Intel Edison
Senden Sie den Wert des Beschleunigungssensors von Eaglet + Intel Edison an Kinesis