このチュートリアルはの一部です: ESP32-S3 RGB LEDマトリックス
ESP32-S3 RGB マトリックス モジュールを使用して楽しく実用的なアプリケーションを作成するためのクールなプロジェクト。
ESP32-S3 RGB LEDマトリックス Wi-Fi + NTPタイムクロックプロジェクト -1 基本時計
ESP32-S3インターネットクロック8×8 NeoMatrix(Wi-Fi + NTP時刻)
このプロジェクトは、ESP32-S3と8×8 RGB NeoMatrix(NeoPixel/WS2812)を小型のインターネット時計に変換します。ESP32はWi-Fiに接続し、NTPサーバーからローカル時間を同期し、その後時間をスクロール表示します。HH:MM8×8のディスプレイ全体に。

仕組み(高レベル)
1) ESP32-S3はルーターに接続します。<WiFi.h>.
NTPサーバーから時間を同期します。"time.h"そしてconfigTime().
3) 時間は次のようにフォーマットされていますHH:MM小さなテキストバッファに保存されました。
4) NeoMatrixはテキストをレンダリングし、それを8×8パネルにスクロールさせます。

RGBカラー
時計のテキストの色は、RGB(赤、緑、青)値を使用して制御されており、各色チャネルは0から255の範囲であり、異なる組み合わせによってNeoMatrix上で異なる色が作成されます。調整することによってcolor_RED,color_GREEN, とcolor_BLUE変数を使えば、時計の外観を好きな色に簡単にカスタマイズできます。特定の色の正確なRGB値を素早く見つけるには、こちらのオンラインRGBカラーピッカーツールを使用できます:RGBカラーピッカー.

使用されたライブラリ
これらはスケッチが何に依存しているかを正確に教えてくれます。

#include <WiFi.h>
#include "time.h"
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>インストールAdafruit NeoMatrixArduinoライブラリマネージャーを使用しています。また、必要な依存関係も取得します。Adafruit GFX LibraryとAdafruit NeoPixel.
必ず編集する必要がある重要なユーザー設定
1) テキストカラー (RGB)
0-255の値を使用して時計のテキスト色を設定します:
//set the color of display made of Red, Green and Blue
unsigned int color_RED = 17;
unsigned int color_GREEN = 43;
unsigned int color_BLUE = 171;これらの値はここで使用されます:
matrix.setTextColor(matrix.Color(color_RED, color_GREEN, color_BLUE));注意:すべての色を0(黒)に設定すると、テキストは見えなくなります。スケッチには安全チェックが含まれています。
// if user set all colors to 0, the display will be turned off so set it green
if (color_RED == 0 && color_GREEN == 0 && color_BLUE == 0) {
color_GREEN = 200;
}これにより、マトリックスは見えない色設定のために「死んでいる」ようには見えなくなります。
2) Wi-Fi SSIDとパスワード
これをあなたの実際のWi-Fi名とパスワードに置き換えてください:
const char* WIFI_SSID = "WiFi";
const char* WIFI_PASSWORD = "passW0rd";起動中、ESP32はシリアルモニターに接続進捗を表示し、約15秒後(30回の再試行 × 500ms)にタイムアウトします。
3) NTPサーバー
デフォルトのNTPサーバーは:
const char* ntpServer = "pool.ntp.org";そのままにしておくことができます。もしローカルサーバーを使用したい場合は、ホスト名を好みのNTPサーバーに置き換えてください。
4) タイムゾーンオフセットと夏時間オフセット
これらの二つの設定は現地時間を制御します:
// Toronto-ish: UTC-5, plus 1 hour DST
const long gmtOffset_sec = -5 * 3600; // -5 hours
const int daylightOffset_sec = 3600; // +1 hour for DST設定方法:
gmtOffset_sec= (UTCオフセット時間) × 3600。例:UTC-5 →-5*3600, UTC+2 →2*3600.daylightOffset_sec=0サマータイム調整を望まない場合、または3600あなたの地域が現在夏時間を観測している場合(+1時間)。
これらはここに適用されます:
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);表示設定
マトリックスデータピン
データピンはここで定義されています:
#define MATRIX_PIN 14別のGPIOを使用している場合は、この番号を変更して一致させてください。
NeoMatrixレイアウト + カラー順序
あなたの行列は次のように初期化されます:
Adafruit_NeoMatrix matrix(8, 8, MATRIX_PIN,
NEO_MATRIX_TOP + NEO_MATRIX_LEFT +
NEO_MATRIX_ROWS + NEO_MATRIX_PROGRESSIVE,
NEO_RGB + NEO_KHZ800);表示が「間違っている」と見える一般的な2つの理由:
- 回転 / 配線方向:テキストが逆さまやミラー表示されている場合は、調整してください。
NEO_MATRIX_*フラッグ(上/下、左/右、行/列、順次/ジグザグ)。 - 色の順序:このコードは使用します
NEO_RGB. 一部のパネルはNEO_GRB赤/緑/青が一致しない場合は、変更してください。NEO_RGB正しい順序に。
明るさ
明るさは設定されていますinitMatrix():
matrix.setBrightness(40);明るい表示のために増加させ、熱と電力消費を抑えるために減少させる。
時間がどのように生成されるかHH:MM
時計はフォーマットされた時間を6文字のバッファに保存します。
char timeText[6] = "00:00";その後updateTimeText()NTP同期のローカル時間を読み取り、テキストを書き込みます:
// Format HH:MM
snprintf(timeText, sizeof(timeText), "%02d:%02d",
timeinfo.tm_hour,
timeinfo.tm_min);これはメインループで1秒ごとに更新されます。
8×8ディスプレイでのスクロールの仕組み
8×8の行列は表示するには狭すぎます。HH:MMすぐに、スケッチがテキストをスクロールします。変更されるX位置で時間を描きます。scrollX), その後、各更新ごとに1ピクセル左に移動させます。
int16_t scrollX = 8;
const uint16_t scrollIntervalMs = 120;各スクロールステップ:
matrix.fillScreen(0);
matrix.setCursor(scrollX, 0);
matrix.print(timeText);
matrix.show();
scrollX--;テキストが左側から完全に出ると、コードはそれをリセットして右端から再び始めます。
int16_t textWidth = 30;
if (scrollX < -textWidth) {
scrollX = matrix.width();
}シリアルモニター出力(デバッグ)
このスケッチは便利なメッセージを印刷します:
- Wi-Fi接続の進行状況とIPアドレス
- 時間同期が成功したかどうか
- フォーマットされた時間文字列(例:
Time text: 14:32)
ディスプレイが空白の場合、最初に確認すべき場所はシリアルモニターで、Wi-FiとNTPが機能しているかを確認します。
プロジェクトデモンストレーション
アップロードとリセット後:
- ESP32がWi-Fiに接続します。
- 時間を同期します。
pool.ntp.org - ショー
OKマトリックスについて簡単に。 - 現在の時間を継続的にスクロールします
HH:MM
ダウンロードとリンク
この記事の下に完全なコードが提供されています。部品、ツール、およびデータシートもこの記事の下にリンクされています。
このチュートリアルはの一部です: ESP32-S3 RGB LEDマトリックス
- ESP32-S3 RGB LEDマトリックスプロジェクト(傾斜ゲーム、テキスト表示、矢印表示、WiFiデモ)
- ESP32-S3 RGB LEDマトリックスプロジェクト 2 - スクロールテキスト
- ESP32-S3 RGB LEDマトリックスプロジェクト3 - 携帯電話からのテキスト
- ESP32-S3 RGB LEDマトリックスプロジェクト4 - 傾斜ドット
- ESP32-S3 RGB LEDマトリックスプロジェクト5 - 矢印は常に上向き
- ESP32-S3 RGB LEDマトリックスプロジェクト6 - Cibleゲーム
- ESP32-S3 RGB LEDマトリックスインターネット時計プロジェクト - 2つの時計の多色時間と日付の表示
- ESP32-S3 RGB LEDマトリックスインターネット時計プロジェクト - 3つの夜間カラーと日付
- ESP32-S3 RGB LEDマトリックスインターネット時計プロジェクト - 5つの虹色
- ESP32-S3 RGB LEDマトリックスインターネット時計プロジェクト - 4つのランダムカラー
- ESP32-S3 RGB LEDマトリックステスト RGB、GRB設定用
必要かもしれないもの
-
アマゾンAmazonからESP32-S3 RGBマトリックスを購入するamzn.to
-
イーベイeBayからESP32-S3 RGBマトリックスを購入するebay.us
-
アリエクスプレスAliExpressからESP32-S3 RGBマトリックスを購入するs.click.aliexpress.com
-
アリエクスプレスAliExpressからESP32-S3 RGBマトリックスを購入する (2)s.click.aliexpress.com
リソースと参考文献
-
ビデオ
ファイル📁
フリッツィングファイル
-
esp32-S3-supermini-tht fritzing part
esp32-S3-supermini-tht.fzpz0.02 MB