M5Stick-CからMacにBluetoothで文字列を送信する
M5Stick-Cについて、一年ほど前に以下の記事を書いていました。
plant-raspberrypi3.hatenablog.com
今回、M5Stick-CのデータをMacに送信し、Macで(Pythonコードで)受け取る方法がわかったので、備忘録です。
Bluetooth経由でシリアル通信で送ります。
参考にさせていただいたのは以下のページです。
1. M5Stick-CからBluetoothで文字列を送信
Arduino IDEでM5Stick-Cに以下のコードを書き込みます。
#include "BluetoothSerial.h" #include <M5StickC.h> BluetoothSerial bts; void setup() { M5.begin(); M5.Lcd.setRotation(3); M5.Lcd.fillScreen(BLACK); M5.Lcd.setCursor(0, 0, 2); M5.Lcd.println("Bluetooth TEST"); bts.begin("M5StickC"); } void loop() { M5.Lcd.setCursor(0, 20, 2); M5.Lcd.printf("Start Bluetooth"); bts.println("Success"); delay(1000); }
bts.beginの引数はMac側でBluetoothを認識するときに表示される名前です。
bts.printlnの引数がMacに送信したい文字列です。
2. Mac側で文字列を受信(PythonのPySerial使用)
pyserialをインストール。
$ pip install pyserial
Macのシステム環境設定のBluetoothで「M5StickC」に接続する。
ターミナルで下記のコードを打ち込み、該当のBluetooth接続デバイスのパスを取得。
ls -l /dev/tty.*
今回は/dev/tty.M5StickC-ESP32SPP
でした。
Pythonで以下のコードを動かすと、文字列が取得できるはずです。
import serial m5data = serial.Serial('/dev/tty.M5StickC-ESP32SPP',9600, timeout=3) line = m5data.readline() print(line) m5data.close()
b'Success\r\n'
これと同じ手順で、M5Stick-Cでセンサから取得した数値データなども送信できるはずです。