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”);     
  
}