plant-raspberrypi3のブログ

ラズベリーパイ3とPythonに挑戦して、植物を愛でたり画像を加工したりします。最近はscikit-imageの勉強してます。

M5Stick-CからMacにBluetoothで文字列を送信する

M5Stick-Cについて、一年ほど前に以下の記事を書いていました。

plant-raspberrypi3.hatenablog.com

今回、M5Stick-CのデータをMacに送信し、Macで(Pythonコードで)受け取る方法がわかったので、備忘録です。

Bluetooth経由でシリアル通信で送ります。

参考にさせていただいたのは以下のページです。

qiita.com

www.sejuku.net

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でセンサから取得した数値データなども送信できるはずです。