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