「RAD Studio 10.1 Berlinで始めるIoTアプリケーション構築」
第32回 エンバカデロ・デベロッパーキャンプ

エンバカデロ・テクノロジーズ
セールス コンサルタント 井之上 和弘

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

アジェンダ RAD Studio 10.1 BerlinでのIoTデバイスサポートについて
 RAD STUDIO で作成したアプリでIoTデバイスのデータを取得する IoTコンポーネントの紹介と、測定可能な値の一覧
 位置測位アプリをBeaconfenceでコード無しに作る
 ビーコンの測距精度に影響を与える⼲渉源について考える本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

2

RAD STUDIO 10.1 BERLINでのIOTデバイスサポートについて本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

3

RAD Studio における IoT デバイスサポートのご紹介 2014/09 RAD Studio XE7• Bluetooth LE サポート(TBluetoothLE)

 2015/09 RAD Studio 10 Seattle• BeaconFenceリリース

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

4

RAD Studio における IoT デバイスサポートのご紹介 2016/04 RAD Stuido 10.1 Berlin• 50を超えるIoTデバイス向けコンポーネント (Bluetooth LE、z-Wave対応) を提供開始

 Bluetooth LE• 基本的な無線要件は Bluetooth 3.0 と同じく2.4GHz帯の周波数。
• 従来のBluetoothよりも消費電⼒が少ないため、バッテリ駆動のウェアラブルやヘルスケア、センサーでの採用が進んでいる z-Wave• 920MHz帯の周波数。WiFiとの⼲渉がなく透過性も強いためにBLEよりも広い範囲をカバーできる。
• 海外ではスマートハウスやホームセキュリティ向けの普及が進んでいる• 日本では2012年に認可された周波数のため、製品やサービスの展開はまだ進んでいない。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

5

IoTコンポーネントのインストール
 IoTコンポーネントはGetITパッケージマネージャーからインストールする本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

6

RAD STUDIO で作成したアプリでIOTデバイスのデータを取得する本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

7

⼼拍計の値を取得するアプリの例

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

8

使用するコンポーネント
 BLEのIoTセンサーから値を読む場合は２種類のコンポーネントを用いる
BluetoothDeviceDiscoveryManager• BluetoothLE デバイスの検出を⾏うコンポーネント

デバイス毎の専用コンポーネント(ここでは GenericHeartRateMonitor を使用)
• センサーが提供する機能（サービス）に適したコンポーネントを選択する

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

9

デザインフォームにコンポーネントを配置する
 BluetoothDeviceDiscoveryManagerとGenericHeartRateMonitorを配置する。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

10

コンポーネントのプロパティを設定する
BluetoothDeviceDiscoveryManagerの”DiscoveryMethod”を目的や用途に合わせて設定する。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

GenericHeartRateMonitorの”DiscoveryManager” に“BluetoothDeviceDiscoveryManager” を設定する。

11

デバイスに接続するためのコードを書く デバイスに接続するには、コードからDiscoverDevices を実⾏する。
DelphiBluetoothDeviceDiscoveryManager1.DiscoverDevices;C++
BluetoothDeviceDiscoveryManager1->DiscoverDevices;

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

12

GenericHeartRateMonitorのイベントに紐づくコードを実装する デバイスへの接続が完了すると OnDeviceConnected のイベントが発生するので、必要な処理を実装する。

procedure TForm1.GenericHeartRateMonitor1DeviceConnected;
begin
Status.Text := 'Connected';
if ServiceComboBox.Items.Count > 0 then
begin
ServiceComboBox.Enabled := True;
PropertyComboBox.Enabled := True;end;
DisconnectButton.Visible := True;end; その他のイベントについても必要な処理を実装する。
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

13

IoTアプリケーションの実装に関するdocwiki上の文書やサンプルコード
 Working with ThingConnect Devices• http://docwiki.embarcadero.com/IoT/en/Working_with_ThingConnect_Devices

 Tutorial: Building a ThingConnect IoT Application• http://docwiki.embarcadero.com/IoT/en/Tutorial:_Building_a_ThingConnect_IoT_Application

 Sample Project• C:¥Users¥Public¥Documents¥Embarcadero¥Studio¥18.0¥Samples¥Internet ofThings¥Object Pascal¥Thing Connect• C:¥Users¥Public¥Documents¥Embarcadero¥Studio¥18.0¥Samples¥Internet ofThings¥CPP¥Thing Connect

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

14

まとめ BLEデバイスのIoTコンポーネントを用いる場合は２つのコンポーネントを使用します。
• BluetoothDeviceDiscoveryManager• 使用するデバイスごとのコンポーネント

 アプリケーションの実装は通常の Delphi/C++ アプリケーションの開発と同じように⾏えます。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

15

IOTコンポーネントの紹介と、測定可能な値の一覧

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

16

IoTコンポーネントの紹介(BLE) 10.1 Berlin で対応のデバイスの種類と対応数
種類

対応デバイス数

汎用コンポーネントの有無

使用サービス

⼼拍計8ありHeart Rate

血圧計

3あり

Blood Pressure

体温計

1あり

Health Thermometer

体重計

5なし

Custom Service

スピード＆ケイデンス(⾃転⾞向け)

10なし※Cycling Speed and Cadence

スピード＆ケイデンス(ランニング向け)

1なし※Running Speed and Cadence

活動量計

1なし

Custom Service

ジェスチャートラッカー

1なし

Custom Service

環境センサー

3なし

Custom Service

BeaconFence1

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

17⼼拍計DeviceRuntastic Heart
Rate Combo
Monitor

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

RS_

RS_

RS_

_S_

_S_

_S_

_S_

R__

R__

R__

R__

0062.5%

R__

70087.5%

R__R__

70087.5%

R__

R__

6

0075.0%R__

50062.5%70087.5%

IEEERegulatory

10012.5%

PnPID
BatteryLevel

20025.0%

R__

75087.5%

RS_

R__RS_

R__

Heart Rate Measurement

HeartRateMeasurement (*0 8)0100.0%_S__S__S__S_

Body Sensor Location

BodySensorLocation

8 00100.0%

R__

R__

R__

R__

Heart Rate Control Point

HeartRateControlPoint (**) 0 01

12.5%__W

Firmware Revision String
Hardware Revision String
Software Revision String
Manufacturer Name
StringIEEE 11073-20601
Regulatory Certification
Data ListPnP ID
Battery Level

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

R__

R__

R__

Wahoo TICKR

5Jarv BT Run
Smart Heart
MonitorR__

Generic Heart
Rate Monitor

R__Coverage
75.0%

Write0Property

HR-Kit Plus

Zephyr Heart
Rate Monitor

R__

AdidasMicoachR__

Polar H7 Heart
Rate Sensor

R__

Subscription

R__

0

Serial Number String

Heart RateR__

6

Model Number String

Battery Service

R__

SystemID
ModelNumber
SerialNumber
FirmwareRevision
HardwareRevision
SoftwareRevision
ManufacturerNam
eCharacteristic

System ID

Device Information

R__

Readable

Service

R__
R__

18

血圧計
device0000000000000
0

33.3%
33.3%
33.3%
33.3%
33.3%
33.3%
33.3%

R__
R__
R__
R__
R__
R__
R__

IEEERegulatory10033.3%

R__

BatteryLevel

20066.7%

R__

R__

Blood Pressure Measurement

BloodPressureMeasurement(*)

030100.0%_S__S__S_

Intermediate Cuff Pressure
Blood Pressure Feature
Date TimeIntermediateCuffPressure(*)
BloodPressureFeature

02110000
133.3%
66.7%
33.3%

_S_
R__

10133.3%

DateTime

Returns
theTAnDBloodPressureCommandSer AnDCustomCommandStatus
vicedata for the custom services.

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

Pyle BloodPressure
Monitor3111111A&D BloodPressureMonitor

SystemID
ModelNumber
SerialNumber
FirmwareRevision
HardwareRevision
SoftwareRevision
ManufacturerName

Property

GenericBlood
Pressure
MonitorCustom Service 1System ID
Model Number String
Serial Number String
Firmware Revision String
Hardware Revision String
Software Revision String
Manufacturer Name String
IEEE 11073-20601 Regulatory
Certification Data List
Battery Level

Characteristic/Description

Coverage

Blood Pressure

Write

Battery Service

Subscription

Device Information

Readable

Service

R__
R_W

R_W

19

体温計
devicePyle Health
Thermometer

BatteryLevel

100100.0%R__

Temperature Measurement

TemperatureMeasurement (*)

010100.0%_S_

Temperature Type

TemperatureType110100.0%

RS_Intermediate Temperature

IntermediateTemperature (*)

010100.0%_S_

Measurement Interval

MeasurementInterval

100100.0%

R__

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

Property

Coverage

Battery Level

CharacteristicWrite

Health Thermometer

Subscription

Battery Service

Readable

Service20

体重計
deviceManufacturer Name String

IEEE 11073-20601 Regulatory
IEEERegulatory
Certification Data ListPnP ID
Battery Service

Battery Level

PnPID
BatteryLevel

Weight Gurus
Scale

Software Revision String

Taylor Smart
Scale

Hardware Revision String

Pyle Health
Weight Scale

Device Information

A&D Weight
Scale

Firmware Revision String

WahooWeight Scale
MonitorSerial Number String

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

100.0%

R__

R__

R__

R__

R__

0100.0%

R__

R__

R__

R__

R__

0080.0%

R__

R__

R__

R__

50

0

100.0%

R__

R__

R__

R__

30060.0%

R__

R__

R__

200

40.0%

R__

R__

300

60.0%

Coverage

Model Number String

SystemID
ModelNumber
SerialNumber
FirmwareRevision
HardwareRevision
SoftwareRevision
ManufacturerName

Write

System ID

Property

Subscription

Characteristic

Readable

Service500100.0%

40080.0%500100.0%500504

R__

R__

R__

R__

※体重計向けの汎用コンポーネントはない

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

21

スピード＆ケイデンス(⾃転⾞向け)
deviceARMOR-X Cycling
Speed/Cadence
SensorPowerTap Speed
and Cadence
Sensor

Runtastic
Speed/Cadence
Bike Sensor

R__

R__

R__

R__

R__

R__

0

0

60.0%

R__

R__

R__

R__

0

090.0%

R__

R__

R__

R__

0

040.0%

R__

R__

0

090.0%R__

R__

R__

R__

00

60.0%

R__

R__

R__

R__

0070.0%R__R__

0030.0%Battery Service

5070.0%00100.0%80

Cycling Speed andCadence

7

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

Coverage

Device Information

R__
R__
R__

R__
R__
R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

R__

RS_

RS_
R__

R__

R__

R__

RS_

RS_

RS_

RS_

R__

R__

R__

R__

R__

R__

R__

R__

90.0%

_S_

_S_

_S_

_S__S__S_

_S_

_S_

0

90.0%

_S__S__S__S_

_S_

_S_

_S_

0

0

10.0%

7

7

80.0% _SW

_SW

_SW

_SW

_SW

_SW

0070.0%

R__

R__

R__

R__

R__

R__

0

0

10.0%

Scosche Rhythm
Speed/Cadence
SensorTopeakSpeed/Cadence
Sensor90.0%

Polar Cadence
SensorI-gotU
Speed/Cadence
Bike Sensor

0Firmware Revision String

Polar Speed Sensor

Jarv Cycling Speed
and Cadence BikeSensor

0Property

Wahoo CSC Sensor

7
FirmwareRevision
5Hardware Revision String
HardwareRevision
7Manufacturer Name String ManufacturerName
3
Model Number String
ModelNumber
7
Serial Number String
SerialNumber
5
Software Revision String
SoftwareRevision
5System ID
SystemID
3PnP ID
PnPID
6
Battery Level
BatteryLevel
8
CSC Feature
CSCFeature
CumulativeWheelRev
0olutions(*)
CSC Measurement
CumulativeCrankRevo
0lutions(*)
0
CSCMeasurement0
SC Control Point
SCControlPoint(**)
6
Sensor Location
SensorLocation
1
Sensor Location
CSCSensorLocation

Characteristic

Write

Readable

Subscription

Service

R__
R__
R__
R__

R__
R__
_S_
_S_

_S_
R___SW

R__
R__

R__22スピード＆ケイデンス(ランニング向け)
deviceDevice Information

Battery Service

Running Speed and Cadence

Polar Stride
Sensor

100100.0%

R__

Hardware Revision String

HardwareRevision

100100.0%

R__

Manufacturer Name String

ManufacturerName

100100.0%

R__

Model Number String

ModelNumber

100100.0%

R__

Serial Number String

SerialNumber

100100.0%

R__

Software Revision String

SoftwareRevision

100100.0%

R__

System ID

SystemID

100100.0%

R__

PnP ID

PnPID

0000.0%Battery Level

BatteryLevel

110100.0%

RS_RSC Feature

RunningSpeedCadenceFeature

100100.0%R__

InstantaneousCadence(*)

010100.0%_S_

InstantaneousSpeed(*)

010100.0%_S_

SCControlPoint(**)

011100.0%_SW

CSC Measurement

SC Control Point

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

Property

Coverage

Subscription

FirmwareRevision

CharacteristicWrite

Readable

Firmware Revision String

Service23活動量計
device
LifeTrak Move
Watch

Coverage

0100.0%R__

1 00100.0%

R__

1 00100.0%

R__

1 00100.0%

R__

1 00100.0%

R__

1 00100.0%

R__

1 00100.0%

R__IEEE 11073-20601 Regulatory
Certification Data List

IEEECertificationData

1 00100.0%

R__PnP ID

PnPID
BatteryLevel

1 00100.0%

R__

1 10100.0%

RS_Model Number String
Serial Number String
Firmware Revision String

Battery ServiceWrite

1 0

Manufacturer Name String

SystemID
ModelNumber
SerialNumber
FirmwareRevision
HardwareRevision
SoftwareRevision
ManufacturerName

System ID

Device Information

Property

Subscription
Readable

Characteristic

Service

Hardware Revision String
Software Revision String

Battery Level※活動量計向けの汎用コンポーネントはない
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

24ジェスチャートラッカー

deviceMyo GestureControlArmband

Battery Level

Coverage

Battery Service

ManufacturerName
BatteryLevel

Write

Device Information Manufacturer Name String

Property

Subscription

Characteristic

Readable

Service

100100.0%R__

110100.0%

RS_※ジェスチャートラッカー向けの汎用コンポーネントはない

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

25

環境センサーdeviceTempo
Environment
MonitorTexas Instruments
Gas Sensor
Platform

Texas Instruments
Sensor Tag

033.3%

R__

2

0066.7%

R__

10033.3%

R__

20066.7%

R__R__

20066.7%

R__R__

20066.7%

R__R__

20066.7%

R__

R__

IEEE 11073-20601 Regulatory
Certification Data List

IEEERegulatory

10033.3%

R__

PnP ID

PnPID

10033.3%

R__

Battery Service

Battery Level

20066.7%

Immediate Alert

Alert Level

BatteryLevel
ImmediateAlert

00133.3%

Model Number String
Serial Number String
Firmware Revision String
Device Information Hardware Revision String
Software Revision String

Coverage

Subscription
0System ID

Property

Write

Readable1

Manufacturer Name String

SystemID
ModelNumber
SerialNumber
FirmwareRevision
HardwareRevision
SoftwareRevision
ManufacturerName

CharacteristicService

R__

R__

R____W※環境センサー向けの汎用コンポーネントはない

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

26

IoTコンポーネントの紹介(z-Wave)
 z-Wave向けのコンポーネントは以下の種類があります。
種類

対応デバイス数

Alarm

3

Doorlock3

Switch2

Outlet3

Light2

Sensor5

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

27

See also 対応デバイス一覧• http://docwiki.embarcadero.com/IoT/en/ThingConnect_Devices

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

28

位置測位アプリをBEACONFENCEでコード無しに作る

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

29

Beaconfenceで測位アプリを作る。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

30

Beaconfenceで測位アプリを作る。
 TBeaconMapFencingを配置する

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

31

Beaconfenceで測位アプリを作る。
 フロアマップを定義し、ビーコンを配置する。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

32

Beaconfenceで測位アプリを作る。
 測位精度を⾼めるために、⼈の動線を「パス」で定義する。
• 「パス」は、カーナビにおける道路に相当する。
• 利用者は「パス」の上だけを移動するものと⾒なす。計算から求めた位置をパス上に補正する。
• ビーコンの測距、測位精度はさほど⾼くないが、パスを定義することで測位位置の補正が⾏える。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

33

BeaconFenceを用いたアプリケーション実装に関するdocwiki
上の文書
 BeaconFence• http://docwiki.embarcadero.com/IoT/en/BeaconFence Using BeaconFence•

http://docwiki.embarcadero.com/IoT/en/Tutorial:_Building_a_ThingConnect_IoT_Application

 BeaconFence Map Editor•

http://docwiki.embarcadero.com/IoT/en/BeaconFence_Map_Editor

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

34

まとめ
 BeaconFenceでは位置測位だけを⾏うアプリケーションならば、コードをほとんど書かずに実装できる︕
 BeaconFenceは、固定ビーコンを使用した位置測位が⾏える。
 測位の精度を上げるには「パス」を設定する。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

35

ビーコンの測距精度に影響を与える干渉源について考える本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

36

IoTセンサーとビーコンの要件の違い


IoTセンサーは、計測値が取得できればよい。



電波強度が少々下がっても値が取得できるならば特に差し支えない。

ビーコンでは「距離」や「近接度」を測定したい。

「距離」は送信出⼒と受信強度から算出するため、受信強度の数値が重要。



受信強度が不安定な条件では、距離計算のブレ幅も⼤きくなる。送信強度が不安定なのは問題外。

HeartRate= 60 HzHeartRate= 60 Hz

送信出⼒-18 dBm

受信強度-59 dBm

計算上の推定距離1m
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

37

距離による電波強度の減衰について考える
電波は距離の２乗に反⽐例して弱くなる。



ビーコンとの距離が１メートルより遠いと距離検出の精度が落ちる。
• RSSIの値は1メートルを超えると数値の下がり方が小さくなる。つまり数値の少しの差が距離計算に与える影響が大きい。

3dBm 程度の減衰でもビーコンから2m程度離れた位置では測距が1m近くズレる。（減衰によって距離の計算に40%程度のズレが出るため）ビーコンの出⼒強度と距離による減衰の関係
02681012-10-20-30-40-50

2.83-60-70

2.00-80-90

ビーコンからの距離(m)減衰なし・1m以上

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

40

RSSI (電波の減衰状況, dBm)

減衰なし・1m以下

減衰 3dBm

38

BLE Beaconの電波周波数と主な干渉源
 BLE Beaconの電波は電⼦レンジの漏れ電波やWi-Fiの一部チャネルの電波の⼲渉を受ける。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

39

干渉する恐れのあるデバイス
 電⼦レンジ• 2.45GHzを中心周波数とし、2.4GHz-2.5GHzの範囲で⾼出⼒の電波を放射する。
• Bluetoothデバイスに⽐べて出⼒が桁違いに⼤きい(電⼦レンジ = 400W以上、BLEデバイス = 0.01W) 。電⼦レンジの電波は筐体によって遮蔽されているが、それでも発生する漏れ電波のインパクトが⼤きい。

 WiFi• 2.4GHz 802.11b/g/n と Beacon を併用する場合は、3-5, 13-14ch の使用を極⼒避けることを検討してみる。このチャネルは BLE デバイスと⼲渉する恐れがある。

 デジタルコードレス電話• 一部のデジタルコードレス電話は2.4GHz帯を使用するため、BLEデバイスとの⼲渉の恐れがある。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

40

その他の干渉源


マルチパス• 直接届く電波と反射波の組み合わせによって、電波強度が本来よりも強く出る、あるいは弱く出る現象。
• アナログテレビ放送で言うところのゴースト



水を多く含む物体（生体含む）• 2.4GHz帯の電波は水に吸収されやすいため、水を多く含む物体によって電波が減衰する場合がある。

壁など

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

41

まとめ
 IoTセンサーとビーコンはBluetooth LEという点では共通だが、取り扱うデータに求められる要件は異なる。
 ビーコンの設置にはさまざなノウハウがあるが、技術要件から事前に想定可能な問題点は考慮の上でビーコンの配置を設計することが望ましい。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

42

THANKS!
www.embarcadero.com/jp
第32回 エンバカデロ・デベロッパーキャンプ

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

43