2017年2月5日日曜日

BLESerial2 で自作のビーコンを作ってみた

概要

Arduino Pro mini と BLESerial2 を使ってブレッドボード上で配線し簡単なビーコンを作成してみました

環境

全体図

全部配線した感じは以下の通りです
my_beacon.jpg

自分にはプリント基板化する力がないのでブレッドボード上に配線しました

スケッチ

タクトスイッチを 2 つ配線しているのでその信号を取得するロジックと、その情報を BLESerial2 に渡す部分を実装しています
BLESerial2 とはシリアルで通信するだけなのでスケッチも非常に単純になります

int s0 = 3;
int s1 = 5;

void setup() {
  pinMode(s0, INPUT);
  pinMode(s1, INPUT);
  Serial.begin(9600);
}

void loop() {
  if (digitalRead(s0) == HIGH) {
    Serial.write(s0);
  } else if (digitalRead(s1) == HIGH) {
    Serial.write(s1);
  }
  delay(200);
}

Arduino IDE で上記スケッチを Arduino Pro mini に書き込めば OK です
書き込みは「FTDI USBシリアル変換アダプター」を使いました

動作確認

ST-PHコネクタにスイッチが付いているので ON にすると電源が入ります

アドバタイジングで表示されるデバイス名は「BLESerial2」になります

今回 2 つのスイッチをつけています
それぞれ Arudino Pro mini の 3, 5 番ピンにつながっており、押したとき (HIGH になったとき) にその情報を BLESerial2 に送っています
こうすることで BLESerial2 とペアリングしたデバイス側で Notify の値として信号を受け取ることができます

LightBlue を使うと以下のようにスイッチの情報を取得することができます
my_beacon_ret.png

最後に

BLESerial2 を使った自作ビーコンを紹介しました

ブレッドボードには収まっているので持ち運びすることもできると思います
また、今回電源はリチウムイオンポリマー電池を使っているので充電しなおせば何度も使用することができます
ビーコンは CR232 などのボタン電池を使うケースが多いのですが、今回は Arduino Pro mini のマイコンを使っているのでボタン電池では動きませんでした

あとは、スイッチ (Notify) の部分しか実装していないのでマイコン側を制御する流れ (Write) も作ると面白いかなと思っています

0 件のコメント:

コメントを投稿