Arduinoでソフトウェアシリアル通信
千石電商さんで、面白そうな部品を見つけたので、購入してみました。
UARTをBluetooth通信に変換する部品。
これを使えば、ArduinoとiPhone間で通信できるらしいので、その検証を。
有線(USB接続)での通信は、MFi認証の関係で無理そうだなと思っていたところ見つけたのがこれです。
この部品をArduinoで使っている記事あるかも、と少し探してみたのですが見つけられず。
公式サイトのお世話になります。
HWフロー制御?とかもできるらしいのですが、シンプルに電源、GND、UARTの配線だけで済ませたかったので、この回路図に落ち着きました。HWフロー制御有だと信号線の数が倍ぐらいになります。
Arduino側のソースは、Arduino Micro用スケッチ例に、「SoftwareSerialExample」というちょうど使えそうなソースがあったので、これを流用。
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(57600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.println("Goodnight moon!");
// set the data rate for the SoftwareSerial port
mySerial.begin(9600);
mySerial.println("Hello, world?");
}
void loop() { // run over and over
if (mySerial.available()) {
Serial.write(mySerial.read());
}
if (Serial.available()) {
mySerial.write(Serial.read());
}
}
「mySerial.begin(9600);」の周波数を9600に変更したぐらいで、後はそのまま。
iPhoneには以下のアプリをインストール。
Arduinoにソースを書き込むと、MODEの方の赤色LEDが2回ずつ点滅。そして、Bluefruit Connectから「Adafruit Bluefruit LE」に接続を行うと、CONNの青色LEDが点灯。
これで準備完了。
Arduinoのシリアルモニタから送信すると、
iPhone(Bluefruit Connect)に送信した文字が表示されます。
これでiPhoneを、Arduinoの入出力インターフェースとして使用可能ということがわかったので、いろいろできそうですね。