2017年3月10日金曜日

浅草ギ研さんの BLESerial2 を使って LED を点灯させてみた

概要

前回 BLESearial2 の電源を入れるところまで試し BLE モジュールとして動作することを確認しました
今回は更に BLE モジュールからシリアル信号を Arduino で受け取って LED を点灯させてみたいと思います

環境

  • Arduino UNO
  • Arduino IDE 1.6.7
  • BLEモジュール BLESerial2
  • 砲弾型 赤色LED 1 個
  • 抵抗 47Ω x 2
  • ジャンパケーブル 2 本

配線

今回は BLE のシリアルを受信して LED を点灯させます
配線は以下の通り
bleserial2_led_circuit.jpg

まずは、LED を点灯させるための配線です
デジタルピン 7 番から抵抗を 2 つ挟んで LED のアノード側へ接続します
そして LED のカソード側を Arudino の GND に接続します

次に BLE モジュールの RX を Arduino の RX に接続します
注意点としては Arduino 側の RX ピンが接続されていると、後で Arduino にアップロードするプログラムが上手く書き込めないのでプログラムを書き込むときは RX ピンを抜いて書き込んでください

写真の左上の BLE モジュールの TX がブレッドボードに刺さっているのは写真を撮るためにわざとピンを指しているだけなのでどこにも接続されていない回路になります

Arduino 側プログラム

BLESerial2 からのシリアル信号を受信して LED を点灯させるプログラムです

const int LED = 7;
int rsvData = 0;

void setup() {
  pinMode(LED, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  if (Serial.available() > 0) {
    rsvData = Serial.read();
    Serial.println(rsvData);
    if (rsvData == 1){
      digitalWrite(LED, HIGH);
    } else if(rsvData == 0) {
      digitalWrite(LED, LOW);
    }
  }
  delay(100);
}

今回は 7 番ピンを使いました
ここは適宜変更してもらって OK です
コンパイルできたら RX ピンを一旦抜いてプログラムを Arduino に書き込みましょう
書き込みできたあとで再度 RX ピンを差し込んでください

動作確認

シリアルの受信は BLE モジュールに接続した後に write リクエストを送ることで、その信号をシリアル信号として受信することができます

じゃあどうやって write リクエストを送るかというと前回使った iPhone アプリ ( LightBlue ) を使います
アプリを立ち上げて接続したあとに「Write Without Response」のサービスを開きます
bleserial2_write_request.png

すると「Write new value」という部分があるのでタップして「1」を入力して Done してみましょう
すると Arduino に配線された見事光ると思います
次に「0」を入力すると LED が消灯するはずです

最後に

BLE モジュールから信号を受信して Arduino で LED を光らせてみました
今回、RX しか使わなかったので次回は TX を使って BLE モジュール側に信号を送信してみたいと思います

0 件のコメント:

コメントを投稿