ARDUINO Часы-метеостанция. Обсуждение проекта

DartNik

✩✩✩✩✩✩✩
3 Авг 2020
1
0
У меня проблемма с датчиком BME280. Все время выдает ошибку. Поменял уже все провода, два датчика сменил, прозвонил все соединения, а ошибка так и остается. Может, кто ткнет меня носом где искать эту ошибку?
а может у тебя не BME280 а BMP280 ? они ой как похожи особенно на 3.3v
 

1000karat

✩✩✩✩✩✩✩
18 Авг 2020
11
0
подскажите какое сопротивление фоторезистора. в дебиг максимум 280- минимум 250. У меня R осв -1,2 ком, Rноч-12ком.
 

1000karat

✩✩✩✩✩✩✩
18 Авг 2020
11
0
@1000karat, Измерил голый фоторезистор если светить фонариком (очень ярким)- около 100-120 Ом, Если комнатное освещение 1,2 -1,4 КОм, если в тени то 8,5-10 КОм
И как срабатывает, регулировка яркости? У меня нет. Всё остальное работает бес проблем , только ночью слепит.
Каково значение при освещенности( день- ночь)

#define BRIGHT_THRESHOLD 265 // величина сигнала, ниже которой яркость переключится на минимум (0-1023)
У меня день -280, ночь -260 , а у Вас? В скетче строка выше, выставил 265 и ничего. Ставлю например- 350 переключает. Что не так?
 

Aleksey79

✩✩✩✩✩✩✩
28 Апр 2020
23
5
Парни подскажите. Собрал данное устройство. Без датчика СО. Питание от б.п. для телефона 700 мА. Часы отстают безбожно - за сутки 3-4 минуты. Батарейка в модуле времени новая. Сегодня поставил кондёр 47 мкФ на 5V и GND. Отстали за пол-дня опять на 2 минуты. Что то уже сомневаюсь о целесообразности данного изделия. Ведь просто перевести минуты, как на обычных часах невозможно. Только прошивать. А прошивать каждые 3 дня совсем не хотелось бы. Кто что может посоветовать?
У меня такая же фигня. Я заметил, что отставание связано с временем опроса датчиков. если стоит 10сек, то на 10й секунде разделительные точки пропадают на 1секунду и уход в сторону отставания составляет 1секунду. Ставишь 30секунд, отсчитывает(мигает двоеточие)29 и на 30й остановка на 1секунду. Если отключить питание и включить, или перезагрузить, или перезалить скетч- время показывает четко!!! т.е. часовой модуль считает по своему(правильно), а на экране своя жизнь :( И все заново.
Но! через какое-то время (не скажу точно какое) показания часов становятся правильными!!! И опять всё заново.
Что за хрень?
Заливал скетчи от разных авторов - такое же зависание на 1секунду.
Менял блоки питания, ставил кондеры, перезаливал библиотеки. Заливал скетч от AlexGyver- ничего не помогает.
HELP!!!
 

bakson

✩✩✩✩✩✩✩
22 Авг 2020
15
7
Проект конечно отличный, хотя не могу оценить в полной мере (жду датчик СО2). Проект конкретно Алекса-зашел сразу без дополнительных костылей-просто прошил-подключил датчики и все! Но вот проекты от Norovl до meteoClock_v1.3b7 включительно, устанавливаются в Ардуино нано, а вот версии выше - уже тупо не влазят-памяти не хватает! Я пытался что-то оптимизировать-ума не хватило. Тогда я перешил загрузчик от Уно в нано (на ютубе есть ролики-делается за 3 минуты) Увеличилась скорость загрузки и чуть места добавилось. Удалось запихать meteoClock_v1.5b81 но без датчика СО2. А теперь вопрос-скажите как заливать скетчи в нано от Norovl например версии meteoClock_v1.5c23 , может магия какая нужна? Нашел на сайте исходники meteoClock_v1.5c21 товарища Djonve (благодарность ему) которые заработали на уно с перешитым загрузчиком.

@Aleksey79, Тоже обратил на это внимание, за ночь часы отстали на 2 минуты, утром сработал датчик освещения и оппа-отставание сократилось на на 6 секунд! И это при том что модуль часов часов пролежал прошитым с батарейкой 2 года и расхождение составило всего пару секунд! Сегодня отпаяю диод согласно совету с этого форума, протестирую

@Aleksey79, ВЫ все точно описали-10 сек-замирание-отставание 1 сек, перезагрузка-точное время! интересно с чем связано? Это явно не питание. Отпаял диод на плате часов как написано-результата нет!
 

Aleksey79

✩✩✩✩✩✩✩
28 Апр 2020
23
5
Обратил внимание, что когда время с отставанием на 2минуты на экране подходит к .00 минут каждого часа, на экране сразу появляется .02минут.
т.е. отставание на экране аннулируется. И все по-новой.
14.58 -> 14.59 -> 15.00 -> 15.02 ->15.03 ...
 

bakson

✩✩✩✩✩✩✩
22 Авг 2020
15
7
@Aleksey79, Да действительно в начале каждого часа показывает точное время потом начинает отставать и так по кругу, отставание на двух прошивках имеется и на оригинале и на прошивке от Norovl , это явно что то в коде. КТо то подскажет что делать? одну правку в коде я уже сделал (по совету) чтобы при сбросе питания часы не возвращались на время прошивки.
 

sergeikas21

✩✩✩✩✩✩✩
14 Фев 2020
1
0
Добрый день
Подскажите есть ли возможность в проекте использовать вместо датчика MH-Z19B датчик CCS811
Haeaa85cbd8324fdb802b5ad36a391c01f.jpg
И на сколько это повлияет на показания?
 

1000karat

✩✩✩✩✩✩✩
18 Авг 2020
11
0
Проект конечно отличный, хотя не могу оценить в полной мере (жду датчик СО2). Проект конкретно Алекса-зашел сразу без дополнительных костылей-просто прошил-подключил датчики и все! Но вот проекты от Norovl до meteoClock_v1.3b7 включительно, устанавливаются в Ардуино нано, а вот версии выше - уже тупо не влазят-памяти не хватает! Я пытался что-то оптимизировать-ума не хватило. Тогда я перешил загрузчик от Уно в нано (на ютубе есть ролики-делается за 3 минуты) Увеличилась скорость загрузки и чуть места добавилось. Удалось запихать meteoClock_v1.5b81 но без датчика СО2. А теперь вопрос-скажите как заливать скетчи в нано от Norovl например версии meteoClock_v1.5c23 , может магия какая нужна? Нашел на сайте исходники meteoClock_v1.5c21 товарища Djonve (благодарность ему) которые заработали на уно с перешитым загрузчиком.

@Aleksey79, Тоже обратил на это внимание, за ночь часы отстали на 2 минуты, утром сработал датчик освещения и оппа-отставание сократилось на на 6 секунд! И это при том что модуль часов часов пролежал прошитым с батарейкой 2 года и расхождение составило всего пару секунд! Сегодня отпаяю диод согласно совету с этого форума, протестирую

@Aleksey79, ВЫ все точно описали-10 сек-замирание-отставание 1 сек, перезагрузка-точное время! интересно с чем связано? Это явно не питание. Отпаял диод на плате часов как написано-результата нет!
Может разделить , по питанию датчик СО2 диодом и поставить электролиты для накачки энергии.
И мой вопрос.
#define BRIGHT_THRESHOLD 265 // величина сигнала, ниже которой яркость переключится на минимум (0-1023)
У меня день -280, ночь -260 , а у Вас? В скетче строка выше, выставил 265 и ничего. Ставлю например- 350 переключает. Что не так?
 

1000karat

✩✩✩✩✩✩✩
18 Авг 2020
11
0
"Может разделить , по питанию датчик СО2 диодом и поставить электролиты для накачки энергии" -это не питание, это конкретно в коде, потому что в начале нового часа -часы показывают точное время, то есть по логике получается что ардуина в начале часа считывает данные с модуля DS3231 а потом только отслеживает датчики, в начале нового часа производит калибровку-сверку с реальным временем и так по кругу (ИМХО)
И мой вопрос.
#define BRIGHT_THRESHOLD 265 // величина сигнала, ниже которой яркость переключится на минимум (0-1023)
У меня день -280, ночь -260 , а у Вас? В скетче строка выше, выставил 265 и ничего. Ставлю например- 350 переключает. Что не так?
По моему мнению характеристики фоторезисторов могут отличаться.
Я использовал один и тот же фотор-р и в прошивке от Алекса 1.5 и в прошивке meteoClock_v1.5c21 поправленную товарищем @Djonve (автор Norovl)
на обеих прошивках фоторезистор отрабатывает нормально! кстати в прошивке meteoClock_v1.5c21 выставлено значение 350.
Спасибо за оперативность. По первому вопросу, у многих как я понял все со временем ок, значит код все учитывает, добавляет время на опросы датчиков, ведь оно стабильно, где это в коде я не знаю , кто силен пусть посмотрят.
Второй вопрос, да фото резисторы разные, поэтому и прошу числовые значения в коде есть строка (debig) можно считать, пожалуйста.
 

1000karat

✩✩✩✩✩✩✩
18 Авг 2020
11
0
@1000karat,
"Второй вопрос, да фото резисторы разные, поэтому и прошу числовые значения в коде есть строка (debig) можно считать, пожалуйста. "
Как конкретно считать? То есть прошить debig со значением "1" и поглядеть через монитор порта? (я новичок-с кодом не знаком, собираю по картинкам:oops:)
да debig 1 и будет видно на экране справа, вторая строка.
 

Aleksey79

✩✩✩✩✩✩✩
28 Апр 2020
23
5
"Может разделить , по питанию датчик СО2 диодом и поставить электролиты для накачки энергии" -это не питание, это конкретно в коде, потому что в начале нового часа -часы показывают точное время, то есть по логике получается что ардуина в начале часа считывает данные с модуля DS3231 а потом только отслеживает датчики, в начале нового часа производит калибровку-сверку с реальным временем и так по кругу (ИМХО)
И мой вопрос.
#define BRIGHT_THRESHOLD 265 // величина сигнала, ниже которой яркость переключится на минимум (0-1023)
У меня день -280, ночь -260 , а у Вас? В скетче строка выше, выставил 265 и ничего. Ставлю например- 350 переключает. Что не так?
По моему мнению характеристики фоторезисторов могут отличаться.
Я использовал один и тот же фотор-р и в прошивке от Алекса 1.5 и в прошивке meteoClock_v1.5c21 поправленную товарищем @Djonve (автор Norovl)
на обеих прошивках фоторезистор отрабатывает нормально! кстати в прошивке meteoClock_v1.5c21 выставлено значение 350.
у меня ночь стоит 20, а день BRIGHT_THRESHOLD 100. Днем МАХ 255. При включении бра- включается яркость на всю.
А вот с уходом времени - полная лажа.
 
  • Лойс +1
Реакции: 1000karat

bakson

✩✩✩✩✩✩✩
22 Авг 2020
15
7
и вот что еще накопал на стене по обсуждению
[SPOILER="В рамках эксперимента измените в коде строку #define SENS_TIME 10000 например на #define SENS_TIME 1500000 ]В общем изменил в настройках SENS_TIME на 1500000 вместо 10000
В рамках эксперимента измените в коде строку #define SENS_TIME 10000 например на #define SENS_TIME 1500000 У меня после этого часы идут без нареканий
Владимир
Сергей.доброго вечера! :) Продолжаем разговор... Насколько я понимаю программирование модуля часов через FiProg результатов по синхронизации времени не дало. В сообщениях об этом Вы пишите, что даже после этой процедуры "cинхронность плавает в пределах 0 - 5 минут". Лично мое мнение,что дело в ПО. В рамках эксперимента измените в коде строку #define SENS_TIME 10000 например на #define SENS_TIME 1500000 У меня после этого часы идут без нареканий. Другое дело,что на борту датчиков у меня пока нет к сожалению. Поэтому хотелось бы результат узнать сейчас от Вас, если возможно...
24 дек 2019
Сергей ответил Владимиру
Владимир, Здесь я думаю надо поступить следующим образом. Взять и собрать часы на печатке со всем обвесом и потом сверить синхронность так как часы на ардуине синхронно работают с часами на компе
25 дек 2019
Роман
Роман Сергею
Сергей, если у вас нет датчика СО2, то его нужно отключить в скетче, иначе при его опросе происходит подвисание программы, соответственно всех таймеров. В коде синхронизация часов производится раз в час. Внутри часа время отображается по внутренним таймерам.
Добрый вечер всем!
Решил проблемы с часами и хочу поделиться информацией как исправить.
1. Просканируйте модуль RTC на адрес.
2. После того как узнаете адрес смените его во всех файлах библиотек относящихся к DS3231 по следующим ссылкам: (C:\Users\ИМЯ ВАШЕГО КОМПА\Documents\Arduino\libraries), (C:\Program Files (x86)\arduino-nightly\libraries).
Датчик СО2 у вас распаян? если нет - его нужно отключить в скетче. Иначе время сильно отстает.[/SPOILER]
 

b707_2

★★✩✩✩✩✩
22 Июл 2020
182
51
Я заметил, что отставание связано с временем опроса датчиков. если стоит 10сек, то на 10й секунде разделительные точки пропадают на 1секунду и уход в сторону отставания составляет 1секунду.
Но! через какое-то время (не скажу точно какое) показания часов становятся правильными!!! И опять всё заново.
Да действительно в начале каждого часа показывает точное время потом начинает отставать и так по кругу, отставание на двух прошивках имеется и на оригинале и на прошивке от Norovl , это явно что то в коде. КТо то подскажет что делать?
Где-то в момент чтения сенсоров теряется секунда. С каждым новым чтением сенсоров лаг накапливается. А в начале каждого часа происходит запрос времени с RTC и время корректируется. Где там косяк в коде- вопрос интересный, можно поискать,. но вообще поправить этот баг с отставанием очень просто. Нужно в процедуре clockTick() (файл functions.ino) поставить запрос времени с RTC почаще . Сейчас корректировка времени идет в конце каждого часа - а можно поставить раз в минуту или раз в пять минут
 
  • Лойс +1
Реакции: bakson

b707_2

★★✩✩✩✩✩
22 Июл 2020
182
51
Докладываю-с отключенным в скетче датчиком СО2 - часы идут точно (прошивка Гайвера 1,5).
поясните - это уже после изменения периода опроса RTC на более частый ?

Еще такой вопрос-а можно ли разнести опрос датчиков по времени, а не разом их все опрашивать. Например -датчик температуры раз в 5 сек, датчик давления раз в 1 мин, датчик влажности раз в 20 сек, датчик СО2 1 раз 30 сек, часы опрашивать 1 раз в 1 сек (для точности).
Можно, но это не 2 строчки поменять.

Хотя я бы вообще подумал - зачем оправшивать датчик температуры каждые 5 сек? - температура в комнате не меняется часами.... скорее опрос раз 5 МИНУТ был бы логичнее
 
  • Лойс +1
Реакции: bakson

Aleksey79

✩✩✩✩✩✩✩
28 Апр 2020
23
5
Где-то в момент чтения сенсоров теряется секунда. С каждым новым чтением сенсоров лаг накапливается. А в начале каждого часа происходит запрос времени с RTC и время корректируется. Где там косяк в коде- вопрос интересный, можно поискать,. но вообще поправить этот баг с отставанием очень просто. Нужно в процедуре clockTick() (файл functions.ino) поставить запрос времени с RTC почаще . Сейчас корректировка времени идет в конце каждого часа - а можно поставить раз в минуту или раз в пять минут
Спасибо. Сегодня вечером попробую и отпишусь.
 

b707_2

★★✩✩✩✩✩
22 Июл 2020
182
51
А в какой конкретно строчке поменять значение?
там не обойтись "изменением значения", нужно все строчки опроса RTC перенести в условие , запускающееся, к примеру, раз в минуту.

Как у вас с пониманием кода? - в принципе. там ничего сложного нет, но желательно понимать смысл всех строк, а то напортачите
 
  • Лойс +1
Реакции: bakson

Aleksey79

✩✩✩✩✩✩✩
28 Апр 2020
23
5
@b707_2,
"поясните - это уже после изменения периода опроса RTC на более частый ? " - нет, в коде пока ничего не менял, сегодня попробую. Датчик СО2 пока не приехал так что полноценного тестирования часов пока не получится. А в какой конкретно строчке поменять значение?
void clockTick() {
dotFlag = !dotFlag;
if (dotFlag) { // каждую секунду пересчёт времени
secs++;
if (secs > 59) { // каждую минуту
secs = 0;
mins++;
if (mins <= 59 && mode == 0) {
drawSensors(); // (с)НР
}
}
if (mins > 59) { // каждый час
now = rtc.now();
secs = now.second();
mins = now.minute();
hrs = now.hour();
Я изменил в --> if (mins > 59) { // каждый час // каждую минуту 59 на 1. Теперь все четко.
 
  • Лойс +1
Реакции: danyhin и bakson

1000karat

✩✩✩✩✩✩✩
18 Авг 2020
11
0
Может не правильно менял, вход с фото датчика



// пины
#define BACKLIGHT 10
#define PHOTO A3 ТУТ МЕНЯЛ на A0

#define MHZ_RX 2
#define MHZ_TX 3

#define LED_COM 7
#define LED_R 9
#define LED_G 8
#define LED_B 5
#define BTN_PIN 4

#define BL_PIN 10 // пин подсветки дисплея
#define PHOTO_PIN 0 // пин фоторезистора может и тут надо менять и почему -0
 

b707_2

★★✩✩✩✩✩
22 Июл 2020
182
51
#define PHOTO A3 ТУТ МЕНЯЛ на A0
вы вроде выше писали, что принекоторых значениях настройки у вас яркость меняется. Это значит что датчик работает, значит пины выставлены верно и ничего менять не надо

ЗЫ не надо писать кучу постов подряд, обьединяйте сообщения. Не надо цитировать длинные сообщения целиком. вырезайте только то. что нужно. не засоряйте ветку.