プログラミング

Raspberry Pi で iBeacon を試してみた

Raspberry PiでiBeaconを試してみました。

開発環境

今回の開発環境は以下になります。

  • Raspberry Pi: Model B+
  • Bluetooth ドングル: I-O DATA USB-BT40LE

今回使ったBluetoothドングルはこれです。

作業手順

作業手順は以下になります。

  • Bluez に必要な各種ライブラリをインストール
  • Bluez のインストール
  • 動作確認
  • Bluez を使ってみる

「Bluez」は、iBeaconを制御するオープンソースのBluetoothプロトコルスタックです。

Bluez に必要な各種ライブラリをインストール

Bluezを使用するために必要な各種ライブラリをインストールします。

Bluezのインストール

Bluezをインストールはソースコンパイルで行います。

makeは結構時間かかるので本でも読んで気長に待ちましょう。

Bluez の動作確認と Bluetooth ドングルの起動

まずはBluezが動作するかを確認します。

Bluezの動作確認はhciconfigコマンドで行います。

4行目が「DOWN」となっている場合はBluetoothドングルが停止中なので起動させます。

先ほどの4行目(ここでは5行目)が「UP RUNNING」になりました。Bluetoothドングルの起動に成功です。

Bluez を使ってみる

bluez-ibeacon のインストール

BluezのiBeacon用のライブラリ「bluez-ibeacon」をインストールしてペリフェラル(送信側)として動作させます。

おそらくこのライブラリ使うのが一番簡単そうです。

ではその「bluez-ibeacon」をインストールします。

./ibeaconコマンドでbluez-ibeaconの使い方が出力されます。

送信してみる

送信するには「UUID」や「major number」などが必要になります。

以下のコマンドは、GitHubの説明を参考に、

送信する間隔(ms単位): 200
UUID: e2c56db5dffb48d2b060d0f5a71096e0
Major Number: 1
Minor Number: 1
RSSI値: -29

に設定して送る際の例です。

送信の停止はCtrl + Cです。

おわり

とりあえずiBeaconの送信までできました。次は受信をやってみようと思います。

hcitoolというコマンドでも制御できるようなのでそっちも試したい。

参考記事

記事内の写真出典元

Jonathan Mast – Unsplash

ABOUT ME
maechan
ベンチャー、フリーランス、スタートアップを経験。 開発業務、人事業務に従事していました。 現在は農業系スタートアップ企業でエンジニアとして働いています。 リモートワークをしているノマドサラリーマンです。茶道とワークアウトが趣味です。