IoT

BeagleBone BlackのDockerコンテナからSensorTagにアクセス

BeagleBone Black でもDockerが使えるか試してみました。

IoT用のnonGUIなDebian 9.2を使います。

https://beagleboard.org/latest-images
Stretch IoT (non-GUI) for BeagleBone and PocketBeagle via microSD card

Dockerのインストールはラズパイと同じ方法で問題ありませんでした。

1
2
$ curl -sSL https://get.docker.com/ | sh
$ sudo usermod -aG docker debian

問題なくインストールできました。

Dockerのバージョンは17.10.0-ceです。

1
2
$ docker --version
Docker version 17.10.0-ce, build f4ffd25

Dockerイメージはこちらを利用しました。

https://hub.docker.com/r/resin/beaglebone-black-debian/

とりあえずlatestで起動。

1
$ docker run -ti resin/beaglebone-black-debian:latest /bin/bash

Debianのバージョンを確認してみると、8 (jessie)でした。

1
2
3
4
5
6
7
8
9
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

とりあえず問題なく使えそうですので、ここからは、
「ラズパイのDockerコンテナからSensorTagにアクセス」
と同じことをやってみようと思います。

タグは9 (stretch)を指定して、--net hostを付けて起動します。

1
2
3
4
5
6
7
8
9
10
$ docker run -it --net host resin/beaglebone-black-debian:stretch /bin/bash
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

bluezをインストール

1
2
# apt-get update
# apt-get install bluez

BLEデバイスのスキャン。

1
2
3
4
5
6
7
8
9
# hcitool lescan
LE Scan ...
B0:B4:48:XX:XX:XX (unknown)
B0:B4:48:XX:XX:XX CC2650 SensorTag
B0:B4:48:XX:XX:XX (unknown)
B0:B4:48:XX:XX:XX CC2650 SensorTag
B0:B4:48:XX:XX:XX (unknown)
B0:B4:48:XX:XX:XX CC2650 SensorTag
:

スキャン成功。

次は接続してみます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# gatttool -b B0:B4:48:XX:XX:XX --interactive
[B0:B4:48:XX:XX:XX][LE]> connect
Attempting to connect to B0:B4:48:XX:XX:XX
Connection successful
[B0:B4:48:XX:XX:XX][LE]> primary
attr handle: 0x0001, end grp handle: 0x0007 uuid: 00001800-0000-1000-8000-00805f9b34fb
attr handle: 0x0008, end grp handle: 0x0008 uuid: 00001801-0000-1000-8000-00805f9b34fb
attr handle: 0x0009, end grp handle: 0x001b uuid: 0000180a-0000-1000-8000-00805f9b34fb
attr handle: 0x001c, end grp handle: 0x0021 uuid: 0000180f-0000-1000-8000-00805f9b34fb
attr handle: 0x0022, end grp handle: 0x0029 uuid: f000aa00-0451-4000-b000-000000000000
attr handle: 0x002a, end grp handle: 0x0031 uuid: f000aa20-0451-4000-b000-000000000000
attr handle: 0x0032, end grp handle: 0x0039 uuid: f000aa40-0451-4000-b000-000000000000
attr handle: 0x003a, end grp handle: 0x0041 uuid: f000aa80-0451-4000-b000-000000000000
attr handle: 0x0042, end grp handle: 0x0049 uuid: f000aa70-0451-4000-b000-000000000000
attr handle: 0x004a, end grp handle: 0x004e uuid: 0000ffe0-0000-1000-8000-00805f9b34fb
attr handle: 0x004f, end grp handle: 0x0053 uuid: f000aa64-0451-4000-b000-000000000000
attr handle: 0x0054, end grp handle: 0x005a uuid: f000ac00-0451-4000-b000-000000000000
attr handle: 0x005b, end grp handle: 0x0062 uuid: f000ccc0-0451-4000-b000-000000000000
attr handle: 0x0063, end grp handle: 0xffff uuid: f000ffc0-0451-4000-b000-000000000000
[B0:B4:48:XX:XX:XX][LE]> characteristics 0x001c 0x0021
handle: 0x001d, char properties: 0x12, char value handle: 0x001e, uuid: 00002a19-0000-1000-8000-00805f9b34fb
[B0:B4:48:XX:XX:XX][LE]> char-read-hnd 0x001e
Characteristic value/descriptor: 64
[B0:B4:48:XX:XX:XX][LE]>

問題なくBLE通信ができました。

BeagleBone Black でも簡単にDockerが使えるようです。