Часы на NodeMCU Lua + MAX7219 минус все лишнее.

Тема в разделе "Глядите, что я сделал", создана пользователем ИгорьК, 4 сен 2018.

Метки:
  1. ИгорьК

    ИгорьК Гуру

    Чтобы что-то получать там нужно публиковать данные с уличных датчиков. В данном случае используется проводной датчик. Параллельно можно подключить ещё десяток, но как вы себе представляете этот провод от часов наружу :)

    Но мысль с публикацией - она очень прикольная и, не поверите, пришла мне неделей ранее :) и да, сейчас я делаю модуль такой публикации. То есть, он уже работает, но пока в тестовом режиме.
     
    Voik и Catbear нравится это.
  2. Voik

    Voik Гик

    Я бы такой возможностью воспользовался. А провод наружу - это не проблема для меня. Витую пару кинуть и всего делов-то.
    Но с другой стороны Вы правы - дешевле и проще есп отдельную, чем провод тянуть.
     
  3. ИгорьК

    ИгорьК Гуру

    Последнее редактирование: 9 апр 2023
    Catbear и Voik нравится это.
  4. serg3295

    serg3295 Гик

    Собрал часы, всё работает. Только narodmon не подключал.
    Вот только под рукой был фоторезистор GL5516 с сопротивлением 5-10 кОм при 10 lux и 500кОм в темноте.
    Вопрос. Нет ли в программе калибровки сопротивления фоторезистора?
     
    ИгорьК нравится это.
  5. ИгорьК

    ИгорьК Гуру

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

    Что касается датчика освещённости, то как показал мой скромный опыт, откалибровать его не возможно при любом сопротивлении, из максимального в минимальное он переходит на узком участке освещённости. То есть по сути работает в ключевое режиме.

    Поэтому решений здесь два.
    1. В новой версии есть режим автокалибровки. Если часы проработали сутки без выключений, то они запоминают максимальное и минимальное значение датчика и включают матрицу на максимальное значение при освещённости 0.7 мах и выше и на минимальное при 0.3 и ниже.
    2. Код работы с освещенностью выделен в отдельный файл и каждый крутит его под свой датчик как считает нужным.

    Но сейчас я далеко от компьютера, так что чуть позже.
     
    IvanUA и serg3295 нравится это.
  6. ИгорьК

    ИгорьК Гуру

    С народным мониторингом для большинства получался замкнутый круг. Чтобы брать с него данные - надо сначала на него чтото публиковать.

    Я то давно на него публикую данные, но о том что этим мало кто занимается - не думал.

    Новая версия разрывает этот круг. То есть она позволяет публиковать данные, например с mqtt уличного датчика ( :) ) или ещё откуда-то, получать необходимые разрешения от народного мониторинга и после - забирать с него данные. Это уже неплохо работает, как проверено одним из участников этой темы. :)
     
    serg3295 нравится это.
  7. IvanUA

    IvanUA Гуру

    Игорь привет. Когда то давно тоже занимался автокалибровкой датчика.
    Калибруется просто, закрывается датчик, он запоминает минимум.
    Включается весь свет в комнате, он запоминает максимум.
    Ну в последующем если что поменяется он подкалибрует.
    Сохранение данных каллибровки не делал, но то по желанию)))
    Вот код сишный, может что возьмешь для себя)))
    Код (C++):
    int br = analogRead(brightPin);
          if(lowLivelBrightness<=upLivelBrightness){
            if(br<lowLivelBrightness) lowLivelBrightness=br;
            if(br>upLivelBrightness) upLivelBrightness=br;
          } else {
            if(br<upLivelBrightness) upLivelBrightness=br;
            if(br>lowLivelBrightness) lowLivelBrightness=br;
          }
          levelBridhtness = map(br,lowLivelBrightness, upLivelBrightness, volBrightnessN, volBrightnessD);
          sendCmdAll(CMD_INTENSITY, levelBridhtness);
    volBrightnessD, volBrightnessN ; - это уровень яркости матриц день/ночь (0-15)
    lowLivelBrightness, upLivelBrightness ; - это начальные уровни (0-1023)
     
    Последнее редактирование: 29 май 2023
  8. ИгорьК

    ИгорьК Гуру

    Привет! Спасибо, Иван! Дело тут, ИМХО, не в коде, а в разных датчиках у людей, узости диапазона датчиков и разных условиях освещенности.
    Тему эту я очень глубоко не обдумывал, но наблюдение говорит вот о чем. Часы стоят в квартире, в квартире есть день, есть вечер, когда свет включен и есть "легли спать", когда свет выключен.
    С точки зрения освещенности часов, это всегда светло-светло-светло-темно. Никаких сумерек в квартире, обычно, нет. Никто не сидит в комнате в полутьме.

    Когда такие датчики стоят на улице - там все нормально, они ловят и рассвет и закат. Но не в квартире. То есть и в квартире такое есть, но когда в ней никого нет.

    Поэтому применять map здесь конечно вроде и правильно, но на самом деле без особого смысла.
    У меня в промежутке между макс и мин тоже действует аналогичная функция, но по сути освещенности этого не происходит. Как-то так.
     
  9. IvanUA

    IvanUA Гуру

    Игорь я когда то очень давно игрался с этой темой. И результат меня вполне устроил.
    Уровень яркости матрицы можно выставить от 0 до 15 едениц.
    Для своей яркой я определил что ночью мне нужно 2, а днем 10 едениц.
    По факту у меня осталось 8 уровней регулировки.
    Аналоговый порт ЕСПхи читает 1023 уровня. Пусть наш датчик от мининмума к пример 220 еденицы до максимума 280 едениц дает уже как минимум 60 значений в интервале... Ну и собственно код через map преобразовывает значение от 220 до 280 в от 2 до 10...
    И все работало... Я даже каким то образом умудрился адаптировать код под разные схемы подключения... Ну типа потяжка на + или на корпус...

    Давно это было, но мне понравилось как оно работало. Хотя по правде я лично пришел к мнению что мне не нужна такая подсветка. Меня больше устраивает переключение по времени (день/ночь). Мне удобно глянул на часы вечером, а они уже притухли - зачит после полуночи. Спросоня глянул уже ярко светят - значит уже после 6 утра))))
     
    serg3295 и ИгорьК нравится это.
  10. ИгорьК

    ИгорьК Гуру

    Версия от сегодня.

    Внешне - все то же.
    Правим '_seruser.lua'
    'bright.lua' определяет работу по освещенности. Ковыряйте, если что-то не устраивает.

    Он же определяет, что через сутки работы часы будут сами регулировать яркость, так что можно подождать (но даже в эти сутки часы уходят в минимум в ночное время, когда оно указано).

    Часы у друзей отправляют данные на народный мониторинг, что подтверждается такой картинкой:

    upload_2023-5-29_16-5-31.png
     

    Вложения:

    • files.zip
      Размер файла:
      33,9 КБ
      Просмотров:
      79
    • bin.zip
      Размер файла:
      436,9 КБ
      Просмотров:
      62
    Последнее редактирование: 7 окт 2023
    Voik и serg3295 нравится это.
  11. ИгорьК

    ИгорьК Гуру

    Очень долго у меня часы стояли в гостиной без всякого датчика освещенности. Они меняли яркость по времени. Буквально месяц-полтора сделал часы для спальни, там датчик освещенности в тему. Но вылизывать его до соотнесения с сумерками пока нет желания. Погасил свет - часы в минимуме. Включил - в 2/3 яркости. Это мне так хорошо. Кому так плохо - правят файл :)
     
    Catbear, serg3295 и IvanUA нравится это.
  12. IvanUA

    IvanUA Гуру

    Вот блин, не было печали, прилепил первый попавшийся фоторезистор и давай эксперименты делать)))) Короче на видео не очень, у камеры авто баланс срабатываетс от матрицы, а так довольно таки сносно и во всем заданном диаппазоне)))

     
    serg3295 и ИгорьК нравится это.
  13. ИгорьК

    ИгорьК Гуру

    Общие пояснения по работе с народным мониторингом.

    1. Запускаете публикацию данных на мониторинг. Видите в терминале что мониторинг принял данные
    [​IMG]
    2. Заходите по адресу https://narodmon.ru/ip и видите свои данные:
    upload_2023-5-29_16-29-5.png
    3. Регистрируетесь на мониторинге, получаете ключ для запросов:
    upload_2023-5-29_16-31-50.png

    4. UUID генерируете сами.

    5. Записываете все в _setuser.lua, указываете необходимые датчики и забираете с мониторинга.
     
    Последнее редактирование: 29 май 2023
    Voik и serg3295 нравится это.
  14. ИгорьК

    ИгорьК Гуру

    Кстати, обнаружил погодный сервер: https://tomorrow.io/ : Completes Successful Launch of First Private Weather-Radar Satellite.
    Количество запросов позволяет его применять задаром. Как текущий сломается (с чего бы) - можно будет изучить.
     
    Voik, Catbear и serg3295 нравится это.
  15. Catbear

    Catbear Гик

    Доброе утро! Привез часы с дачи (был weatherbit+ds18b20, температура в доме), хотел их перепрошить, чтобы была "погода" (как раньше). И, чего то запутался в версиях. Последняя, не предусматривает наличие уже подключенного к часам ds18b20? Там данные тянутся только "внешние" с народомон и openweathermap+датчик освещенности? Попытался прошить изменённую версию Volkом, там все работает, кроме подключенного ds18b20. Если его раскомментировать, почему то esplorer выдает ошибку и ничего не работает. Вернёшь файл setuser как был, опять все работает, но температуры в доме, естественно нет. Подскажите пожалуйста, надо версию "ныне" использовать, чтобы был openweathermap+температура в доме? Либо чего то не так раскомментировал касательно ds18b20?
     
  16. ИгорьК

    ИгорьК Гуру

    Чёт сто лет не касался кода, хотя все собираюсь.
    DS18b20 никуда не делся и кажется не требует никакой настройки. Если датчик при старте не определяется то его как-бы и нет. Так что скорее проблема в датчике или его соединении.
     
  17. Catbear

    Catbear Гик

    Соединение проверено, да и датчик работал на предыдущей с weatherbit.
     
  18. ИгорьК

    ИгорьК Гуру

    Давайте смотреть лог. Когда вы запускаете часы, они гонят информацию в порт. Выкладывайте.
     
    Последнее редактирование: 6 окт 2023
  19. Catbear

    Catbear Гик

    Собрано по схеме в начале темы. Почти 3 года отработало безупречно.
    Снял лог: время отображает, "погоду" тоже, кроме того, что температуру не выводит в помещении :-(((.
    Брал архив с сообщения #540 Voik.
    Narodmon мне не нужен в данном случае: только openweathermap, да температура с подключенного к esp ds18b20.

    Файл setglobals.lua только попытался редактировать (в приложенном файле убрал "свои" данные),
    Остальное-вообще не менял.

    PS Если конечно это возможно без глобальных изменений, подскажите пожалуйста еще, можно ли как то "увеличить" время отображения параметров погоды: температурные данные, надпись "текущего состояния" (дождь, снег и т.д.). ИМХО как то быстро они "промелькивают" и иногда не успеваешь их увидеть полностью. Но это прям не так критично, если что.
     

    Вложения:

    Последнее редактирование: 7 окт 2023
  20. ИгорьК

    ИгорьК Гуру

    Датчик у вас виден.
    Похоже у вас что-то перепутано с прошивками.
    Я загрузил ее в последнее сообщение.
    Начните с обновления bin. Потом залейте все остальное.