A certain engineer "COMPLEX"

Bluetooth Low Energyの自作ビーコンを作る その1

Introduction


IoT熱が高まってついに電子工作を始めました。

スイッチサイエンス、お世話になります。

で、何がしたいかというと、BLEビーコンを作ってみたいんですよ。
いやネット上でBLE Nanoキットを使ってサンプルは転がっているんですが、電子工作スキルなるものを習得できれば、と思います。
子供の頃はプラモデル作るのは好きでした。大丈夫でしょう。

Instructions


基本的には、JellyWare様の下記のページをなぞるだけです。

JellyWare株式会社
人が技術を作る。技術が人の暮らしをつくる。だから、人をつなげ、何かを作り、それをまた誰かに伝えたい。JellyWareはそんな人と技術が集まるプラットフォームです。

違うのは、ボリュームがない点です。
つまり、電池、コイン電池ホルダ、ジャンパワイヤ、BLE Nano v2、ブレッドボードだけを使います。
ひたすらパケットを送信するだけのビーコンです。

で、軽く記事を読むと、

  • mbed
    • ARM社のプロトタイピング用ワンボードマイコン用のプログラミング環境

が必要とのこと。Visual Studioで出来ないの?と温いことを思いますが、郷に入っては郷に従うの精神で行きます。

mbedのアカウント取得

無料出来る模様。どうやってマネタイズしているのか。
アカウント作成はここから。


Log In/Sign upを選択


Sign upを選択


メールアドレス、ユーザ名、パスワード、名前、名字、国名を入力

以上で完了です。
完了後、メールが届いて最終確認後、Sing Inできます。


Compilerを押して作業開始!!

BLE Nanoを動かす下準備

mbedはブラウザ上で作業が完結する模様。
なので、ブラウザ上でソース編集、デバイスに書き込みという往復作業になります。

まず、先の画面でCompilerをクリックすると、下記のような画面に遷移します。

ここで、右上のデバイス未選択をクリック。


表示されるダイアログの左下のAdd Platformをクリック

別ウィンドウで開発ボードの一覧がリストアップされます。


RedBearLab BLE Nanoを選択

続いて、BLE Nanoの詳細に移動しますので、画面右側中央のAdd to your Mbed Compilerをクリック


成功しました。

サンプルのインポート

次にサンプルソースをインポートします。
BLE_iBeaconというサンプルがありますので、これを自分の環境にインポートします。

画面左上のインポートをクリックします。


Source URLに先ほどのBLE_iBeaconのurlを入力し、Importを実行


成功するとプロジェクト一式が画面に表示されます

おもむろに、main.cppを見てみます。

すごくシンプルです。
main関数内で、おまじないした後は、全ての処理がbleInitComplete関数内に書いてあります。
サンプルは1秒毎にアドバタイジングパケットを送信する模様。
とりあえず、これをコンパイルします。


画面左上のコンパイルをクリック


コンパイルが始まります

が、エラーと警告。

  • Warning: #warning directive: toolchain.h has been replaced by mbed_toolchain.h, please update to mbed_toolchain.h [since mbed-os-5.3] in "extras/mbed_e7ca05fa8600/platform/toolchain.h", Line: 23, Col: 3
  • Error: Cannot open source input file "core_cmInstr.h": No such file or directory in "BLE_API/ble/services/iBeacon.h", Line: 19, Col: 27

とりあえず警告は無視して、エラーを直します。エラー行右のFix it!をクリック。

なんとライブラリを探してきて、候補を提示してくれます。
ただ、どれを選べば良いのか見当もつきません。

ということで調べてみると、

BLE Nano を mbed で iBeacon 化する - Tech Blog by Akanuma Hiroaki
前回 BLE Nano で Lチカまでやったので、今回は BLE Nano を iBeacon 化して、iOS アプリから検知してみたいと思います。 また、開発環境としては前回の記事で、 Vagran...

という記事が。
記事によれば、

ですがこのビルドを指定すると下記のようなエラーになってしまったので、 4eea097334d6 で実行しています。

とのこと。どうもインポート時に最新ビルドを持ってくるようにしたのが不味かった模様。
なので、プロジェクトを削除してもう一度インポートします。


Update all libraries to the latest revisionのチェックを外します。

警告は出ますが、コンパイルに成功し、バイナリをダウンロードできるようになりました。

まずはコンパイルとバイナリ生成が完了。

コメントを残す

メールアドレスが公開されることはありません。

%d人のブロガーが「いいね」をつけました。