前記事にてBluetooth4.0BLEが接続できないという問題に遭遇したので、それなら古い Bluetoothで、、、ということで、旧式のBluetooth Shield(SLD63030P)を入手して接続に成功しました。成功しましたといっても、それまでにいろいろ四苦八苦しており、とりあえず現状できていることは
- ノートPC側から接続(シリアルポートとして)
- ArduinoからデータをBluetooth経由でノートPCに送信
- プログラム側は前記事のようにシリアルとして認識
という感じです。で、正直、Bluetoothのことが全くわかっておらず、電源入れたらすぐに繋がるんだろう、、とか思ってたのがそもそもの間違いでした。Arudino側のスケッチの書き方次第で接続が失敗したりするようで、接続できなかった場合の問題の切り分けに注意が必要ですね。もしかするとBluetooth4.0が繋がらないのもそういう問題かもしれません。
下記は、Arduino側のスケッチです。公式のサンプルの一部を抜粋してますが、アナログポートの出力をそのまま送ってます。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
void setupBlueToothConnection(){ | |
blueToothSerial.begin(38400); //Set BluetoothBee BaudRate to default baud rate 38400 | |
blueToothSerial.print("\r\n+STWMOD=0\r\n"); //set the bluetooth work in slave mode | |
blueToothSerial.print("\r\n+STNA=SeeedBTSlave\r\n"); //set the bluetooth name as "SeeedBTSlave" | |
blueToothSerial.print("\r\n+STOAUT=1\r\n"); // Permit Paired device to connect me | |
blueToothSerial.print("\r\n+STAUTO=0\r\n"); // Auto-connection should be forbidden here | |
delay(2000); // This delay is required. | |
blueToothSerial.print("\r\n+INQ=1\r\n"); //make the slave bluetooth inquirable | |
Serial.print("The slave bluetooth is inquirable!"); | |
delay(2000); // This delay is required. | |
blueToothSerial.flush(); | |
} | |
void loop() { | |
int sensorValue = analogRead(A0); | |
blueToothSerial.print(sensorValue); | |
blueToothSerial.print("\n"); | |
} |
0 件のコメント:
コメントを投稿