シリアル通信の準備

シリアル通信と速度

シリアル通信は、データを一本のデータ線上に「0」または「1」のバイナリ値(ビット)である一定の速度で送信します。ビットを送信する速度はbps(ビット毎秒)で表され、例えば100bpsの場合は1秒あたり100ビットに相当する速度(1ビットあたり1/100秒 = 10ミリ秒)でデータが送信されることになります。また、送信データの前後に「スタートビット」と「ストップビット」を付け、データ送信の開始と終了のタイミングを示します(このようにタイミングを示す方法を「調歩同期方式」と言います)。

図4-1 シリアル通信の配線
図4-2 シリアル通信の例

シリアル通信では、通信を行う前に、送信側と受信側とで通信速度(および通信方式に関するその他の情報)をあらかじめ決めておく必要があります。例えば、送信側が100bpsでデータを送信している時、受信側も100bpsという速度をあらかじめ知っておかないと正常な通信ができません。

図4-3 送信側と受信側の通信速度

ESP32では、シリアル通信の標準の速度は115200bpsです。一方、PlatformIOやArduinoフレームワークでは9600bpsが標準の速度となっています。そのままでは正常な通信を行うことができないので、両者の速度を揃える必要があります。

ここでは、ESP32側の115200bpsに合わせることにします。

シリアルモニタの設定

シリアル通信で受信したデータは、PlatformIOが提供している「シリアルモニタ」で受信・表示することができます。このシリアルモニタの速度を115200bpsに設定しましょう(未設定の場合は9600bpsになります)。

プロジェクトの「platformio.ini」を開き、末尾に「monitor_speed = 115200」という行を加えましょう。

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
Code language: PHP (php)

以上で設定は完了です。

前の記事

シリアル通信とは