• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Простые WiFi часы

RedCat

New member
Всем доброго дня!
Переносил вот часики из макетки в продашн так сказать, столкнулся с неприятностью, хочу предупредить - пару часов метаний позволит избежать.
Касаемо подключения DS3231. На принципиальной схеме указано подключение SDA к GPIO4, а SCL к GPIO5 соответственно. На макетке так и расключал по схеме. При переносе в корпус и распайке смотрел в код Clock5web.ino
Код:
// ----------------------------------- I2C
#ifndef NO_DS3231
const uint8_t pin_i2c_scl  = 4;
const uint8_t pin_i2c_sda  = 5;
Подключил, имел интересный вечер с постоянной и никак неизменяемой датой 17.01.2063 на DS3231 o_O.

PS Дабы два раза не вставать - уважаемый ТС, не подскажете место в коде которым зажигается точка на дисплее при подключении WiFi?
 
Касаемо подключения DS3231
Спасибо, исправил ...
На схеме было все правильно, ошибки были в коде, исправления:
Код:
const uint8_t pin_i2c_scl  = 4;
const uint8_t pin_i2c_sda  = 5;
на
const uint8_t pin_i2c_sda  = 4;
const uint8_t pin_i2c_scl  = 5;

и

Wire.begin( pin_i2c_scl, pin_i2c_sda);
на
Wire.begin( pin_i2c_sda, pin_i2c_scl);
подскажете место в коде
show_time.ino 202 строка:
Код:
if( str == 7 && run_serv) str32 |= 1;
 
Последнее редактирование:

RedCat

New member
Таки двухнедельный опыт боевой эксплуатации показал крайнюю полезность изделия. ;)
Ночи у нас стоят холодные и одним глазом ночью смотреть время и мороз на улице весьма информативно.
Появились некоторые вопросы. Опрос уличного датчика сделал раз в 15 мин, через millis(). Но как-то за две недели эти миллисекунды опаздывают минуты на три. Я правильно понимаю что эти millis() отмеряются внутренним таймером камня считающем именно миллисекунды, а сам кристалл мы с успехом поправляем на правильное время по NTP?
И еще вопрос к ТС. Вот здесь люди пишут что раз уж так сложилось что у вас в проекте есть DS3231 то кошерно брать секундные тики с ее ноги SQW и использовать прерывания. Почему не пошли по этому пути?
 
millis() отмеряются внутренним таймером камня считающем именно миллисекунды, а сам кристалл мы с успехом поправляем на правильное время по NTP?
да, так и есть.
брать секундные тики с ее ноги SQW и использовать прерывания
на это есть две причины. Изучение ардуины и ESP я начал с разработки этих часов, и соответственно я тогда про эти возможности не догадывался ). И второе, а на какую ногу повесить прерывания, из свободных есть только GPIO15 а в модуле DS3231 SQW подтянут к плюсу, и в этом случае ESP может и не стартануть ...
 

vvi521

New member
Уважаемые, объясните бестолковому, а почему при срабатывании будильника часы не пищат, а просто щелкают? И в браузере вместо дней недели вопросительные знаки?
Без имени-1.jpg
 
Последнее редактирование:

Evgeniy163

New member
И в браузере вместо дней недели вопросительные знаки?
У меня тоже такое бывало при обновлении по воздуху. Вроде избавился переходом на Chrome и скетч вначале компилирую, а только потом экспортирую. Шаманство конечно, но мне помогло.
По будильнику не подскажу, не пользуюсь.
 

Сергей_Ф

Moderator
Команда форума
почему при срабатывании будильника часы не пищат, а просто щелкают?
очевидно, вы подключили не автопищалку, а динамик или что то подобное. Буззер должен сам пищать при подаче на него напряжения.
 

vvi521

New member
очевидно, вы подключили не автопищалку, а динамик или что то подобное. Буззер должен сам пищать при подаче на него напряжения.
Вы совершенно правы, у меня обычный динамик.
Без имени-2.jpg
Будем искать автопищалку. Спасибо.
 

Сергей_Ф

Moderator
Команда форума
@voldemar2005 есть проблема с будильником при работе без rtc. Синхронизация по сети срабатывает каждый час. Будильник часто ставят на ровное число часов. Во время синхронизации, мало того что сбиваются такты у мелодии, так ещё до момента отключения сети невозможно выключить будильник. Кнопка просто не работает по условиям внутри скетча. Можно сделать приоритет отключения будильника? Ну или сделать синхронизацию настраимовой не раз в час, а реже. Уход не такой уж и большой во встроенных часах.
 

vovka1021

New member
подскажите в чем ошибка?
ВНИМАНИЕ: Категория 'Sensor Control' в библиотеке MD_REncoder не является действительной. Установка на 'Uncategorized'
In file included from C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino:28:0:

C:\Users\V.S.V\Documents\Arduino\libraries\OneWire/OneWire.h:108:2: error: #error "Please define I/O register types here"

#error "Please define I/O register types here"

^

Несколько библиотек найдено для "OneWire.h"
Используется: C:\Users\V.S.V\Documents\Arduino\libraries\OneWire
Не используется: C:\Users\V.S.V\Documents\Arduino\libraries\OneWire-master
exit status 1
Ошибка компиляции для платы NodeMCU 1.0 (ESP-12E Module).
.
 
Последнее редактирование:

tr558

New member
Добрый день! Объясните пожалуйста на пальцах как настроить эти часы через web интерфейс?
 

Сергей_Ф

Moderator
Команда форума
@tr558 а в чём возникла трудность?
Подключаетесь к с сети, заходите на страничку часов и настраиваете. Первый раз на сеть часов и прописываете домашнюю сеть. Потом на адрес, который присвоен часам, и там все остальное.
 
Объясните пожалуйста на пальцах как настроить эти часы через web интерфейс?
Зажимаем кнопку настройки на часах на 2 сек, часы переходят в режим подключения к WiFi, если в часах нет настроек на свою беспроводную сеть, то создается точка доступа с адресом 192.168.4.1, подключаемся браузером на этот адрес и прописываем настройки своей WiFi сети. При последующих переходах в режим настройки будет производится подключения к этой точке доступа. Если часы собраны с дополнительным экраном, то на нем будете отображаться последние 2 числа IP адреса.
 
А как подключить DS1307 вместо DS3231?
Подключается он точно также по шине I2C, а вот программу надо будет переделывать. Если есть хороший интернет, то можно вообще обойтись без этого модуля (собрать с параметром NO_DS3231), время будет периодически синхронизироваться с интернетом.
 

vovka1021

New member
не пойму в чем ошибка. не может скомпилироваться
Код:
C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino: In function 'void loop()':

Clock5web:331: error: 'DEBUG_MSG' was not declared in this scope

     DEBUG_MSG( "restart ...");

                             ^

C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino: In function 'void check_sensor()':

Clock5web:386: error: call of overloaded 'set_brightness()' is ambiguous

     set_brightness();

                    ^

C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino:386:20: note: candidates are:

In file included from C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino:32:0:

sketch\Clock5web.h:43:6: note: void set_brightness(int)

 void set_brightness(int foto = 0);

      ^

C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino:410:6: note: void set_brightness()

 void set_brightness()

      ^

C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino: In function 'void set_brightness()':

Clock5web:428: error: 'DEBUG_MSG' was not declared in this scope

       DEBUG_MSG( "i=%d, foto=%d, level=%d\n", i, foto, level);

                                                             ^

Clock5web:451: error: 'DEBUG_MSG' was not declared in this scope

     DEBUG_MSG( "brightness: %d\n", cur_brightness);

                                                  ^

C:\Users\V.S.V\Desktop\Clock5web\ds3231.ino: In function 'void get_ds3231()':

ds3231:24: error: 'DEBUG_MSG' was not declared in this scope

     DEBUG_MSG( "DS3231 time = %d %02d.%02d.%04d %02d:%02d:%02d\n", weekday(ds3231_time), day(ds3231_time), month(ds3231_time), year(ds3231_time), hour(ds3231_time), minute(ds3231_time), second(ds3231_time));

                                                                                                                                                                                                              ^

C:\Users\V.S.V\Desktop\Clock5web\eeprom.ino: In function 'void read_settings_ESP()':

eeprom:14: error: call of overloaded 'set_brightness()' is ambiguous

     set_brightness();

                    ^

C:\Users\V.S.V\Desktop\Clock5web\eeprom.ino:14:20: note: candidates are:

In file included from C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino:32:0:

sketch\Clock5web.h:43:6: note: void set_brightness(int)

 void set_brightness(int foto = 0);

      ^

C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino:410:6: note: void set_brightness()

 void set_brightness()

      ^

C:\Users\V.S.V\Desktop\Clock5web\eeprom.ino: In function 'void clear_data()':

eeprom:43: error: 'DEBUG_MSG' was not declared in this scope

   DEBUG_MSG("EEPROM set default\n");

                                   ^

C:\Users\V.S.V\Desktop\Clock5web\max7219.ino: In function 'void max_init()':

max7219:19: error: call of overloaded 'set_brightness()' is ambiguous

   set_brightness();

                  ^

C:\Users\V.S.V\Desktop\Clock5web\max7219.ino:19:18: note: candidates are:

In file included from C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino:32:0:

sketch\Clock5web.h:43:6: note: void set_brightness(int)

 void set_brightness(int foto = 0);

      ^

C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino:410:6: note: void set_brightness()

 void set_brightness()

      ^

C:\Users\V.S.V\Desktop\Clock5web\ntp.ino: In function 'bool get_ntp_time()':

ntp:6: error: 'DEBUG_MSG' was not declared in this scope

   DEBUG_MSG("Starting UDP");

                           ^

C:\Users\V.S.V\Desktop\Clock5web\ntp.ino: In function 'time_t getNtpTime(IPAddress&)':

ntp:38: error: 'DEBUG_MSG' was not declared in this scope

   DEBUG_MSG( "Transmit NTP Request to ip: %d.%d.%d.%d\n", timeServerIP[0], timeServerIP[1], timeServerIP[2], timeServerIP[3]);

                                                                                                                             ^

C:\Users\V.S.V\Desktop\Clock5web\show_time.ino: In function 'void show_time(bool)':

C:\Users\V.S.V\Desktop\Clock5web\show_time.ino:7:8: warning: unused variable 'out' [-Wunused-variable]

   byte out;

        ^

C:\Users\V.S.V\Desktop\Clock5web\web.ino: In function 'void handleRoot()':

web:210: error: too few arguments to function 'String html_begin_body(bool)'

   str += html_begin_body();

                          ^

C:\Users\V.S.V\Desktop\Clock5web\web.ino:179:8: note: declared here

 String html_begin_body(bool show_foto)

        ^

C:\Users\V.S.V\Desktop\Clock5web\web.ino: In function 'void handleTime()':

web:264: error: too few arguments to function 'String html_begin_body(bool)'

   str += html_begin_body();

                          ^

C:\Users\V.S.V\Desktop\Clock5web\web.ino:179:8: note: declared here

 String html_begin_body(bool show_foto)

        ^

C:\Users\V.S.V\Desktop\Clock5web\web.ino: In function 'void handleWiFi()':

web:392: error: too few arguments to function 'String html_begin_body(bool)'

   str += html_begin_body();

                          ^

C:\Users\V.S.V\Desktop\Clock5web\web.ino:179:8: note: declared here

 String html_begin_body(bool show_foto)

        ^

C:\Users\V.S.V\Desktop\Clock5web\web.ino: In function 'void handleSetParam()':

web:612: error: call of overloaded 'set_brightness()' is ambiguous

   set_brightness();

                  ^

C:\Users\V.S.V\Desktop\Clock5web\web.ino:612:18: note: candidates are:

In file included from C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino:32:0:

sketch\Clock5web.h:43:6: note: void set_brightness(int)

 void set_brightness(int foto = 0);

      ^

C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino:410:6: note: void set_brightness()

 void set_brightness()

      ^

C:\Users\V.S.V\Desktop\Clock5web\wifi.ino: In function 'void sta_init()':

wifi:6: error: 'DEBUG_MSG' was not declared in this scope

     DEBUG_MSG("STA client '%s' started ...\n", eeprom_data.sta_ssid);

                                                                    ^

C:\Users\V.S.V\Desktop\Clock5web\wifi.ino: In function 'bool sta_check()':

wifi:24: error: 'DEBUG_MSG' was not declared in this scope

     DEBUG_MSG( "Local IP: %d.%d.%d.%d\n", localIP[0], localIP[1], localIP[2], localIP[3]);

                                                                                         ^

C:\Users\V.S.V\Desktop\Clock5web\wifi.ino: In function 'void ap_init()':

wifi:33: error: 'DEBUG_MSG' was not declared in this scope

   DEBUG_MSG("softAP '%s' started ...\n", eeprom_data.ap_ssid);

                                                             ^

C:\Users\V.S.V\Desktop\Clock5web\wifi.ino: In function 'void check_serv()':

wifi:106: error: 'DEBUG_MSG' was not declared in this scope

       DEBUG_MSG( "stop_serv");

                             ^

exit status 1
'DEBUG_MSG' was not declared in this scope
 
Последнее редактирование:

Pilnikov

Active member
voldemar2005,
обновил архив, проверьте сейчас. И папку с исходниками (Clock5web) надо положить в место которое указано в настройках Arduino IDE "Размещение папки скетчей".
Спасибо огромное вам за труды, я взял когда то давно ваш проект за основу - получилось так
https://esp8266.ru/forum/threads/nuzhna-pomosch-s-led-matricej-esp-arduino.2408/#post-35649

Кино
V_20170504_161319[1].mp4
V_20170504_223125[1].mp4
V_20170504_223306[1].mp4
V_20170504_223456[1].mp4

Это все одна и та же прошивка

Мои часики поддерживают тоже кучу всего.
Предлагаю объединить усилия для совместного развития проекта.
ToDo:
Доделать поддержку датчиков dht11(22), ds18b20
Сделать элемент управления "Календарь" дабы выводить в бегущую строку события в определенные дни недели (дни рождения праздники и т.д.)
Прицепить к будильникам интернет радио (посредством такого шилда НОВЫЙ VS1053B VS1053 MP3 Музыка щит совета Модуль с TF слот для карты Для Arduino UNO R3 купить на AliExpress)
Заменить мелодии будильника на "нормальные мп3"
Сделать часы "говорящими"
 
Последнее редактирование:
  • Like
Реакции: SES
Сверху Снизу