ホーム » ガジェット » esp32でかっこいいポモドーロタイマーを作りたい(難航)[ESP32-S3-Knob-Touch-LCD-1.8]

esp32でかっこいいポモドーロタイマーを作りたい(難航)[ESP32-S3-Knob-Touch-LCD-1.8]


本文中にアフィリエイトリンクが含まれる場合があります。
表示が乱れた場合は再ロードをお試しください。

ポモドーロタイマーは、25分の集中と5分の休憩を繰り返すシンプルな仕組みですが、仕事や勉強の効率を大きく左右する存在です。市販の製品も数多く出ていますが、「もっとかっこよくて、自分好みにカスタマイズできるタイマーが欲しい」と思ったことはありませんか?
今回私は、ESP32-S3を搭載した金属筐体のデバイスを手に入れ、自作ポモドーロタイマーの開発に挑戦しました。見た目はスタイリッシュですが、実際に動かすまでには数々の壁があり、難航…。この記事では購入した製品のレビューから、プログラムの書き込み、動作テスト、そして私がつまずいたポイントまで、リアルな体験をまとめます。

購入した製品(ESP32-S3-Knob-Touch-LCD-1.8)

私は以前の記事でも紹介したように、ポモドーロタイマーをよく使用しています。

この紹介した商品をずっと使っていて、とてもいいのですが更なる可能性を模索するために、ポモドーロタイマーを作ってみることにしました。

少しディスプレイが小さいのが気になっているのもあります。

はじめは、使ってみたかったM5stackというものを使用していました。

しかし、おすすめのところにかっこいい商品が出てきました。

同じくesp32を使用している製品のようなので、プログラムの書き込みは問題なさそうです。

ディスプレイもwaveshareで比較的よく見る会社の製品なので情報の面も問題なさそうです。

少し高いような気もしますが、CNC削り出しのメタルな感じなのでしょうがないですかね。

公式サイトでも45ドルくらいなので、ぼったくりではなさそう。

ESP32-S3 1.8inch Knob Display Development Board, Multi-functional Knob Screen, Capacitive Touch, 2.4GHz Wi-Fi / Bluetooth Wireless Connection, CNC Metal Case | ESP32-S3-Knob-Touch-LCD-1.8

外観・質感

何もいじっていない外観や質感を見ていきます。

こんな感じのよくある軽装なパッケージで届きました。

第一印象として、マジで質感がいい。

5000円のクオリティは確実にあります。

ロータリーエンコーダを回したときのカチカチ音も回し心地もいいです。指一本でまわせる軽さ。

横面は電源スライドとUSB-Cコネクタと3.5mジャックがついています。

バイブレーションはついていますがスピーカーはついていません。

重さは約160g。

しっかりと重いです。

何も書き込んでいない状態だと時計とタイマーが動作しました。

何も書き込まなくても使えます。

プログラム

esp32 by Espressif Systems

SensorLib

lvgl

書き込みテスト

書き込みテストを行います。

ボードをESP32 S3というものに選択します。

以下を

helloと表示されれば成功です

画面表示のデモ

デモはlvglというライブラリを使用しているようです。

しかし、arduinoのライブラリをインストールして使用するとバージョンのエラーが私は起きました。

どうしても解決策がわからなかったので、demoの中に同梱されていたライブラリを使用しています。(祝日を丸1日つぶした………。)

一応こんな感じで表示できました。

写真ではかすれていますが、きちんと表示できています。

私なりのプログラム

ここからかなり難航しました。

なぜなら、ネットに情報がないし私の知識もないからです。

私がこれを作っている時は海外の技術系youtuberの方のプロジェクトも一件しか見当たりませんでした。

これから増えるかもしれないし、これを見た方はぜひ情報を公開して頂ければ嬉しいです。

私は結局どうしたかというと、デモ8(LCDテスト)とデモ4(エンコーダーテスト)のファイルを丸々利用して自分のプログラムを動作させることにしました。

デモのコードではlcd_bspのファイルから以下のようにdemo_widgetの関数を呼び出しているようでした。

それを利用して、自分のtimer_uiを呼び出すようにしました。

そのuiはpomodoro.cppに記述するような感じで準備しました。

(ファイル名更新して変わっているかもしれません。)

できあがったものとしては以下のようなものになります。

機能としては、エンコーダーで時間設定の変更可能なタイマーになっています。カウントアップもできます。

記事執筆時点では電池の表示が直せていなかったり、起動時の画面表示がおかしかったり、結局何の変哲もないタイマーになってしまっています。

しかし、実際に自分のプログラムが動作可能であることが分かったので、時間ができたりいいアイデアを思いついた時に改造していこうかなと思っています。

以下にコードを置いておきます。

N-Samurai/ESP32-S3-Knob-Touch-LCD-1.8-timer-test

まとめ

ESP32-S3搭載のノブ付きディスプレイボードを使ってポモドーロタイマーを作る挑戦は、質感や見た目の満足度は非常に高い一方で、プログラム面では想像以上に大変でした。特に LVGLライブラリのバージョン問題参考情報の少なさ がネックとなり、デモコードをベースに試行錯誤を繰り返すことになりました。

ただし、一度表示と操作が動き出すと「自分のコードでタイマーが動いている」という達成感は格別です。

現状ではまだシンプルなタイマーですが、改良を重ねれば、バッテリー表示やUIアニメーションなど「市販品を超える機能」を持ったオリジナルポモドーロタイマーに育てられそうです。

もし同じように挑戦している方がいれば、情報交換できたら嬉しいです。この記事が「ESP32でかっこいいポモドーロタイマーを作ってみたい」という方の参考になれば幸いです。

memo 

これ以下は本当に個人的なただのメモです。

ESP32-S3-Knob-Touch-LCD-1.8 - Waveshare Wiki

lvgl/lv_port_viewe_knob_15_espidf

デモ記載のピン

動作最小版

エンコーダーテスト

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です