Спустя 3 дня график почти заполнен. Получается это барограф)
Ну, почти. Из-за ограничения разрешения экрана по вертикали всего в 8 точек, график приходится масштабировать по высоте, поскольку разброс между максимальным и минимальным значением за период, что умещается на экране, часто больше 8 мм рт.ст. Поэтому в одной точке может быть от 1 мм и больше. Соответственно и сам график с каждым новым значением может сжиматься или снова растягиваться (по вертикали). Т.е., например, визуально точно рассчитать по точкам давление, которое было некоторое время назад не получится. Но оценить его изменение или даже немного его спрогнозировать - довольно просто.
Спасибо за пояснение. А то я прикидывал - сколько едениц в одной точке...
Да, главное знать в какую сторону меняется давление и с какой скоростью. Сейчас, напрмер начало расти, солнышко выглянуло) Пару предыдущих дней - дожди шли.
А можно заменить SHT21 на DHT22. И переписать скетч с заменой.
Выбор SHT21 обусловлен исключительно тем, что он у меня уже был. Для себя можете переписывать как угодно и что угодно, под любые датчики, какими располагаете - ограничений нет. Опрос датчиков происходит через библиотеки, поэтому подключаете нужную и в скетче в соответствующих местах подправляете вызов функций для опроса вашего датчика (в сетапе - проверка наличия и инициализация датчика, и в лупе - запрос температуры и влажности).
Как можно изменить частоту измерения освещенности по фото датчику. А то видно как пульсируем яркость дисплея.
Я уже упоминал о решении подобной проблемы. Скорее всего идет засветка датчика от матрицы. Вобщем, читайте сообщение #44., там я расписал, что надо подправить.
Что же касается температуры и влажности, то SHT21 довольно точный датчик. Попробуйте его расположить в корпусе устройства согласно даташиту.
yucan, спасибо за разъяснение. дело в том что я к батарейке провод еще не тянул. если батарейка в норме то если он не будет показывать это очень даже хорошо.
с отключениями мин макс темперетурой попробую покопаться. я в програмирование не силен. знаю только Basic и Pascal они совсем не похожи
А по моему важно знать не само значение давления (на меня оно никак не влияет), а то, как оно меняется, чтобы прикидывать изменение погоды. Поэтому график нужен. Тем более время его показа незначительно.
Чтобы каждый час когда например 12-00. на любой свободный порт логическая 1 появилась на 30 секунд(время буду точно подбирать потом по секундно) . буду мп3 плеер подключать
Дык, кто ж вам запретит - делайте! Спрашивать разрешение не обязательно. Можете даже не одну сделать, а вообще перекроить скетч под свои желания. С тем функционалом, что там уже есть, пара килобайт кода туда еще влезет, а если скетч еще и прооптимизировать...
Добрые люди! Помогите пожалуйста с кодом. Чтобы в каждый час (пример в 12-00, 13-00 и.т.д.) на свободном порте появилась логическая "1" на 30 секунд (чтобы это время можно было настраивать) для Кукушки
За почти 4 года, что Вы на форуме можно было бы уже хоть немного научиться программировать. Ну правда.
Могу дать направление, в каком стоит попробовать двигаться. В DS3231 есть аж 2 будильника, и оба они свободные (в часах я писал свои будильники). Любой из них может быть настроен на срабатывание в том числе ежечасно. Вот и воспользуйтесь этим. При срабатывании будильника на ноге SQW модуль выставит низкий уровень (при соответствующей настройке). Этот сигнал можно использовать как прерывание для ардуинки. Ну а дальше чистый полет фантазии...
Правда, библиотека, которую использует скетч, не умеет работать с будильниками. Поэтому придется или использовать другую библиотеку для работы с часовым модулем (которая умеет работать с будильниками) и подправить весь скетч под нее, или посмотреть, как работают с будильниками в этой другой библиотеке, и дописать код для будильника самому.
ну да. верно. логика тут не верна. я просто накинул. что можно простым способом переделать. и часы не нужно сканировать. надо сканировать минуты и секунды.
типа
h=часы, m=минуты, sek=секунды, kuku=включение и отключение кукушки
так вроде должа работать 30 секунд каждый час.
if m=0 and sek<=30 then kuku=1 else kuku=0
а если нужно только в определенные часы то
if h=1 and m=0 and sek<=30 then kuku=1 else kuku=0
if h=12 and m=0 and sek<=30 then kuku=1 else kuku=0
Но есть одно но. Такой алгоритм не пригоден для существующего скетча, вернее, не совсем пригоден. Кукушка не всегда будет срабатывать. Вот если бы часы показывали только время, а так там навешано отображение кучи другой информации. Если смена часа произойдет в момент показа времени, то кукушка сработает, иначе врядли вы ее дождетесь.
Представьте, сейчас 11:59:55 и тут наступает время отображения дополнительной информации: дата, обе температуры, влажность, давление. И даже если вы у себя отключили вывод макс/мин температуры и график давления, то все-равно за 5 сек эта инфа не успеет пробежать по экрану. А если еще учесть, что вы уменьшили скорость скроллинга? А если это последние дни декабря и добавится "до нового года осталось..."? А если разряжена батарейка? А если день рождения любимой тещи и вы так ее любите, что накатали текст поздравлялки, который еле влез во все 16 сообщений? Тут не то что 5 сек, тут и нескольких минут не хватит.
Даже если использовать флаг (было ку-ку в этом часу или нет) и куковать уже после вывода доп.инфы - ну вернутся часы на отображение времени, скажем, в 12:03 и выдадут "ку-ку". Как будет выглядеть это "ку-ку" в 12:03 этой слегка подгулявшей кукушки?
Т.е., или в корне переделывать скетч на короткий луп, что немного хлопотно (проще написать все с нуля), или воспользоваться средствами DS3231, как я описывал немного раньше, что проще - досточно добавить нужную настройку будильника DS3231 и завести функцию обработки прерывания от будильника. Будильник DS3231 не зависит от нашего лупа и сработает в нужное время, не зависимо, что будет на экране наших часов.
Но есть еще один вариант. Велосипедный, но вариант - сделать так, как в скетче сделаны будильники.
Будильник в часах, работающих от сети 220В, то еще удовольствие. Если не было электричества, когда должен был сработать будильник - значит проспал. Поэтому будильники делались одними из последних по принципу "пускай уже будет" и все переделывать на короткий луп уже не хотелось. Еще я не хотел привязываться к какому-то конкретному модулю RTC - DS1307 или DS3231. Т.к. в DS1307, насколько мне известно (могу и ошибаться), нет выхода прерывания. А хотелось, чтобы была возможность сделать часы на обоих модулях. Потому и такой велосипед.
Так вот, в скетче перед каждым выводом какой-либо информации идет проверка, а не пора ли включить сигнал будильника. И если пора, то игнорируем то, что еще не успели показать, возвращаемся к отображению времени и включаем будильник. Таким образом, задержка хоть и может быть, но она небольшая - считаные секунды.
Можете пойти и таким путем, вместе с будильником проверять еще и нули минут и включать кукушку.
Только меня интересует один вопрос - зачем устанавливать на пине нужный уровень, длительностью определенное (да еще и изменяемое) время? MP3-модули ведь работают по команде, дали команду - проигрался файл.
Кто может помочь? Выкинул sht, пытаюсь втиснуть bme280, в результате везде нули... ЧЯДНТ? куда копать?
Вы офигели? Думаете кто-то станет разбираться, что вы там изменили в 1400 строчках?
Кто ж сразу новое оборудование в огромную программу пихает? Надо было для начала написать проверочный скетч для датчика, короткий, строк на 15-20. Убедится, что все работает. Или, если не работает - искать ошибку.. Или спросить на форуме -со скетчем в 15 строк и форум бы выстрее помог.
Блин.Я не фигел.
Одним подавай кусок кода, другим подавай весь код.Всем не угодишь. Кому то лень написать что то не унизительное?
И да, еси чо, я проверял датчик, загружал скетч. Татчик опрашивается и показывает значения в мониторе последовательного порта. Или вы думаете, что настолько руки обьектно ориентированы?
Всем спасибо за помощь. Скетч рабочий. Единственное, что изменил: указал адрес инициализации bme - bme.begin (0x76). Заменил ардуино и скомпилировал на другой машине.
Можно использовать в качестве замены при использовани bme280 вместо dht и sht.
Спустя 3 дня график почти заполнен. Получается это барограф)
Ну, почти. Из-за ограничения разрешения экрана по вертикали всего в 8 точек, график приходится масштабировать по высоте, поскольку разброс между максимальным и минимальным значением за период, что умещается на экране, часто больше 8 мм рт.ст. Поэтому в одной точке может быть от 1 мм и больше. Соответственно и сам график с каждым новым значением может сжиматься или снова растягиваться (по вертикали). Т.е., например, визуально точно рассчитать по точкам давление, которое было некоторое время назад не получится. Но оценить его изменение или даже немного его спрогнозировать - довольно просто.
Спасибо за пояснение. А то я прикидывал - сколько едениц в одной точке...
Да, главное знать в какую сторону меняется давление и с какой скоростью. Сейчас, напрмер начало расти, солнышко выглянуло) Пару предыдущих дней - дожди шли.
Добрый день.
А можно заменить SHT21 на DHT22. И переписать скетч с заменой.
А можно заменить SHT21 на DHT22. И переписать скетч с заменой.
Выбор SHT21 обусловлен исключительно тем, что он у меня уже был. Для себя можете переписывать как угодно и что угодно, под любые датчики, какими располагаете - ограничений нет. Опрос датчиков происходит через библиотеки, поэтому подключаете нужную и в скетче в соответствующих местах подправляете вызов функций для опроса вашего датчика (в сетапе - проверка наличия и инициализация датчика, и в лупе - запрос температуры и влажности).
Подскажите кто сталкивался не определяется ds18b20 все остальное работает ,пробовал разные ,пробовал садить на другой пин.
Не определяется в этом проекте или вообще?
В этом проекте в других работает
В этом проекте в других работает
Внимательно проверь монтаж. У меня всё работает
В этом проекте в других работает
Внимательно проверь монтаж. У меня всё работает
Заработало пришлось поменять ардуинку оказалась китайская подделка вместо атмеги328 стоит awga328 я и не обратил внимание свиду одинаковые.
Что такое awga328? Яндех не в курсе.
В яндексе и я искал посмотри здесь: https://elchupanibrei.livejournal.com/36239.html
Добрый вечер.
Вопрос. Как можно изменить частоту измерения освещенности по фото датчику. А то видно как пульсируем яркость дисплея.
И еще вопрос.
Как скорректировать показания температуры и влажности в помещении. Влажность занижается, а температура завышается.
Я уже упоминал о решении подобной проблемы. Скорее всего идет засветка датчика от матрицы. Вобщем, читайте сообщение #44., там я расписал, что надо подправить.
Что же касается температуры и влажности, то SHT21 довольно точный датчик. Попробуйте его расположить в корпусе устройства согласно даташиту.
Доюрый день!
Как отключить отображение напряжения батарейки? оно тут лишнее как мне кажется
еще минимальнои и максимальную температуру с временем. тоже лишнее имхо.
еще минимальнои и максимальную температуру с временем. тоже лишнее имхо.
Доюрый день!
Как отключить отображение напряжения батарейки? оно тут лишнее как мне кажется
Проверьте состояние батарейки. Если напряжение батарейки в норме - отображение отключено.
Минимальную и максимальную температуру тоже легко отлючить. В скетче есть комментарии.
yucan, спасибо за разъяснение. дело в том что я к батарейке провод еще не тянул. если батарейка в норме то если он не будет показывать это очень даже хорошо.
с отключениями мин макс темперетурой попробую покопаться. я в програмирование не силен. знаю только Basic и Pascal они совсем не похожи
нашел как отключить мин. макс. температуру. сам написал комментарий :)
мне тоже кажется что бегущая строка слишком быстро пробегает. куда там нужна delay() напписать чтобы задержку включить? :)
я в програмирование не силен. знаю только Basic и Pascal они совсем не похожи
Та ну напуй.
мне тоже кажется что бегущая строка слишком быстро пробегает. куда там нужна delay() напписать чтобы задержку включить? :)
Тут еще и двух страниц не набралось, а вы ленитесь прочитать предыдущие комментарии. Смотрите #14.
vk007, добавил паузу. Все отлично! Теперь хочу график отключить. Он мне без надобности :) достаточно атмосферное давление показать
vk007, забыл сказать Большое Спасибо за суперские часы!
Давно искал такие! На матрицах! У других функционал слабоват и шрифты не красивые!
Моим друзьям тоже понравилась! Уже двое захотели себе собрать. :)
Ну зачем так орать? Вроде давно на форуме, знаете, что так здесь не принято.((((
Найдите в скетче блок, отвечающий за вывод давления на экран - он начинается с комментария
И вместо него вставьте следующий код
Также из сетапа можете удалить блок
А по моему важно знать не само значение давления (на меня оно никак не влияет), а то, как оно меняется, чтобы прикидывать изменение погоды. Поэтому график нужен. Тем более время его показа незначительно.
Спассбо за помощ!
Скетч подправил! Все работает как надо! Без графика!
Yucan, Если нужен график то его можно включить обратно. строки программы только закоментировал на всякий случай
vk007, еще одну хотелку хочу поставить!
Чтобы каждый час когда например 12-00. на любой свободный порт логическая 1 появилась на 30 секунд(время буду точно подбирать потом по секундно) . буду мп3 плеер подключать
будет типа кукушки :)
еще одну хотелку хочу поставить!
Дык, кто ж вам запретит - делайте! Спрашивать разрешение не обязательно. Можете даже не одну сделать, а вообще перекроить скетч под свои желания. С тем функционалом, что там уже есть, пара килобайт кода туда еще влезет, а если скетч еще и прооптимизировать...
***
я только паять умею
Добрые люди! Помогите пожалуйста с кодом. Чтобы в каждый час (пример в 12-00, 13-00 и.т.д.) на свободном порте появилась логическая "1" на 30 секунд (чтобы это время можно было настраивать) для Кукушки
Заранее Спасибо!
За почти 4 года, что Вы на форуме можно было бы уже хоть немного научиться программировать. Ну правда.
Могу дать направление, в каком стоит попробовать двигаться. В DS3231 есть аж 2 будильника, и оба они свободные (в часах я писал свои будильники). Любой из них может быть настроен на срабатывание в том числе ежечасно. Вот и воспользуйтесь этим. При срабатывании будильника на ноге SQW модуль выставит низкий уровень (при соответствующей настройке). Этот сигнал можно использовать как прерывание для ардуинки. Ну а дальше чистый полет фантазии...
Правда, библиотека, которую использует скетч, не умеет работать с будильниками. Поэтому придется или использовать другую библиотеку для работы с часовым модулем (которая умеет работать с будильниками) и подправить весь скетч под нее, или посмотреть, как работают с будильниками в этой другой библиотеке, и дописать код для будильника самому.
а нельзя как на бейсике. что то подобное
где h - Это часы
if h=0 then let pin5=1
else
if h=1 then let pin5=1
else
if h=2 then let pin5=1
else
if h=3 then let pin5=1
а нельзя как на бейсике
Можно как угодно, но алгоритм и логика ведь должны быть в любом случае правильными.
А по вашей логике "pin5=1" будет вечно, чему бы h не равнялось.
ну да. верно. логика тут не верна. я просто накинул. что можно простым способом переделать. и часы не нужно сканировать. надо сканировать минуты и секунды.
типа
h=часы, m=минуты, sek=секунды, kuku=включение и отключение кукушки
так вроде должа работать 30 секунд каждый час.
if m=0 and sek<=30 then kuku=1 else kuku=0
а если нужно только в определенные часы то
if h=1 and m=0 and sek<=30 then kuku=1 else kuku=0
if h=12 and m=0 and sek<=30 then kuku=1 else kuku=0
Ну сейчас да. Почти так, как вам нужно.
Но есть одно но. Такой алгоритм не пригоден для существующего скетча, вернее, не совсем пригоден. Кукушка не всегда будет срабатывать. Вот если бы часы показывали только время, а так там навешано отображение кучи другой информации. Если смена часа произойдет в момент показа времени, то кукушка сработает, иначе врядли вы ее дождетесь.
Представьте, сейчас 11:59:55 и тут наступает время отображения дополнительной информации: дата, обе температуры, влажность, давление. И даже если вы у себя отключили вывод макс/мин температуры и график давления, то все-равно за 5 сек эта инфа не успеет пробежать по экрану. А если еще учесть, что вы уменьшили скорость скроллинга? А если это последние дни декабря и добавится "до нового года осталось..."? А если разряжена батарейка? А если день рождения любимой тещи и вы так ее любите, что накатали текст поздравлялки, который еле влез во все 16 сообщений? Тут не то что 5 сек, тут и нескольких минут не хватит.
Даже если использовать флаг (было ку-ку в этом часу или нет) и куковать уже после вывода доп.инфы - ну вернутся часы на отображение времени, скажем, в 12:03 и выдадут "ку-ку". Как будет выглядеть это "ку-ку" в 12:03 этой слегка подгулявшей кукушки?
Т.е., или в корне переделывать скетч на короткий луп, что немного хлопотно (проще написать все с нуля), или воспользоваться средствами DS3231, как я описывал немного раньше, что проще - досточно добавить нужную настройку будильника DS3231 и завести функцию обработки прерывания от будильника. Будильник DS3231 не зависит от нашего лупа и сработает в нужное время, не зависимо, что будет на экране наших часов.
Но есть еще один вариант. Велосипедный, но вариант - сделать так, как в скетче сделаны будильники.
Будильник в часах, работающих от сети 220В, то еще удовольствие. Если не было электричества, когда должен был сработать будильник - значит проспал. Поэтому будильники делались одними из последних по принципу "пускай уже будет" и все переделывать на короткий луп уже не хотелось. Еще я не хотел привязываться к какому-то конкретному модулю RTC - DS1307 или DS3231. Т.к. в DS1307, насколько мне известно (могу и ошибаться), нет выхода прерывания. А хотелось, чтобы была возможность сделать часы на обоих модулях. Потому и такой велосипед.
Так вот, в скетче перед каждым выводом какой-либо информации идет проверка, а не пора ли включить сигнал будильника. И если пора, то игнорируем то, что еще не успели показать, возвращаемся к отображению времени и включаем будильник. Таким образом, задержка хоть и может быть, но она небольшая - считаные секунды.
Можете пойти и таким путем, вместе с будильником проверять еще и нули минут и включать кукушку.
Только меня интересует один вопрос - зачем устанавливать на пине нужный уровень, длительностью определенное (да еще и изменяемое) время? MP3-модули ведь работают по команде, дали команду - проигрался файл.
плеер у меня простой. https://ru.aliexpress.com/item/TF-card-MP3-decoder-board-with-2W-power-d.... лог 1 нужна для имеено такого плеера. у него нет i2c только кнопки можно приделать. запишу туда 1 файл ку-ку т он будет включаться при появлении 5 вольт
Кто может помочь? Выкинул sht, пытаюсь втиснуть bme280, в результате везде нули... ЧЯДНТ? куда копать?
Сам датчик с использованной вами библиотекой работает?
Кто может помочь? Выкинул sht, пытаюсь втиснуть bme280, в результате везде нули... ЧЯДНТ? куда копать?
Вы офигели? Думаете кто-то станет разбираться, что вы там изменили в 1400 строчках?
Кто ж сразу новое оборудование в огромную программу пихает? Надо было для начала написать проверочный скетч для датчика, короткий, строк на 15-20. Убедится, что все работает. Или, если не работает - искать ошибку.. Или спросить на форуме -со скетчем в 15 строк и форум бы выстрее помог.
Блин.Я не фигел.
Одним подавай кусок кода, другим подавай весь код.Всем не угодишь. Кому то лень написать что то не унизительное?
И да, еси чо, я проверял датчик, загружал скетч. Татчик опрашивается и показывает значения в мониторе последовательного порта. Или вы думаете, что настолько руки обьектно ориентированы?
Конечно работает. Проверял.Подозреваю, что ошибка кроется где то в внесении данных в буфер и выводе их на экран.
Дайте ссылку на используемую вами библиотеку Adafruit_BME280.
Всем спасибо за помощь. Скетч рабочий. Единственное, что изменил: указал адрес инициализации bme - bme.begin (0x76). Заменил ардуино и скомпилировал на другой машине.
Можно использовать в качестве замены при использовани bme280 вместо dht и sht.
Подскажите для BMP180(280) питния 5 вольт не много? По даташиту у них максимум 4,25 вольта....
Питание для БМП/бме идеально 3.3 вольта. Если юзаем нано-берем с ноги стабилизатора,если про мини-с амс117-3.3