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

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

?

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

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

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

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

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

    mikhail09p Гик

    Да! И пустой пароль в WI-Fi настройках невозможно ввести! Пришлось в программе и перешиваться.
     
  2. IvanUA

    IvanUA Гуру

    Сделал. Теперь можно сохранять пустые пароли)))
    Ссылку обновил - ниже по тексту...
     
    Последнее редактирование: 2 ноя 2020
    max50a5 нравится это.
  3. mikhail09p

    mikhail09p Гик

    Если не секрет, где и что изменили? С ходу не найду...
     
  4. IvanUA

    IvanUA Гуру

    Вкладка SRV убрал проверку аргументов на "пустоту"
    типа так
    Код (C++):
      snprintf(mqtt_user, 24, "%s", server.arg("mqtt_user").c_str());
      snprintf(mqtt_pass, 24, "%s", server.arg("mqtt_pass").c_str());
     
    SteinMark и mikhail09p нравится это.
  5. urg2000

    urg2000 Нерд

    Сделайте видео как работают часы с прошивкой 4.3
     
  6. SteinMark

    SteinMark Гик

    Иван Здравствуйте можете ширину поля уменьшить корректировочных данных
    на вкладке "настройки" 3 test version
     

    Вложения:

    Последнее редактирование: 1 ноя 2020
  7. stasnik

    stasnik Нерд

    А есть однастрочная прошивка поддерживающая thingspeak?
     
    mikhail09p нравится это.
  8. IvanUA

    IvanUA Гуру

    Поправил.
    Эту протестим и сделаю однострочную
     
  9. Klient

    Klient Нерд

    Добрый день, Не отключается отображение даты в вебморде, что-бы не выбрал она отображается аж 30 секунд статично, отображение погоды выключено, прошивка последняя.
    И при выключении питания сбрасываются настройки датчиков, в 4.2 такого небыло.

    Ещё очень хотелось-бы дабы не править каждую новую прошивку чтобы была функция отображения темп в доме и на улице одновременно в нижней строке, ато получается пол экрана пустует в 2 строчной версии...
     
    Последнее редактирование: 2 ноя 2020
  10. klslab

    klslab Нерд

    Спасибо, перешью проверю.
     
  11. IvanUA

    IvanUA Гуру

    https://drive.google.com/file/d/13bnALZR-7RJqk6qkZjn8eg3t0lGJl3jC/view?usp=sharing
    Поправил работу: MQTT, датчика SGP30, точки при отсутствии инета и вывод погоды...
    Если выключить дату, то она вообще не отображается. А 30 секунд может отображаться если не включено отображение чаосов в две строки. Тогда все свободное время в нижней строке надо что то выводить. С 10 и до 45 - отображается статичная дата, дальше по 5 секунд выводятся 5- датчиков поочередно.
    Если дату отображать не статично, то после того как строка с датой пробежит, выводится информация первого датчика.
    Не совсем конечно понял что имелось ввиду, но сейчас сделал что если выключить и погоду и дату, а оставить только какие то датчики, то будут постоянно отображаться только они (в свое вроемя конечно... Тоесть сейчас можно сделать так к примеру в поле поервого датчика поместить влажность, а в поле пятого температуру (со внутреннего датчика). Тогда начиная с 5 секуды будет отображаться температура, а с 45-й влажность....
     
    Последнее редактирование: 2 ноя 2020
  12. max50a5

    max50a5 Гик

    Беда:
    [​IMG]

    Скорее всего имелось ввиду про восемь матриц во второй строке.

    http://forum.amperka.ru/threads/Час...android-управление.12767/page-278#post-271901
     
  13. IvanUA

    IvanUA Гуру

    Ссылку поправил.
    8 во второй строке - это уже не совсем стандартные условия для этого проекта)))
     
  14. Klient

    Klient Нерд

    дада, в предыдущих версиях прошивки мне удавалось сделать так как на фото, а в 4.3 уж слишком изменена прошивка, не хватает ума чтобы понять как сделать одновременно вывод темп в доме и на улице, и ранее делал в первых 4 матрицах буквы "в доме" "улица" а сейчас какой-то треш...
     
  15. Klient

    Klient Нерд

    Почему? если у вас есть планы на цветную матрицу 32х64 и esp32 то это аналог 2 строчной версии на 16 матриц
     
  16. IvanUA

    IvanUA Гуру

    Ну да, мир не стоит на месте))) Я писал что сильно изменил сам подход к формированию данных и их вывод на экран.
    Я подумаю как это сделать...
     
    Последнее редактирование: 2 ноя 2020
  17. IvanUA

    IvanUA Гуру

    Все дело в самом принципе формирования картинки. В данном проекте для вывода на экран я не пользюсь сторонними библиотеками. Весь вывод можно сказать производится вручную и он очень ограничен в функционале. В новом проекте мне кажется что не будет времени разбираться с принципом работы матрицы, и просто будут заюзаны библиотеки, ну и собственно их функционал...

    ПС... И еще - каждое глобальное изменение прошивки, реально отнимает кучу времени на допиливание, я уже молчу о времени на тесты и поиски косяков... Так что в новом проекте что то будет из этого но думаю что не много. Гораздо проще написать что то новое, чем переделывать написанное пару лет назад...
     
    Последнее редактирование: 2 ноя 2020
    max50a5 и mikhail09p нравится это.
  18. chipmoca

    chipmoca Гик

    Так и до YuoTubу дойдём ;)
     
  19. IvanUA

    IvanUA Гуру

    Отвечаю на Ваш вопрос.
    Сейчас думаю это сделать еще проще...
    Есть функция отображения температур - дома, улицы и так далее но это все условно)))
    Код (C++):
    void showSimpleTemperature(byte znakT, float temp0) {
      bigCklock = 0;
      timerStopBigCklock=millis();
      int temp1 = int(temp0);
      int temp2 = int(temp0*10*(temp0>0?1:-1))%10;
      int znak = znakT%10;
      byte digPos[10] {3, 4, 5, 6, 17, 18, 19, 20, 21, 22};
      byte indent = (NUM_MAX1 * 8) - 32;
      dx = dy = 0;
      clr(1);
      showDigit((temp0 < 0.0 ? digPos[znak*2+1]:digPos[znak*2]), 0 + indent, (fontSizeData?znaki5x7:znaki5x8), 1); // друкуємо t+ альбо t-
      if(temp1 <= -10.0 || temp1 >= 10) showDigit((temp1 < 0 ? (temp1 * -1) / 10 : temp1 / 10), 4 + indent, (fontSizeData?dig5x7:dig5x8), 1);
      showDigit((temp1 < 0 ? (temp1 * -1) % 10 : temp1 % 10), 10 + indent, (fontSizeData?dig5x7:dig5x8), 1);
      showDigit(2, 16 + indent, (fontSizeData?znaki5x7:znaki5x8), 1);
      showDigit(temp2, 18 + indent, (fontSizeData?dig5x7:dig5x8), 1);
      showDigit(0, 24 + indent, (fontSizeData?znaki5x7:znaki5x8), 1);
      showDigit(1, 27 + indent, (fontSizeData?znaki5x7:znaki5x8), 1);
      if(dataDown) scrollDown(1);
      refreshAll();
    }
    Вот эта строка печатает значек в виде буквы и "+" или "-"
    Переменная "znakT" содержит число от 0 до 4
    0-d, 1-u, 2-h, 3-t и 4-l
    делаете простое условие что если znakT равен к примеру "0" то вместо это знака печатайте слово "в доме:"
    И так далее. Вам теперь не нужно править все функции. Вся температура печатается в одной.
    Ну и "изюминка на торте" - не нужно именно к первому полю привязывать температуру в доме))) Выбирайте любое из пяти полей (Датчики) только выбирайте свою букву и будет вам надпись))))

    ПС. Кстати забегая вперед. В однострочной версии 4.3 - есть мысль не только отвязать жесткую привязку датчиков к полю, но и также отвязать вывод датчиков, даты, погоды и прочего к точному времени (секундам). Сделать к примеру 10 позиций, и там указывать что в первой позиции выводить к примеру температуру в доме - время отображения - 5 секунд, во второй - к примеру прогноз погоды, в третьей - время - 60 секунд, ну а остальные будут пустые... Тогда на экране будет бежать погода, потом 5 секунд температура в доме, время (60 секунд) и дальше по кругу... Но тут есть одна проблема - "залипание" отображения во время длительных функций - типа получения времени интернет и другие... Но буду пробовать...
     
  20. yuraivan10

    yuraivan10 Нерд

    Добрый день Иван!
    Пытаюсь скомпелировать Вашу прошивку VZ_Clock_x2_v4.1 мне каждый раз выдаёт ошибку


    exit status 1
    no matching function for call to 'HTTPClient::begin(WiFiClient&, String&)'
    Возникла ошибка при загрузке http://arduino.esp8266.com/versions/2.4.1/package_esp8266com_index.json
    уже и библиотеку пробовл менять ничего
    не подскажите где собака порылась?