wonderCodeの日記

プログラミングの覚え書き

Arduinoでソフトウェアシリアル通信

千石電商さんで、面白そうな部品を見つけたので、購入してみました。

UARTをBluetooth通信に変換する部品。

これを使えば、ArduinoiPhone間で通信できるらしいので、その検証を。

有線(USB接続)での通信は、MFi認証の関係で無理そうだなと思っていたところ見つけたのがこれです。

www.sengoku.co.jp

 

この部品をArduinoで使っている記事あるかも、と少し探してみたのですが見つけられず。

公式サイトのお世話になります。

learn.adafruit.com

 

HWフロー制御?とかもできるらしいのですが、シンプルに電源、GND、UARTの配線だけで済ませたかったので、この回路図に落ち着きました。HWフロー制御有だと信号線の数が倍ぐらいになります。

f:id:wonderCode:20211128182828p:plain

回路図

 

f:id:wonderCode:20211128194802j:plain

ArduinoにBLEを配線

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には以下のアプリをインストール。

Bluefruit Connect

Bluefruit Connect

  • Adafruit Industries
  • ユーティリティ
  • 無料

apps.apple.com

 

Arduinoにソースを書き込むと、MODEの方の赤色LEDが2回ずつ点滅。そして、Bluefruit Connectから「Adafruit Bluefruit LE」に接続を行うと、CONNの青色LEDが点灯。

これで準備完了。

Arduinoのシリアルモニタから送信すると、

f:id:wonderCode:20211128193718p:plain

Arduino シリアルモニタ

iPhone(Bluefruit Connect)に送信した文字が表示されます。

f:id:wonderCode:20211128193842p:plain

iPhone (Bluefruit Connect)

 

iPhoneからArduinoへの送信も可能です。

これでiPhoneを、Arduinoの入出力インターフェースとして使用可能ということがわかったので、いろいろできそうですね。