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からの数字が出てきます。