2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Connect Arduino and iPhone via ble4.0

Last updated at Posted at 2015-12-28

BDMで作っていたEveryTouchをスマホを使って実現するのに必要だったので、ble4.0モジュールである浅草ギ研のBLESerial2で、ArduinoとiPhoneの通信を試みた。
http://www.robotsfx.com/robot/BLESerial2.html
を参考にArduinoとbleモジュールを接続。ただし、Arduinoがble4.0で受信した信号をパソコンで見たいので、TX/RXは空けたい。そこで、SoftwareSerialを使い、ArduinoのD12をRX、D13をTXとしてbleモジュールにつなぐ。
モジュールの電源は3.3Vであることに注意!

Arduinoのプログラムは以下
http://blog.livedoor.jp/sce_info3-craft/archives/9072219.html を参考にさせて頂いた。

ble4.0_test.cpp
#include <SoftwareSerial.h>

#define BT_RX 10
#define BT_TX 11
#define LED 13

int rsvData = 0;
int sersorVal = 0;

SoftwareSerial btSerial(BT_RX, BT_TX);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  btSerial.begin(9600);
  pinMode(LED, OUTPUT);  
}

void loop() {
  // put your main code here, to run repeatedly:
  if(btSerial.available() > 0){
    rsvData = btSerial.read();
    Serial.println(rsvData);
    if( rsvData == 1 ){
      digitalWrite(LED, HIGH);
    } else if( rsvData == 0 ){
      digitalWrite(LED, LOW);
    }
  }
}

これをArduinoに焼き付けて、iPhoneでLightBlueというアプリを立ち上げる。

やってみるものの、上手く行かない。
説明書をよく見ると、bleモジュールのTXはAruduinoのTX、RXはArduinoのRXにつなぐようにという指示が書いてあった。単純に接続が逆だった。配線を入れ替えると、上手くいった。

試しに、ble経由で数字をiPhoneにかえしてみる。

ble4.0_test2.cpp
#include <SoftwareSerial.h>

#define BT_RX 10
#define BT_TX 11
#define LED 13

int rsvData = 0;
int sersorVal = 0;

SoftwareSerial btSerial(BT_RX, BT_TX);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  btSerial.begin(9600);
  pinMode(LED, OUTPUT);  
}

void loop() {
  // put your main code here, to run repeatedly:
  
  if(btSerial.available() > 0){
    rsvData = btSerial.read();
    if( rsvData == 1 ){
      digitalWrite(LED, HIGH);
      Serial.write("hello\n");
      btSerial.write(0x12);
    } else if( rsvData == 0 ){
      digitalWrite(LED, LOW);
      Serial.write("good night\n");
      btSerial.write(0x11);
    }
  }
}

ちゃんと返却値もiPhoneに届いている。
LightBlueは結構便利なアプリでした。これで、手元のボタン押したらiPhoneで画像処理を開始するみたいなことができそう。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?