2.8インチTFTディスプレイに画像を表示する

概要

PCのPythonスクリプトは、PCの画像をMQTTを使ってESP32に送くります。
ESP32は受け取った画像を2.8インチTFTディスプレイに表示します。
画像データは一つのメッセージで送るには大きすぎるので60分割して送ります。

環境

開発用PC(MINI2)Windows11
PythonPython 3.13.0
2.8インチTFTディスプレイFreenove FNK0103F_2P8
Arduino IDE Arduino IDE ver 2.3.4
ボードESP32 Dev Module
MQTTブローカー用PC(GMK)Windows11

プログラム一覧

TFT2p8_MQTT_show_all.inoESP32のプログラム
トピックから購読したイメージデータ表示、図形の表示、日本語文字列の表示を行う。
TFT2p8_PUB_png.pyPCの画像データをファイル指定又はリストのファイルを一定間隔でトピックに投稿する。
TFT2p8_PUB_shapes.pyリストの図形データを一定間隔でトピックに投稿する。
TFT2p8_PUB_jJapanese.py日本語の文字列をトピックに投稿する。

トピック display/shapes のJSON形式

使い方

➀ PC(GMK)を起動する。起動すればMQTTブローカーが起動する。
➁ 2.8インチTFTディスプレイを起動する。ESP32をUSB電源につなぐ、またはディスプレイの電源端子を5V電源につなぐ。
③ Pythonスクリプト(TFT2_8_PUB_png.py)を起動する。
※表示する画像はTFT2_8_PUB_png.pyのリスト(image_paths)に画像ファイルのパスを記述する。

キー意味値の形式指定可能な値 / 例備考
shp図形/文字の種類文字列"CR": 円 "RC": 長方形 "TR": 三角形 "JP": 日本語文字列 (サイズ1) "JP2": 日本語文字列 (サイズ2)このキーは必須です。
x描画開始点のX座標整数0319文字列の場合は、文字列の左上のX座標になります。
y描画開始点のY座標整数0239文字列の場合は、文字列の左上のY座標になります。
lng図形の大きさ整数20100 など円・長方形・三角形の場合に使用します。 JP, JP2では使用されません。
clr図形/文字の色文字列"BLACK", "PURPLE", "BLUE", "GREEN", "CYAN", "RED", "MAGENTA", "YELLOW", "WHITE", "ORANGE", "PINK", "VIOLET"
str表示する文字列文字列"こんにちは" などshp"JP" または "JP2" の場合にのみ使用されます。

プログラムの場所

➀Pythonスクリプト
C:\Users\%username%\Documents\012_ICTに関する備忘録\WordPress\さくらWordPressの各ページ\Freenove_ESP32_Display\src
➁Arduini IDE
C:\Users\%username%\Documents\Arduino\Freenove_ESP32_Display