Start mit ESP8266 und ESP32 mit Arduino

Beide Programmgerüste stellen 3 Funktionen zur Verfügung

  1. Verbindung zum WLAN
  2. Stellen der Uhr mit der Zeitzone Berlin
  3. Start von ArduinoOTA

ESP8266

#include <ESP8266WiFi.h>
#include <time.h>
#include <TZ.h>
#include <ArduinoOTA.h>
#include "/home/bernd/Arduino/esp/tools/wlan.inc"  // enthält #define für wlan_ssid und wlan_passwort

#define PROJEKT "TEST"
#define TIME_ZONE TZ_Europe_Berlin

uint8_t oldZeit = -1;

void AusgabeZeit() {
  time_t  zeit = time(nullptr);
  struct tm *lokalzeit = localtime(&zeit);
  if (oldZeit != lokalzeit->tm_sec) {
    oldZeit = lokalzeit->tm_sec;
    Serial.printf("Zeit: %.2d:%.2d:%.2d\n", lokalzeit->tm_hour, lokalzeit->tm_min, lokalzeit->tm_sec);
  }
}

void setup() {
  Serial.begin(115200);
  Serial.printf("Starten %s ...\n", PROJEKT);
  char host[25];
  sprintf(host, "%s-%X", PROJEKT, ESP.getChipId());
  Serial.printf("Hostname: %s\n", host);
  WiFi.mode(WIFI_STA);
  WiFi.hostname(host);
  ArduinoOTA.setHostname(host);
  WiFi.begin(wlan_ssid, wlan_passwort);
  while (WiFi.waitForConnectResult() != WL_CONNECTED) {
    Serial.println("Keine Verbindung! Neustart...");
    delay(5000);
    ESP.restart();
  }
  configTime(TIME_ZONE, "fritz.box");
  ArduinoOTA.begin();  
}

void loop() {
  ArduinoOTA.handle();
  AusgabeZeit();
  delay(100);
}

ESP32

#include <WiFi.h>
#include <time.h>
#include <esp_sntp.h>
#include <ArduinoOTA.h>
#include "/home/bernd/Arduino/esp/tools/wlan.inc"    // enthält #define für wlan_ssid und wlan_passwort

#define PROJEKT "TEST"
#define TZ_Europe_Berlin  PSTR("CET-1CEST,M3.5.0,M10.5.0/3")

uint8_t oldZeit = -1;

void AusgabeZeit() {
  time_t  zeit = time(nullptr);
  struct tm *lokalzeit = localtime(&zeit);
  if (oldZeit != lokalzeit->tm_sec) {
    oldZeit = lokalzeit->tm_sec;
    Serial.printf("Zeit: %.2d:%.2d:%.2d\n", lokalzeit->tm_hour, lokalzeit->tm_min, lokalzeit->tm_sec);
  }
}

void setup() {
  Serial.begin(115200);
  Serial.printf("Starten %s ...\n", PROJEKT);
  char host[25];
  sprintf(host, "%s-%X", PROJEKT, ESP.getEfuseMac());
  Serial.printf("Hostname: %s\n", host);
  WiFi.mode(WIFI_STA);
  WiFi.hostname(host);
  ArduinoOTA.setHostname(host);
  WiFi.begin(wlan_ssid, wlan_passwort);
  while (WiFi.waitForConnectResult() != WL_CONNECTED) {
    Serial.println("Keine Verbindung! Neustart...");
    delay(5000);
    ESP.restart();
  }
  ArduinoOTA.begin();
  setenv("TZ", TZ_Europe_Berlin, 1);
  tzset();
  sntp_setoperatingmode(SNTP_OPMODE_POLL);
  sntp_setservername(0, "fritz.box");
  sntp_init();
}

void loop() {
  ArduinoOTA.handle();
  AusgabeZeit();
  delay(100);
}