如何使用 ESP8266 每小时向数据库发送数据?

How to send data every hour to Database using ESP8266?

我想用我的 ESP8266 将每小时数据发送到数据库。但是,我不知道如何准确地每小时发送一次数据。我不想使用延迟()。有人可以帮助我吗?

这是一个草图框架,用于使用 esp8266 从 Internet 检索时间到内部 RTC,将时间设置到 TimeLib 中并使用 TimeLib 的 minute() 函数在 hh:00 处执行某些操作。

#include <ESP8266WiFi.h>
#include <TimeLib.h>
#include <sntp.h>
#include <TZ.h>

#define TIME_ZONE TZ_Europe_London

bool doneSending = false; // flag to send only once in the first minute of the hour

void setup() {

  WiFi.begin(ssid, pass);

  configTime(TIME_ZONE, "pool.ntp.org");
  time_t now = time(nullptr);
  while (now < SECS_YR_2000) { // why until time is retrieve from Internet
    delay(100);
    now = time(nullptr);
  }
  setTime(now); // set the time into TimeLib
}

void loop() {
  if (minute() == 0) { // it is hh:00
    if (!doneSending) {
      sendData();
      doneSending= true;
    }
  } else if (doneSending) {
    doneSending = false; // reset after the :00 minute is over
  }
}