RN4020を2台でシリアル通信を無線化する

BluetoothのモジュールRN4020を使ってシリアル通信を無線にします。その記録です。

RN4020の購入

秋月にモジュールで売っているこちらの商品を購入しました。

RN4020 Bluetooth Low Energy モジュール ¥1300

これを2台購入して親機と子機にします。

シリアル変換との接続

macOSとシリアル変換器(/dev/cu.usbserial-AL01FVQ8)を通してUSBで接続します。この変換器はスイッチサイエンスで買った物だったと思う。

/dev/cu.usbserial-AL01FVQ8 – RM4020
VCC(5V) – VCC
GND – GND
TX – RX(白)
RX – TX(黄)

シリアル変換器は3.3Vと5.0Vを切り替えできる物なので、5.0Vにジャンパーで設定。

RN4020を子機として設定する

Arduino IDEのシリアルモニタを使って以下のコマンドで設定します。

+
Echo On
SF,1
SF,1AOK
SR,32000000
SR,32000000AOK
R,1
R,1
RebootCMD

太字の部分がコマンド、細字はシリアルモニタに出てくる文字。次にこれをArduino UNOに接続します。Arduino UNOには事前に次のプログラムを書き込んで起きました。通信速度を設定して0.5秒間隔で数字を書き出してるだけです。

void setup() {
  Serial.begin(115200);
  i = 0;
}

void loop() {
  i++;

  if(i>3000) i = 0;
  Serial.println(i);
  delay(500);
}

RN4020 – Arduino UNO
VCC – 5V
GND – GND
RX – TX(1pin)
TX – RX(0pin)

UNOにはACアダプタから給電します。

RN4020の親機の設定

RN4020を親機として設定します。以下のコマンドを送って設定します。

+[return
]Echo On
SF,1[return]
SF,1AOK
SR,92000000[return]
SR,92000000
AOK
R,1[return]
R,1Reboot
CMD

これでRN4020が再起動します。再起動したら以下のコマンドで子機と接続します。

F
AOK
6827190AEAAC,0,RNEAAC,00035B0358E607DD021A08123A000300,-35

近くにあるBluetoothが一覧で出てきます。その中で「RNEAAC」がついてるのがRN4020です。その行の最初の項目が子機のIDです。私の場合は「6827190AEAAC」このIDを使って親機と子機を接続します。

E,0,6827190AEAAC
E,0,6827190AEAACAOK
Connected

これでRN4020のLED1が消灯します。しかしまだ通信は始まってません。

I
I
MLDP

これで通信が始まりシリアルモニタにArduino UNOからの数字が出てきます。