Метод должен запускаться каждый час
У меня есть метод. Мне нужно запускать его каждый час.(Задание Cron)
Я имею в виду;
10.00 вечера -> Триггер
11.00 вечера -> Триггер
12.00 вечера ->Триггер
...
...
Плата: Arduino Uno + Wifi Shield.
Проект Кодекса
void setup() {
}
void onTimeChanged() {
runTask();
}
void loop() {
}
/*run this method when:
13.00 p.m
14.00 p.m
15.00 p.m
........
........ */
void runTask() {
}
@Snefru Clone, 👍2
Обсуждение1 ответ
Лучший ответ:
У Arduino Uno нет часов реального времени, но вы можете связаться с сервером времени NTP в Интернете, используя упомянутый вами WiFi shield, и получить оттуда время, а затем отслеживать время с помощью millis (). Время от времени вам следует корректировать время с помощью нового вызова сервера времени NTP, потому что часы Arduino не настолько точны.
Самым простым способом было бы получить модуль RTC (я думаю, что наиболее точным и доступным на данный момент является DS3231). У них есть гнездо для резервного аккумулятора, поэтому они сохраняют время даже при отсутствии источника питания.
Подключите модуль с помощью I2C к вашему Arduino, установите соответствующую библиотеку и запрашивайте ее каждую секунду (или независимо от того, насколько точной вы хотите быть) в вашем loop ()
для точного времени.
Эти модули обычно также имеют вывод прерывания и могут генерировать прерывание при достижении аварийного времени; вы также можете использовать это.
FWIW, [RTClib](https://github.com/adafruit/RTClib ) поддерживает только аварийные сигналы [с DS3231] (https://adafruit.github.io/RTClib/html/class_r_t_c___d_s3231.html ). [Запрос на извлечение] (https://github.com/adafruit/RTClib/pull/212 ) ведется работа по добавлению поддержки аварийных сигналов PCF8563. Однако могут быть и другие альтернативы RTC / library., @Edgar Bonet
- Как использовать SPI на Arduino?
- Библиотека DHT.h не импортируется
- Светодиоды: разница между общим анодом и общим катодом
- Как повторить кусок кода
- Почему эта программа на C++ не может прочитать Serial.write() моего arduino?
- Как изменить переменную при нажатии кнопки, подключенной к контакту 2
- Отображение двоичных данных на светодиодах
- Корпус кнопки и переключателя
Непонятно, чего вы хотите. Дикое предположение: вы хотите, чтобы Arduino подключался к серверу, когда меняется часовой пояс, в котором находится путешествующий Arduino?, @ocrdu
Вы хотите, чтобы Arduino определял, в каком часовом поясе он находится (по геолокации IP или GPS), или вы хотите, чтобы Arduino определял, когда начинается или заканчивается местное летнее время? Существуют библиотеки, доступные и для того, и для другого., @StarCat
Я просто хочу создавать рабочие места в cron. Например; 10.00 pm, 11.00 pm, 12.00pm -> Метод выполнения, @Snefru Clone
Это больше не сбивает с толку. Я отредактировал вопрос., @Snefru Clone
Вам нужно, чтобы задача запускалась в точное время (xx:00, полный час с нулевыми минутами), или вас интересует только _period_, равный одному часу (например, в 10:23, 11:23, 12:23, 13:23...). В первом случае, есть ли у вас RTC? GPS-приемник? Модуль Wi-Fi?, @Edgar Bonet
Мне нужно сработать в ** точное ** время. У меня нет ни одного из них. Если нужно, я могу их купить., @Snefru Clone