NTP client as a simple clock using ESP32-WROOM-32

<< Introduction in Japanese >>

初めて ESP32 に触れた夏がそろそろ終わろうとする今、突然に長期安倍政権が終わりを告げた。そして日本は新しい政治リーダーを戴いて秋を迎える。中国からやって来た ESP32 を指で弾いてみると、虚ろで鈍い音がする。

さて、これまで PIC を使って実験してきた事を、ESP32 に置き換えて再実験してみることにする。今回の実験は卓上時計である。システムの初期化時に NTP server から現在時刻を取得して、そこからはタイマーによる割り込みで1秒を刻んでは、時間を液晶表示器に表示させる。

時刻の補正は、毎日深夜零時に自動でシステムを再起動させる事で済ませた。勿論、随時リセット・ボタンで再起動させる事もできる。

The ESP32 board in my page on Aug. 16, 2020 is working as a simple clock.

The NTP server of National Institute of Information and Communications Technology is used in this project and Coordinated Universal Time (UTC) is converted to Japan Standard Time (JST: UTC + 9 hours).

An interruption of every one second is generated by the timer module, which increments the timestamp obtained from the NTP server.



<< Sample sketch of the NTP client >>

(Compiled by the Arduino IDE with the Arduino Core for the ESP32)

const char* ssid = “**********”;     // Fill in your ssid. //

const char* password = “**********”;      // Fill in your password. //



<< Operation of the NTP client >>

The current time can be automatically obtained from the NTP server on the process of the setup() function.

At every 12:00 a.m., the ESP32 is reset to get the current time.

Pulling down the EN-pin can also reset the ESP32.


<< Summary in Japanese >>

LCD のシリアル制御が不安定なので、長めの遅延関数を間置している。

本来 NTP (Network Time Protocol) はネットワークに接続された機器の時刻同期に開発されたもので、 目覚まし時計や腕時計にはやはり電波時計である。