Arduino + Bluetooth 4.0 Module BLE(RF-BM-S02) 実験

Arduino Source
注意点:
①該当モジュールのシリアル通信速度はデフォルトとして
115200bpsです。これが原因で私は最初失敗を繰り返しました。

②該当サンプルソースには以下のLibralyを使いました。(必須ではないです)
AltSoftSerial Library
https://github.com/PaulStoffregen/AltSoftSerial

③スマートフォン側の通信ソフトは

Android App:BleScaner
https://play.google.com/store/apps/details?id=com.macdom.ble.blescanner&hl=ja

#include <AltSoftSerial.h>
#include <ctype.h>

// AltSoftSerial always uses these pins:
//
// Board          Transmit  Receive   PWM Unusable
// —–          ——–  ——-   ————
// Teensy 3.0 & 3.1  21        20         22
// Teensy 2.0         9        10       (none)
// Teensy++ 2.0      25         4       26, 27
// Arduino Uno        9         8         10
// Arduino Leonardo   5        13       (none)
// Arduino Mega      46        48       44, 45
// Wiring-S           5         6          4
// Sanguino          13        14         12

AltSoftSerial altSerial;

//BRTS TO LOW : MCU SEND DATA START
//BRTS TO HIGH: MCU SEND DATA OVER
int PIN_BRTS = 2;

//BCTS TO LOW : MODULE SEND DATA TO MCU START
//BCTS TO HIGH: MODULE SEND DATA TO MCU END
int PIN_BCTS = 3;
//
//注意事項:Bシリアル
//
String inDataStr;

void setup() {
Serial.begin(9600);
while (!Serial) ; // wait for Arduino Serial Monitor to open
Serial.println(“AltSoftSerial Test Begin”);
altSerial.begin(115200);
}

void loop() {

if (digitalRead(PIN_BCTS) == LOW){
Serial.println(“PIN_BCTS LOW”);

//init
inDataStr = “”;

while(digitalRead(PIN_BCTS)==LOW){
while (altSerial.available() > 0)
{
char recieved = altSerial.read();
inDataStr += recieved;

// Process message when new line character is recieved
//                  if (recieved == ‘\n’)
//                  {
//                      Serial.print(“Arduino Received: “);
//                      Serial.print(inDataStr);
//                      //inDataStr = “”; // Clear recieved buffer
//                  }

}

}
Serial.println(inDataStr);
delay(1);
}
//—————————————————-
//MCU – > MODULE データ発信開始
//—————————————————-
digitalWrite(PIN_BRTS,LOW);
// Serial.println(“PIN_BRTS LOW”);
delay(2);

//———————–
//データを書き込む
//———————–
altSerial.print(“123”);

delay(5);
//—————————————————-
//MCU – > データ発信完了
//—————————————————-
digitalWrite(PIN_BRTS,HIGH);
//Serial.println(“PIN_BRTS HIGH”);

}