horloge.ino

M5StickC Plus2 (M5Stack) — kit vestible "stick" con ESP32-PICO-V3-02 (SKU K016-P2) · Archivo : horloge.ino · Lenguaje : Arduino · Uso : Faire une montre connectée à l'heure réseau

El clásico del stick: hora NTP en dígitos grandes con los dos puntos parpadeando cada segundo. El ejemplo enseña configTime y el repliegue visual cuando cae el Wi-Fi.

Hardware necesario

Un M5StickC Plus2 (ESP32-PICO-V3-02, pantalla de 135×240, botones A/B/C, zumbador pasivo en G2, IR + LED rojo en G19, IMU MPU6886, micrófono, batería de 200 mAh). Un punto de acceso Wi-Fi 2,4 GHz.

Cableado

Sin cableado. La antena del stick es caprichosa en metal: prueben cerca del router.

Funcionamiento

configTime arma el SNTP del núcleo ESP32; localtime_r rellena una estructura tm cada vuelta. La pantalla solo se refresca al ritmo del delay; la fuente de hora sigue siendo el núcleo. En el Arduino IDE (paquete esp32), placa « M5StickCPlus2 »; biblioteca « M5StickCPlus2 » o M5Unified. En la v2 sin PMIC, mantenga el botón C más de 2 s para encender; HOLD (G4) mantiene la alimentación.

Para ir más lejos

Alarma + zumbador del sketch melodía, o tiempo de su servidor elegido al pie de la pantalla.

horloge.ino

// Horloge NTP : l'heure reelle sur l'ecran du stick.
#include <M5Unified.h>
#include <WiFi.h>
#include <time.h>

const char *SSID = "votre-wifi";
const char *CLE = "votre-cle";

void setup() {
  auto cfg = M5.config();
  M5.begin(cfg);
  M5.Display.setRotation(1);
  WiFi.begin(SSID, CLE);
  for (int i = 0; i < 40 && WiFi.status() != WL_CONNECTED; i++) delay(250);
  configTime(3600 * 2, 0, "pool.ntp.org", "time.google.com");  // UTC+2
}

void loop() {
  M5.update();
  struct tm t;
  time_t maintenant = time(nullptr);
  localtime_r(&maintenant, &t);

  M5.Display.setTextSize(3);
  M5.Display.setCursor(10, 30);
  M5.Display.setTextColor(t.tm_sec % 2 ? TFT_WHITE : TFT_DARKGREY);
  M5.Display.printf("%02d:%02d\n", t.tm_hour, t.tm_min);
  M5.Display.setTextSize(1);
  M5.Display.setTextColor(TFT_GREEN);
  M5.Display.setCursor(10, 100);
  M5.Display.printf("%04d-%02d-%02d  %s",
                    t.tm_year + 1900, t.tm_mon + 1, t.tm_mday,
                    WiFi.status() == WL_CONNECTED ? "wifi" : "HORS LIGNE");
  delay(200);
}

← Volver a la ficha