如何使用 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
}
}
我想用我的 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
}
}