LoginSignup
6
2

More than 3 years have passed since last update.

RaspberryPiZeroでbleaconを使って簡単に設定変更できるビーコンを作る

Posted at

RaspberryPI Zeroを使ってiBeaconとして動作するビーコンを作ります。
node+bleaconを使います。
2019/10/11時点の最新環境を使いますが、一度node10を入れてnode9に差し替えたりする必要がありますので
自分用メモ代わりにまとめます。

最終的にはSDカードをUSBメモリとしてPCからアクセスできる部分のJSONファイルで
uuidとかを簡単に変更できるビーコンが出来ます。便利!

導入するもの一覧

  • Raspbean Buster Lite
  • Node9
  • bleacon

導入手順

  • Raspberry Buster Liteのインストール

最初にRaspberry Liteをインストールします。GUIも欲しかったらDesktopを入れてもokです。

  • とりあえず初期設定
> sudo apt-get update
> sudo apt-get upgrade
  • nodeのインストール(一旦apt-getでnode10を入れた後bleacon対応版のnode9に入れ替え)
sudo apt-get install -y nodejs npm
sudo npm cache clean
sudo npm install npm n -g
sudo n 9.10.1
sudo apt-get purge -y nodejs npm
  • nodeのPATH設定 次の行を/home/pi/.profile末尾に追加
PATH="/usr/local/n/versions/node/9.10.1:$PATH"
  • bleaconのインストール
sudo apt-get install -y libbluetooth-dev
npm install bleacon
  • ビーコンスクリプトの設定

以下のプログラムを/home/pi/beacon.jsに保存します。

var config = require('/boot/beacon.json');

console.log("START "+config.major+":"+config.minor+" beacon");

var uuid=config.uuid.replace(/-/,'');
var major=config.major;
var minor=config.minor;
var txpower=config.txpower;
const Bleacon = require('bleacon');
Bleacon.startAdvertising(uuid,major,minor,txpower);

以下のJSONを/boot/beacon.jsonに保存します。
※SDカードをPCにマウントした時にアクセスできるフォルダです。

{
"//":"beacon config file",
"uuid":"aaaaaaaabbbbccccddddeeeeeeeeeeee",
"major":99,
"minor":199,
"txpower":-59
}
  • 自動起動設定

以下の1行を/etc/rc.localに追加するとZeroの電源を入れるたびにビーコンとして動作します。

sudo /usr/local/bin/node /home/pi/beacon.js > /dev/null &

あとはビーコンの設定を変えたい場合はPCにSDカードを差してJSONを書き変えるだけでOKです。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2