Edisonでeddystone-URLビーコンを出す

最近はビーコンが簡単に出せるという話を耳にしたので、試してみました。

1. Edisonの初期化

しばらく放っておいたEdisonはアップデートをライブラリ毎にするのも面倒だし、初期化して使うのが良いのですが、最近流 行も過ぎたせいか正しい初期化方法を書いているブログが見つけられませんでした。

まずは、各OSのインストーラーで必要なデバイスドライバを一括インストール。ここでEdisonをつなげという指示が出るのですが、つないでもナゼかUpdateしてくれた試しがありません。というわけで、自分で最新のFirmware Release 2.1をダウンロード。Complete imageをダウンロードします。

software.intel.com

ダウンロードしたファイルを展開すると、中にflushall.bat と flushall.sh というファイルがあるので、Windowsはflushall.batをダブルクリック、 Mac, Linuxは flushall.shをコンソールから実行します。EdisonをUSBでつなげと指示があるので、ココでつなぐとめでたく認識されて、15分ほどほおっておけば完全に初期化された状態になります。

2.Edisonの初期設定

ファームウェア以外の手順は、以下のブログの通りで問題ないです。 ターミナルでログインして"configure_edison --setup" と打てばさくさく進みます。 trac.switch-science.com

3.eddystone-URL ビーコンを飛ばす

ココに書かれているとおりでOK。 古い情報だとなんかライブラリをいっぱい入れろと書かれていますが、ココのものでOK。 気をつけるところは、sudoが不要なところだけ!

EdisonでEddystoneを使いURLを送信する | Developers.IO

4.EdisonでBluetoothを常時ONで起動するようにする

ココに書かれている設定を入れればOK。いちいちrfkillコマンド打たなくて良くなります。 intel edison (3) - /var/log/messages

5.Edison起動したらBeacon飛ばして欲しい

起動スクリプトを書いてしまう。たとえば、以下のように起動スクリプトを記述。

vi /etc/systemd/system/eddystone.service

[Unit]

Description=Eddystone Beacon Node Service

[Service]

Environment=/home/root

ExecStart=/usr/bin/forever -l /dev/null -a /home/root/sample.js

[Install]

WantedBy=multi-user.target

あとは、記述したサービスを登録すれば良い。コマンドは以下の通り。

systemctl enable eddystone.service

これで、電源を入れるだけでビーコンが飛ぶようになります。