LILYGO TTGOからT-Watch-2020が登場。
販売ページ「LILYGO® TTGO T-Watch-2020 ESP32 Main Chip 1.54 Inch Touch Display Programmable Wearable Environmental Interaction」
資料「https://github.com/Xinyuan-LilyGO/TTGO_TWatch_Library」
発売直後に注文入れたのですが、発送される前に値下がりしてたり、中継地点のシンガポールにつくまで1ヶ月以上音沙汰がなかったりと、約2ヶ月かかるとは思いませんでした。
中身は本体とmicroUSBケーブルだけでした。
初代T-WatchはType-Cコネクタでしたが、microUSBだとは・・・
横についているボタンを押しても電源が入らなかったので、microUSBで電源供給してみたところテストプログラムが実行されました。
とりあえずは問題ないようです。
では、開発環境を作って書き換えましょう。
ドキュメントとして「https://github.com/Xinyuan-LilyGO/TTGO_TWatch_Library」と「T-Watch Document」が書かれていますが、後者の記述は微妙なので無視ですね。
初期設定
(1) Arduino IDEをインストール
Arduino IDEをダウンロードしてインストール。うちの環境はWindows10なので Microsoft Storeからインストールしました。
(2) TTGO_TWatch_Library ライブラリをインストール
https://github.com/Xinyuan-LilyGO/TTGO_TWatch_Library の「Clone or download」から「Download Zip」を選択してzipファイルをダウンロード。
Arduino IDEの[スケッチ]-[ライブラリをインクルード]-[ZIP形式のライブラリをインストール]にてダウンロードしたzipファイルを指定してインストール。
追加が成功すると画面下部に以下が表示されます。
また「ドキュメント\Arduino\libraries」に「TTGO_TWatch_Library-master」が作成されます。
(3) Arduino IDE Boards Managerにespressif社のURLを登録
Arduino IDEの[ファイル]-[環境設定]の「追加ボードマネージャのURL」に「https://dl.espressif.com/dl/package_esp32_index.json」を追加する。
(3) T-Watchを選択する
Arduino IDEの[ツール]-[ボード]-[ESP32 Arduino]-[TTGO T-Watch]を選択する。(下の方に登録されている)
(4) スケッチ例からSimple Watchを呼び出す
Arduino IDEの[ファイル]-[スケッチ例]-[TTGO T-Watch]-[lvgl]-[Simple Watch]を選択する。
(5-1) Simple WatchをT-Watch-2020用に書き換える(2020/06/28以降のTWatch_Libraryの場合)
2020/06/28以降のlvgl 7.0.0対応のTWatch_Libraryの場合、SimpleWatchを選択した場合にタブで表示される「config.h」にて使用するT-Watchのバージョンを選択するようになった。
T-Watch-2020を使用する場合は、下記の様に「//define LILYGO_WATCH_2020_V1」のコメントを削除する。
// => Hardware select
// #define LILYGO_WATCH_2019_WITH_TOUCH // To use T-Watch2019 with touchscreen, please uncomment this line
// #define LILYGO_WATCH_2019_NO_TOUCH // To use T-Watch2019 Not touchscreen , please uncomment this line
#define LILYGO_WATCH_2020_V1 //To use T-Watch2020, please uncomment this line
// => Function select
#define LILYGO_WATCH_LVGL //To use LVGL, you need to enable the macro LVGL
#include <LilyGoWatch.h>
(5-2) Simple WatchをT-Watch-2020用に書き換える(2020/06/28より前のTWatch_Libraryの場合)
2020/06/28より前のTWatch_Libraryの場合、「SimpleWatch」のファイル冒頭に「// #define LILYGO_TWATCH_2020_V1 // If you are using T-Watch-2020 version, please open this macro definition」とあるように、T-Watch-2020を使う場合はここのコメントを外す必要がある。
/*
Copyright (c) 2019 lewis he
This is just a demonstration. Most of the functions are not implemented.
The main implementation is low-power standby.
The off-screen standby (not deep sleep) current is about 4mA.
Select standard motherboard and standard backplane for testing.
Created by Lewis he on October 10, 2019.
*/
#define LILYGO_TWATCH_2020_V1 // If you are using T-Watch-2020 version, please open this macro definition
#include <TTGO.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/timers.h"
<以下略>
こんな感じに書き換える。
(6) Simple Watchを日本時間対応にする
SimpleWatchの「gui.cpp」というタブ内で、時刻表示が「CST-8」と設定されているので、それを「JST-9」に書き換えます。
<略>
#include "FS.h"
#include "SD.h"
#define RTC_TIME_ZONE "JST-9"
LV_FONT_DECLARE(Geometr);
<略>
こんな感じです。
また、「gui.cpp」ではNTPサーバの接続先も設定されています。標準は「pool.ntp.org」ですが、日本国内の「ntp.jst.mfeed.ad.jp」(INTERNET MULTIFEED運営)や「ntp.nict.jp」(NICT運営)に書き換えてください。
(7) T-Watch-2020をパソコンにつなげます
microUSBケーブルを使ってT-Watch-2020をつなげます。
USBシリアルCP2104用のドライバがインストールされていない場合は https://t-watch-document-en.readthedocs.io/en/latest/download/index.html やCP2104の公式ページなどからSilicon Labs Virtual COM Port (VCP) Universal Driverを入手してインストールします。
(8) T-Watch-2020が接続されたCOMポートを指定します。
Arduino IDEの[ツール]-[シリアルポート]にてCOMポートを指定します。
Arduino IDEの[ツール]-[Upload Speed]は「1152000」と指定しています。この速度はT-Watchのサンプルコードのシリアル入出力で見かける速度指定なので使っています。
それ以外の項目は特に変えていません。
ちなみに「PortPop」というアプリをインストールしておくと、デバイスをつなぎWindows上でCOMポートとして認識した時点で、何番として認識されたのかを教えてくれるので便利です。
(9) コンパイルと書き込み
Arduino IDEの[スケッチ]-[マイコンボードに書き込み]を選択して、コンパイルと書き込みを実行します。
(10) 完成
WiFiをスキャンしてSSID一覧を作り、そこから接続先を選択し、キーを入力することで、ネットワークに接続し、NTPサーバから時刻同期を行う、ということが可能となりました。
Simple Watchの操作は「画面タッチ」です。横の丸ボタンは画面ON/OFFのみのようです。
また、WiFi以外に「Settings」「SDcard」「Camera」などのメニューがありますが、現状未実装です。押しても何も発生しません。
次に作るものは、と製品紹介ページに載っている下記画像を実現できるソースコードを探してみたところ・・・
「LilyGoGui」でした。
が・・・時間が変わらないのでおかしいな、とソースを見てみると、画面表示のサンプルなだけで、全てが固定表示だったという・・・
そっか・・・時計実装は自前でやらなきゃならないのか・・・
押し言えてください。
Re:ライブラリーが見つからない。
<TTGO.h> でコンパイルエラーが出ます。
TTGO.h:No such file or directory
どうしてでしょうか?
TTGO_TWatch_Library ライブラリがインストールできてないことによるエラーだと思います。
返信遅れました。 出来ました。 2020のコメントを外していなかったのでした。 いろいろサンプルを弄っている内に、今度は日本時間が出なくなってしまいました。 時計は動作してます。
ちゃんとローカルタイム表示の設定入れてます?
あと2020/06/28にTWatch_Libraryの大幅更新があったので以前のままなら入れ直した方がいいですよ
これ技適大丈夫です?商品販売ページの準拠規格にはTELECとは書いてますが。
なんなら「…という夢を見た」ということで、このコメント消してもらっても大丈夫です。
中で使っているESP32モジュールがTELEC通ってる、と言ってるみたいです。
分解して確認してないので、ほんとかどうかわからんですが