Часы на esp8266 и max7219 + android управление

Тема в разделе "Глядите, что я сделал", создана пользователем IvanUA, 28 авг 2017.

?

Вы повторили это проект?

  1. Нет (просто ознакомился)

    35 голосов
    13,2%
  2. Да, один раз (попробовал)

    111 голосов
    41,9%
  3. Да, не однократно

    123 голосов
    46,4%
Можно выбрать сразу несколько вариантов.
  1. gtsky

    gtsky Гик

    )) Я только сегодня купил Брус лавочнй липовый)) замастырил такуюже))
     
  2. jgupdimon

    jgupdimon Гик

    Прекрасно смотрится в кабель канале 60х40, обернутом винилом. Много раз повторял.
     
  3. jgupdimon

    jgupdimon Гик

    Чуть позже, часики в бане тикают.
     
  4. Slaiterx

    Slaiterx Гик

    Хочу выводить памятные даты и праздники зделал так все работает показывает каждый час но как прописать часы показа чтобы допустим ночью не показывало а только днем
    Код (C++):
      if(hour == 22 && minute == 00) {
        printStringWithShift("       22:30      \200\200\200   Спокойной ночи   \200\200\200", speedLine);
        return;
       }
      if(hour == 23 && minute == 00) {
        printStringWithShift("       23:00      \200\200\200   Спите пожауйста уже   \200\200\200", speedLine);
        return;
      }
      if(hour == 8 && minute == 00) {
        printStringWithShift("       08:00      \200\200\200   Доброе утро   \200\200\200", speedLine);
        return;
      }

      if(hour == 9 && minute == 00) {
        printStringWithShift("       09:00      \200\200\200   Хватит спать вставайте уже   \200\200\200", speedLine);
        return;
      }
      if(month == 12 && day == 31 && minute == 0) {
        printStringWithShift("*** С Новым годом !!! ***", speedLine);
        return;
      }
      if(month == 1 && day == 1 && minute == 0) {
        printStringWithShift("*** С Новым годом !!! ***", speedLine);
        return;
    нужно как то создать массив там типо hour == {9,10,11,12,13}но как это сделать не знаю
     
  5. jgupdimon

    jgupdimon Гик

    if(month == 12 && day == 31 && hour == 23 && minute == 58) {
    printStringWithShift("*** С Новым годом !!! ***", speedLine);
    return;
    Как то так наверное
     
  6. Slaiterx

    Slaiterx Гик

    это понятно что так я хочу не один раз в сутки в определенный час показывать а в определенные часы в сутках допустим хочу я какоето сообщение выводить каждый час начиная с восьми утра и заканчивая десятью вечера
     
  7. jgupdimon

    jgupdimon Гик

    Так повтори строки с другим временем и все.
    if(month == 12 && day == 31 && hour == 20 && minute == 00) {
    printStringWithShift("*** С Новым годом !!! ***", speedLine);
    return;
    Во сколько повторять во столько и ставь.
     
  8. Slaiterx

    Slaiterx Гик

    Ну да просто но надо правильно
     
  9. jgupdimon

    jgupdimon Гик

    Задай вопрос Ивану, там наверное нужен цикл по времени.
     
  10. gtsky

    gtsky Гик

    канечно интересней )) на 100 %
    Скажите я вот наше в коде интересный блок
    if(hour == 22 && minute == 55) { // якщо наш час - то іде повідомлення для коханої
    tone(buzzerPin, 2000, 40);
    delay(200);
    tone(buzzerPin, 2000, 40);
    delay(200);
    tone(buzzerPin, 2000, 40);
    printStringWithShift((" 22:55 \200\200\200 " + tMes + " \200\200\200").c_str(), timeScrollSpeed);
    return;
    как реализовать его вывод по времени редактирую в веб морде?
     
  11. IvanUA

    IvanUA Гуру

    Если хотите что бы какое то событие выводилось в определенный день и к примеру в определенный период времени, то используйте следующие условия....
    Код (C++):
    if((month == 12 && day == 31 && minute == 00 (hour >7  && hour <= 20)) {
    ну и так далее....
    Если вы хотите что бы значения (месяц, день или часы) были изменяемые, то для них надо организовать переменные....
    К примеру вы хотите что бы была возможность самому задавать месяц... то ваше выражение будет выглядеть к примеру так...
    Код (C++):
    byte monthZnamenetelny = 3;   // в начале кода обязательно надо объявить переменную
    далее где то в лупе...
    Код (C++):
    if((month == monthZnamenetelny && day == 31 && minute == 00 (hour >7 && hour <= 20)) {
    если ничего не менять то 31 числа третьего месяца с 8 утра до 20 вечера в 00 минут будет срабатывать это событие...
    Как же теперь нам работать с переменной...
    В первую очередь надо позаботится о том что бы значение этой переменной сохранялось в памяти ЕСП....
    В коде ищем закладку FC там есть две функции записи переменных в память и чтения из памяти в переменные, по аналогии дописуете свою переменную.
    Потом на странице которая вам нравится, к примеру на странице настройки часов, смотрите как меняются другие переменные и по аналогии делаете также но уже для своей переменной типа monthZnamenetelny.
    Теперь у вас на странице будет как бы возможность указать значение вашей переменной, но....
    1. Вам надо на страницу передать текущее значение этой переменной
    2. Вам надо при нажатии кнопки сохранить передать это значение со страницы в ЕСП и записать его в память.
    Есть такая вкладка как SRV.
    В начале есть процедура которая передает данные на страницу, а дальше есть процедуры которые получают данные со страницы и записывают их в переменные, а потом в память. По аналогии думаю что разберетесь...
    Единственное что надо не забыть что на каждой странице есть функция, которая вызывается при нажатии на кнопку сохранить, и она передает в ЕСП какие то переменные и их значения, выглядит она примерно так...
    Код (C++):
    function set_ntp(submit) {
                server = "/ntp?ntpServerName=" + val('ntpServerName') + "&timeZone=" + val('timeZone') + "&kuOn=" + val('kuOn') + "&kuOff=" + val('kuOff') + "&isDayLightSaving=" + val_sw('isDayLightSaving');
                send_request(submit,server);
              }
    По аналогии добавляете туда свою переменную.....

    По началу кажется немного сложновато, но стоит один раз проделать эту процедуру и дальше все будет казаться очень легко и просто....
     
    Slaiterx нравится это.
  12. Slaiterx

    Slaiterx Гик

    Вот спасибо тебе добрый человек
     
  13. RuGOST

    RuGOST Нерд

    Ребята подскажите что нужно купить или желательно какие должны быть модули для беспроводного подключения BME280, просто проводами не хочется подключать?
     
  14. gtsky

    gtsky Гик

    а куда вы его хотите вынести?)) на улицу?)
     
  15. RuGOST

    RuGOST Нерд

    На улицу конечно, зачем его дома держать, дома всегда тепло же!
     
  16. gtsky

    gtsky Гик

    Вот я уже писал о нем ТЫЦ
     
  17. RuGOST

    RuGOST Нерд

    Спасибо, а схема подключения к каким пинам его подключать?
     
  18. gtsky

    gtsky Гик

    делов том что бы подключить их по радио. Нужно 2 таких модуля + ардуинка для передачи данных от датчика. Или же ЕСП но опять же нада допиливать код и у вас получится 2 устройства одно будет пернедавать а другое принимать отбрабатывать и выводить
     
  19. gtsky

    gtsky Гик

    а точно - кандера на + ногу бузера? шото у меня непикает
     
  20. GeorgeZ

    GeorgeZ Нерд

    пикает и с кондёром и без.