Часы-метеостанция. Задания на доработку

Старик Похабыч

★★★★★★★
14 Авг 2019
4,284
1,304
Москва
ну у тебя в любом случае есть где то переменная с минутами. Пусть она будет minuta, объявляешь еще 1 такую переменную и называешь к примеру old_minuta.
а далее код
if (old_minuta!=minuta)
{
обновление экрана
old_minuta=minuta;
}
и все. будет меняться только в том случае, если поменялась минута. а это и есть раз в минуту
 

Серый

★✩✩✩✩✩✩
24 Дек 2019
18
36
Всем привет. По...л свои сенсорные кнопки, как переписать скетч чтобы информация на экране (часы, графики) менялась сама например раз в минуту?
А в чём трудность воткнуть обычный микрик/кнопку вместо емкостного датчика? Одной ногой на землю, второй на D4.
 

dimonick

★✩✩✩✩✩✩
2 Янв 2020
20
20
Kyiv
хай всем! смотрю никто не пробовал переделать на другой дисплей например как от телефона, намного меньше места ж занимает...
 

klient

✩✩✩✩✩✩✩
22 Дек 2019
5
3
Переделать бы на большой дисплей на ws2812b матрицах..
 

klient

✩✩✩✩✩✩✩
22 Дек 2019
5
3
всего 5 дюймов, маловато будет, тут бы совместить проект метеостанции с рюкзаком на лед матрицах, было бы шикарное устройство...
 

pioneerr

✩✩✩✩✩✩✩
14 Янв 2020
2
0
DS18b20 "прикрутил", давление и rain посунул вправо, внешнюю температуру поместил под внутренней, теперь буду играться с графиками и безпроводным подключением внешнего датчика... Это пока непаханое поле...
При проводном подключении разница температур в 0.2...0.3 градуса....
Вы уже подключили внешний датчик температуры? если да расскажите о реализации, хочу собирать данную метеостанцию
 

marceline0x0

✩✩✩✩✩✩✩
28 Ноя 2019
2
1
Вопрос - к умельцам проект meteoClock никто не переносил на nodemcu?, хотя бы понять как дисплей правильно завести D1 D2 тестовый скетч показывает картинку 2004 i2c, а вот код алекса ломает голову как пины переназначить.
 

Кирюша

✩✩✩✩✩✩✩
14 Янв 2020
11
1
Киев
А управление и просмотр данных через смартфон? Это тоже реально???!)
Конечно реально, даже проще чем на 7-ми сегментный индикатор. Пока я жду модули из поднебесной, у меня esp8266 меряет температуру и отправляет данные по wi-fi на телефон где их и считываю.
 

Владник

✩✩✩✩✩✩✩
11 Дек 2019
4
0
Всем добрый день! Подскажите, можно ли подключить еще удаленный датчик температуры, т.е. чтобы измерять температуру и за окном. Если можно, то какой датчик и как подключить? Не обязательно отдельно показывать, хотя бы просто переключать внутренний-внешний датчики
 
Изменено:

tulyak

✩✩✩✩✩✩✩
7 Окт 2019
9
6
хай всем! смотрю никто не пробовал переделать на другой дисплей например как от телефона, намного меньше места ж занимает...
умею подключать тфт дисплей, к ардуино и к есп. снял данные с часов, бме280, дальше не знаючтоделать и как. хочу подвесить и со2 и пыль и формальдегид. пробовал по другому проекту, но не пошло, а автор не публиковал исходный код. дисплей 3.2 дюйма отлично. Часы Гайвера туда, и будет корошо, но я к сожалению... не волшебник. Заклинаний не знаю, но паялочкой могу махать. могу состряпать полигон и на нем пробовать исходники.
 
  • Лойс +1
Реакции: Jevega

sandro

✩✩✩✩✩✩✩
11 Фев 2020
1
0
Всем привет! Метео-станция отличный проект. Хотел бы добавить еще датчик пили PMS5003, нашел проект с этим датчиком https://how2electronics.com/interfacing-pms5003-pm2-5-air-quality-sensor-with-arduino/ но как соединить к проекту Алекса не знаю, не силен в программировании. Подскажите как добавить или может кто то готов взяться?
 

2012de

✩✩✩✩✩✩✩
24 Мар 2020
25
0
Приветствую!
Алекс, можешь, пожалуйста, помочь с подключением к этой станции пьезоэлемента (пищалки) из наручных часов?
Хочу что б в начале каждого часа пикал.
Куда его подключать, в схеме. И настроить прошивку. (может кому-то ещё будет интересно)
Пьезоэлементы (пищалки) в часах.jpg
 

leon61

✩✩✩✩✩✩✩
8 Янв 2020
1
1
@AlexGyver, можно добавить автоматическое переключение на летнее время?
что б убрать необходимось 2 раза в год прошивать время?
 
  • Лойс +1
Реакции: Zongo

Komar

✩✩✩✩✩✩✩
21 Янв 2019
7
1
Вот кто нибудь пробовал подключить мр3 модуль для будильника с музыкой вместо ьузера?
 

skie

✩✩✩✩✩✩✩
1 Мар 2020
2
2
А почему для проекта была выбрана плата Arduino NANO? Мне кажется на основе к примеру NodeMCU можно получить возможность отправки собираемых данных на удаленный сервер, да и часы при наличии сети можно реализовать без автономного модуля.
 

2012de

✩✩✩✩✩✩✩
24 Мар 2020
25
0
Приветствую всех!
Может кто подсказать, какой должна быть верная функция периода времени, типа: if ((hrs >= 22 && mins == 15) || (hrs < 5 && mins == 45)) ?
Почему-то при добавлении минут функция не работает.
Работает только при таком положении if (hrs >= 22 || hrs <= 5).
Как можно добавить и значение минуты?
 

OKF

✩✩✩✩✩✩✩
29 Фев 2020
33
7
if (hrs * 60 + mins >= 22 * 60 + 15 || hrs * 60 + mins <= 5 * 60 + 45)

#define hm(h, m) ((h) * 60 + (m))
if (hm(hrs, mins) >= hm(22, 15) || hm(hrs, mins) <= hm(5, 45))
 
  • Лойс +1
Реакции: 2012de

OKF

✩✩✩✩✩✩✩
29 Фев 2020
33
7
Мы тут против пьянства и ожирения! :)
Благодарю мало. ПИВО! Название раздела прочти.
 

VezGleb

✩✩✩✩✩✩✩
24 Май 2020
1
0
Добрый день! Есть беспроводной Радиочастотный пульт дистанционного управления (1527 кодирование) Модель: TX118SA-4, возможно его привязать и прописать на пины А1 и А2? Цель такая- при влажности ниже 35% подается секундный сигнал (0) на А1, при влажности выше 40% на А2. Необходимо управлять увлажнителем по RF каналу. пульт такой
 

Вложения

2012de

✩✩✩✩✩✩✩
24 Мар 2020
25
0
Приветствую всех! Может кто подправить мою ошибку?
Как правильно составить функцию ожидания, в секундах..?
if (analogRead(PHOTO) < BRIGHT_THRESHOLD) >= (secs == 15)) { - не работает.
Типа, если освещение меньше назначенного, в течении (держится) 15сек., то яркость дисплея на минимум..
Может ни так вписываю ожидание?
.

Приветствую всех! Может кто подправить мою ошибку?
Как правильно составить функцию ожидания, в секундах..?
if (analogRead(PHOTO) < BRIGHT_THRESHOLD) >= (secs == 15)) { - не работает.
Типа, если освещение меньше назначенного, в течении (держится) 15сек., то яркость дисплея на минимум..
Может ни так вписываю ожидание?
.
Разобрался ))
Вот код, может кому понадобится..

unsigned long timing;
unsigned long period_time = (long)15000; // 15 секунд

void checkBrightness() {
if (analogRead(PHOTO) > BRIGHT_THRESHOLD) timing = millis();
if ((hm(hrs, mins) >= hm(23, 15) || hm(hrs, mins) <= hm(5, 46)) && (millis() - timing > period_time)) {
analogWrite(BACKLIGHT, LCD_BRIGHT_MIN);
#if (LED_MODE == 0)
LED_ON = (LED_BRIGHT_MIN);
#else
LED_ON = (255 - LED_BRIGHT_MIN);
#endif
} else
analogWrite(BACKLIGHT, LCD_BRIGHT_MAX);
}

Затухание дисплея по времени.
У меня с 23:15 по 5:46, если освещение ниже установленного держится в течении 15 сек (избежать дребезжание фоторезиста), то яркость дисплея на Мин... иначе Макс...
 

r4wabr

★✩✩✩✩✩✩
21 Май 2019
47
15
41
Ижевск
Неправильно будет работать. После вспышки света будет 15 секунд светиться дисплей на полной яркости. Думай еще.
C++:
#define PERIOD_TIME 15000

unsigned long timing;
boolean light_tim=false; // статус таймера на дребезг
boolean light_min=false; // статус ночного режима подсветки

void checkBrightness() {

  if (!light_min && (analogRead(PHOTO) < BRIGHT_THRESHOLD) ) {
   if ( !light_tim) {
     timing = millis();
     light_tim=true;
    }
    light_min=true;
    }

  if (light_min && (analogRead(PHOTO) > BRIGHT_THRESHOLD) ) {
   if ( !light_tim) {
     timing = millis();
     light_tim=true;
    }
    light_min=false;
    }

  if (light_tim)
    if (millis() - timing > PERIOD_TIME)) {
      light_tim=false;
       if ((hm(hrs, mins) >= hm(23, 15) && hm(hrs, mins) <= hm(5, 46)) && light_min) {
        analogWrite(BACKLIGHT, LCD_BRIGHT_MIN);

        #if (LED_MODE == 0)
          LED_ON = (LED_BRIGHT_MIN);
        #else
          LED_ON = (255 - LED_BRIGHT_MIN);
        #endif
   } else analogWrite(BACKLIGHT, LCD_BRIGHT_MAX);

       }
Теперь переключение будет происходить только при условии смены освещенности и удержании данного значения в течении 15 секунд.
А если еще более логически, то установка яркости произойтет по результатам условия только через 15 секунд после возникновения изменения. Следовательно если была короткая вспышка, то через 15 секунд освещенность будет такой же как и до вспышки.
 
Изменено:
  • Лойс +1
Реакции: 2012de

2012de

✩✩✩✩✩✩✩
24 Мар 2020
25
0
@2012de, Ну что? Все получилось?
Всё как в аптеке, в плюсе с твоим дополнением! )
(y)

Вот только ни как не пройдёт моргание дисплея, каждые 5 сек...
Весь код перелопатил, всё так же..
Возможно из-за датчика MHZ19. Заметил, дисплей моргает в такт с диодом в датчике.
Переменил много адаптеров зарядок телефонных, на всех так..

C++:
И не пойму, почему в разделе:  void checkBrightness() {
......   
Находится кусок кода, связанный с CO2 :
    
  if (dispCO2 < 800) setLED(0);
      else if (dispCO2 < 1200) setLED(3);
      else if (dispCO2 >= 1200) setLED(1);
    }
}