Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

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

Тема в разделе "Другие проекты", создана пользователем voldemar2005, 13 апр 2016.

  1. RedCat

    RedCat Новичок

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

    PS Дабы два раза не вставать - уважаемый ТС, не подскажете место в коде которым зажигается точка на дисплее при подключении WiFi?
     
  2. voldemar2005

    voldemar2005 Авторитетный участник сообщества

    Сообщения:
    60
    Симпатии:
    52
    Спасибо, исправил ...
    На схеме было все правильно, ошибки были в коде, исправления:
    Код (Text):
    1. const uint8_t pin_i2c_scl  = 4;
    2. const uint8_t pin_i2c_sda  = 5;
    3. на
    4. const uint8_t pin_i2c_sda  = 4;
    5. const uint8_t pin_i2c_scl  = 5;
    6.  
    7. и
    8.  
    9. Wire.begin( pin_i2c_scl, pin_i2c_sda);
    10. на
    11. Wire.begin( pin_i2c_sda, pin_i2c_scl);
    show_time.ino 202 строка:
    Код (Text):
    1. if( str == 7 && run_serv) str32 |= 1;
    2.  
     
    Последнее редактирование: 22 янв 2017
    RedCat нравится это.
  3. RedCat

    RedCat Новичок

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

    voldemar2005 Авторитетный участник сообщества

    Сообщения:
    60
    Симпатии:
    52
    да, так и есть.
    на это есть две причины. Изучение ардуины и ESP я начал с разработки этих часов, и соответственно я тогда про эти возможности не догадывался ). И второе, а на какую ногу повесить прерывания, из свободных есть только GPIO15 а в модуле DS3231 SQW подтянут к плюсу, и в этом случае ESP может и не стартануть ...
     
  5. vvi521

    vvi521 Новичок

    Сообщения:
    2
    Симпатии:
    0
    Уважаемые, объясните бестолковому, а почему при срабатывании будильника часы не пищат, а просто щелкают? И в браузере вместо дней недели вопросительные знаки?
    Раскрыть Спойлер
    Без имени-1.jpg
     
    Последнее редактирование: 11 фев 2017
  6. Evgeniy163

    Evgeniy163 Читатель

    Сообщения:
    33
    Симпатии:
    7
    У меня тоже такое бывало при обновлении по воздуху. Вроде избавился переходом на Chrome и скетч вначале компилирую, а только потом экспортирую. Шаманство конечно, но мне помогло.
    По будильнику не подскажу, не пользуюсь.
     
  7. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.163
    Симпатии:
    226
    очевидно, вы подключили не автопищалку, а динамик или что то подобное. Буззер должен сам пищать при подаче на него напряжения.
     
    vvi521 нравится это.
  8. vvi521

    vvi521 Новичок

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

    Будем искать автопищалку. Спасибо.
     
  9. Сергей_Ф

    Сергей_Ф Moderator Команда форума

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

    vovka1021 Новичок

    Сообщения:
    12
    Симпатии:
    0
    подскажите в чем ошибка?
    ошибка (раскрыть)

    ВНИМАНИЕ: Категория '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).
    .

     
    Последнее редактирование: 3 апр 2017
  11. Evgeniy163

    Evgeniy163 Читатель

    Сообщения:
    33
    Симпатии:
    7
  12. vovka1021

    vovka1021 Новичок

    Сообщения:
    12
    Симпатии:
    0
    можете дать файлы целиком ? спасибо
     
  13. tr558

    tr558 Новичок

    Сообщения:
    2
    Симпатии:
    0
    Добрый день! Объясните пожалуйста на пальцах как настроить эти часы через web интерфейс?
     
  14. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.163
    Симпатии:
    226
    @tr558 а в чём возникла трудность?
    Подключаетесь к с сети, заходите на страничку часов и настраиваете. Первый раз на сеть часов и прописываете домашнюю сеть. Потом на адрес, который присвоен часам, и там все остальное.
     
  15. voldemar2005

    voldemar2005 Авторитетный участник сообщества

    Сообщения:
    60
    Симпатии:
    52
    Зажимаем кнопку настройки на часах на 2 сек, часы переходят в режим подключения к WiFi, если в часах нет настроек на свою беспроводную сеть, то создается точка доступа с адресом 192.168.4.1, подключаемся браузером на этот адрес и прописываем настройки своей WiFi сети. При последующих переходах в режим настройки будет производится подключения к этой точке доступа. Если часы собраны с дополнительным экраном, то на нем будете отображаться последние 2 числа IP адреса.
     
  16. tr558

    tr558 Новичок

    Сообщения:
    2
    Симпатии:
    0
    Сергей_Ф, voldemar2005, спасибо, теперь разобрался.
    А как подключить DS1307 вместо DS3231?
     
  17. voldemar2005

    voldemar2005 Авторитетный участник сообщества

    Сообщения:
    60
    Симпатии:
    52
    Подключается он точно также по шине I2C, а вот программу надо будет переделывать. Если есть хороший интернет, то можно вообще обойтись без этого модуля (собрать с параметром NO_DS3231), время будет периодически синхронизироваться с интернетом.
     
  18. vovka1021

    vovka1021 Новичок

    Сообщения:
    12
    Симпатии:
    0
    не пойму в чем ошибка. не может скомпилироваться
    ошибка (раскрыть)

    Код (Text):
    1.  
    2. C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino: In function 'void loop()':
    3.  
    4. Clock5web:331: error: 'DEBUG_MSG' was not declared in this scope
    5.  
    6.      DEBUG_MSG( "restart ...");
    7.  
    8.                              ^
    9.  
    10. C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino: In function 'void check_sensor()':
    11.  
    12. Clock5web:386: error: call of overloaded 'set_brightness()' is ambiguous
    13.  
    14.      set_brightness();
    15.  
    16.                     ^
    17.  
    18. C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino:386:20: note: candidates are:
    19.  
    20. In file included from C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino:32:0:
    21.  
    22. sketch\Clock5web.h:43:6: note: void set_brightness(int)
    23.  
    24.  void set_brightness(int foto = 0);
    25.  
    26.       ^
    27.  
    28. C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino:410:6: note: void set_brightness()
    29.  
    30.  void set_brightness()
    31.  
    32.       ^
    33.  
    34. C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino: In function 'void set_brightness()':
    35.  
    36. Clock5web:428: error: 'DEBUG_MSG' was not declared in this scope
    37.  
    38.        DEBUG_MSG( "i=%d, foto=%d, level=%d\n", i, foto, level);
    39.  
    40.                                                              ^
    41.  
    42. Clock5web:451: error: 'DEBUG_MSG' was not declared in this scope
    43.  
    44.      DEBUG_MSG( "brightness: %d\n", cur_brightness);
    45.  
    46.                                                   ^
    47.  
    48. C:\Users\V.S.V\Desktop\Clock5web\ds3231.ino: In function 'void get_ds3231()':
    49.  
    50. ds3231:24: error: 'DEBUG_MSG' was not declared in this scope
    51.  
    52.      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));
    53.  
    54.                                                                                                                                                                                                               ^
    55.  
    56. C:\Users\V.S.V\Desktop\Clock5web\eeprom.ino: In function 'void read_settings_ESP()':
    57.  
    58. eeprom:14: error: call of overloaded 'set_brightness()' is ambiguous
    59.  
    60.      set_brightness();
    61.  
    62.                     ^
    63.  
    64. C:\Users\V.S.V\Desktop\Clock5web\eeprom.ino:14:20: note: candidates are:
    65.  
    66. In file included from C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino:32:0:
    67.  
    68. sketch\Clock5web.h:43:6: note: void set_brightness(int)
    69.  
    70.  void set_brightness(int foto = 0);
    71.  
    72.       ^
    73.  
    74. C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino:410:6: note: void set_brightness()
    75.  
    76.  void set_brightness()
    77.  
    78.       ^
    79.  
    80. C:\Users\V.S.V\Desktop\Clock5web\eeprom.ino: In function 'void clear_data()':
    81.  
    82. eeprom:43: error: 'DEBUG_MSG' was not declared in this scope
    83.  
    84.    DEBUG_MSG("EEPROM set default\n");
    85.  
    86.                                    ^
    87.  
    88. C:\Users\V.S.V\Desktop\Clock5web\max7219.ino: In function 'void max_init()':
    89.  
    90. max7219:19: error: call of overloaded 'set_brightness()' is ambiguous
    91.  
    92.    set_brightness();
    93.  
    94.                   ^
    95.  
    96. C:\Users\V.S.V\Desktop\Clock5web\max7219.ino:19:18: note: candidates are:
    97.  
    98. In file included from C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino:32:0:
    99.  
    100. sketch\Clock5web.h:43:6: note: void set_brightness(int)
    101.  
    102.  void set_brightness(int foto = 0);
    103.  
    104.       ^
    105.  
    106. C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino:410:6: note: void set_brightness()
    107.  
    108.  void set_brightness()
    109.  
    110.       ^
    111.  
    112. C:\Users\V.S.V\Desktop\Clock5web\ntp.ino: In function 'bool get_ntp_time()':
    113.  
    114. ntp:6: error: 'DEBUG_MSG' was not declared in this scope
    115.  
    116.    DEBUG_MSG("Starting UDP");
    117.  
    118.                            ^
    119.  
    120. C:\Users\V.S.V\Desktop\Clock5web\ntp.ino: In function 'time_t getNtpTime(IPAddress&)':
    121.  
    122. ntp:38: error: 'DEBUG_MSG' was not declared in this scope
    123.  
    124.    DEBUG_MSG( "Transmit NTP Request to ip: %d.%d.%d.%d\n", timeServerIP[0], timeServerIP[1], timeServerIP[2], timeServerIP[3]);
    125.  
    126.                                                                                                                              ^
    127.  
    128. C:\Users\V.S.V\Desktop\Clock5web\show_time.ino: In function 'void show_time(bool)':
    129.  
    130. C:\Users\V.S.V\Desktop\Clock5web\show_time.ino:7:8: warning: unused variable 'out' [-Wunused-variable]
    131.  
    132.    byte out;
    133.  
    134.         ^
    135.  
    136. C:\Users\V.S.V\Desktop\Clock5web\web.ino: In function 'void handleRoot()':
    137.  
    138. web:210: error: too few arguments to function 'String html_begin_body(bool)'
    139.  
    140.    str += html_begin_body();
    141.  
    142.                           ^
    143.  
    144. C:\Users\V.S.V\Desktop\Clock5web\web.ino:179:8: note: declared here
    145.  
    146.  String html_begin_body(bool show_foto)
    147.  
    148.         ^
    149.  
    150. C:\Users\V.S.V\Desktop\Clock5web\web.ino: In function 'void handleTime()':
    151.  
    152. web:264: error: too few arguments to function 'String html_begin_body(bool)'
    153.  
    154.    str += html_begin_body();
    155.  
    156.                           ^
    157.  
    158. C:\Users\V.S.V\Desktop\Clock5web\web.ino:179:8: note: declared here
    159.  
    160.  String html_begin_body(bool show_foto)
    161.  
    162.         ^
    163.  
    164. C:\Users\V.S.V\Desktop\Clock5web\web.ino: In function 'void handleWiFi()':
    165.  
    166. web:392: error: too few arguments to function 'String html_begin_body(bool)'
    167.  
    168.    str += html_begin_body();
    169.  
    170.                           ^
    171.  
    172. C:\Users\V.S.V\Desktop\Clock5web\web.ino:179:8: note: declared here
    173.  
    174.  String html_begin_body(bool show_foto)
    175.  
    176.         ^
    177.  
    178. C:\Users\V.S.V\Desktop\Clock5web\web.ino: In function 'void handleSetParam()':
    179.  
    180. web:612: error: call of overloaded 'set_brightness()' is ambiguous
    181.  
    182.    set_brightness();
    183.  
    184.                   ^
    185.  
    186. C:\Users\V.S.V\Desktop\Clock5web\web.ino:612:18: note: candidates are:
    187.  
    188. In file included from C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino:32:0:
    189.  
    190. sketch\Clock5web.h:43:6: note: void set_brightness(int)
    191.  
    192.  void set_brightness(int foto = 0);
    193.  
    194.       ^
    195.  
    196. C:\Users\V.S.V\Desktop\Clock5web\Clock5web.ino:410:6: note: void set_brightness()
    197.  
    198.  void set_brightness()
    199.  
    200.       ^
    201.  
    202. C:\Users\V.S.V\Desktop\Clock5web\wifi.ino: In function 'void sta_init()':
    203.  
    204. wifi:6: error: 'DEBUG_MSG' was not declared in this scope
    205.  
    206.      DEBUG_MSG("STA client '%s' started ...\n", eeprom_data.sta_ssid);
    207.  
    208.                                                                     ^
    209.  
    210. C:\Users\V.S.V\Desktop\Clock5web\wifi.ino: In function 'bool sta_check()':
    211.  
    212. wifi:24: error: 'DEBUG_MSG' was not declared in this scope
    213.  
    214.      DEBUG_MSG( "Local IP: %d.%d.%d.%d\n", localIP[0], localIP[1], localIP[2], localIP[3]);
    215.  
    216.                                                                                          ^
    217.  
    218. C:\Users\V.S.V\Desktop\Clock5web\wifi.ino: In function 'void ap_init()':
    219.  
    220. wifi:33: error: 'DEBUG_MSG' was not declared in this scope
    221.  
    222.    DEBUG_MSG("softAP '%s' started ...\n", eeprom_data.ap_ssid);
    223.  
    224.                                                              ^
    225.  
    226. C:\Users\V.S.V\Desktop\Clock5web\wifi.ino: In function 'void check_serv()':
    227.  
    228. wifi:106: error: 'DEBUG_MSG' was not declared in this scope
    229.  
    230.        DEBUG_MSG( "stop_serv");
    231.  
    232.                              ^
    233.  
    234. exit status 1
    235. 'DEBUG_MSG' was not declared in this scope
    236.  
     
    Последнее редактирование: 30 апр 2017
  19. voldemar2005

    voldemar2005 Авторитетный участник сообщества

    Сообщения:
    60
    Симпатии:
    52
    обновил архив, проверьте сейчас. И папку с исходниками (Clock5web) надо положить в место которое указано в настройках Arduino IDE "Размещение папки скетчей".
     
  20. Pilnikov

    Pilnikov Активный участник сообщества

    Сообщения:
    300
    Симпатии:
    26
    voldemar2005,
    Спасибо огромное вам за труды, я взял когда то давно ваш проект за основу - получилось так
    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"
    Сделать часы "говорящими"
     
    Последнее редактирование: 4 май 2017
    SES нравится это.

Поделиться этой страницей