Use an ESP32 as a time server with time synchronized via the Network Time Protocol (NTP). The resulting timestamp is transmitted via the UART protocol to a second processor (ESP32-C6), which acts as a Zigbee coordinator.
This repository accompanies the article "How to create an ESP32-based NTP time server for an ESP32-C6 Zigbee coordinator" published here: https://medium.com/@androidcrypto/how-to-create-an-esp32-based-ntp-time-server-for-an-esp32-c6-zigbee-coordinator-c447eaa4f475
Even though the tutorial's title might suggest otherwise, the receiver sketch contains no code for using the ESP32-C6 as a Zigbee coordinator; instead, it focuses on the essential element: receiving UTC time via the UART interface.
The tutorial is a companion article to "How to Use the Time Cluster on an ESP32-C6 Zigbee Time Coordinator and End Device" that is published soon. In the GitHub repository of that article (https://github.com/AndroidCrypto/ESP32_C6_Zigbee_Coordinator) you will find a sample sketch that receives the NTP Time via UART and serves that time over Zigbee.
- ESP32 NTP Time Server Transmitter sketch: Esp32_NTP_Time_Sync_Uart_Transmitter_v01 folder
- ESP32-C6 NTP Time Server Receiver sketch: Esp32_C6_Time_Sync_Uart_Receiver_v01 folder
Arduino IDE Version 2.3.8 (Windows)
arduino-esp32 boards Version 3.3.10 (https://github.com/espressif/arduino-esp32) that is based on Espressif ESP32 Version 5.5.4
