0からはじめるBlueZ(1)

Bluetoothプログラミングを入門する

Bluetoothとは

Bluetoothプログラミングを始める前に、まずは「Bluetoothとは何か」を知っておきます。
以下は、Wikipediaからの引用です。

数mから数十m程度の距離の情報機器間で、電波を使い簡易な情報のやりとりを行うのに使用される。
当初エリクソン、インテル、IBM、ノキア、東芝の5社(プロモーター企業)によって策定され、その後マイクロソフト、モトローラ、3COM、ルーセント・テクノロジーの4社がプロモーター企業として加わり、現在は3COM、ルーセント・テクノロジーの2社が脱退し、アップル、およびNordic Semiconductorが加わり、9社がプロモーター企業となっている。IEEEでの規格名は、IEEE 802.15.1である。
2.4GHz帯を使用してPC(主にノートパソコン)等のマウス、キーボードをはじめ、携帯電話、PHS、スマートフォン、タブレットでの文字情報や音声情報といった比較的低速度のデジタル情報の無線通信を行う用途に採用されている。
簡単に、短い距離で通信できる方式と考えて次に進みましょう。

準備

例によって、Linux Mint17.3がOSの環境でスタートします。
Windows機の方は、Cygwin(?)やVirtualBox等でLinux環境を整えましょう。
プログラムを組む前に、Bluetoothのプロトコルスタックが必要となります。(ライブラリのようなものです)
Linuxでは、ポピュラーなBlueZを使用します。
インストール方法は下記コマンドを叩きましょう。

1
$ sudo apt-get install libbluetooth-dev

これで、C言語からBlueZのプロトコルスタックが使用できるようになりました。

コードを書く

準備も済んだので、実際にコードを書いてみましょう。
これまた、ここのサイトを参考に
デバイスを見つけるコードを書きます。
エディタを開き、Example 4-1.simplescan.cをそのままコピペして貼り付けます。
保存して、エディタを閉じたら下記コマンドデコンパイルを実行します。

1
$ gcc -o simplescan simplescan.c -lbluetooth

コンパイル実行すると、「simplescan」というバイナリができるはずなので、下記で実行します。

1
$ ./simplescan

さて何が起きたでしょう。
このコードは、近くにあるデバイスを検索し、デバイス名とデバイスアドレスを標準出力にプリントします。
以下のように出るはずです。

1
iphone6s XX:XX:XX:XX:XX:XX

ここまで記事を書いておいてですが、PCにBluetoothのドングルやBluetooth機能が内蔵していないとScanができないと思いますので、
準備段階で買っておきましょう。

Part1はここまでです。


Hello World

使い方として残しておく・・・
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment