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

ssp1971

★★✩✩✩✩✩
14 Мар 2020
108
71
@AlexBer, зря отключили прогноз погоды. Я думаю если показания колеблются по формуле -100 --0 -- +100 то зона нечувствительности от -20 до +20 а это сигнализирует- погода без изменений. Можно код попробовать такой
if (dispRain >= 20) {
lcd.print ("Sun ");
} else if (dispRain <=-20) {
lcd.print ("Rain ");
} else {
lcd.print ("Norm ");
}
 

Sh6tnik

✩✩✩✩✩✩✩
7 Янв 2020
10
0
а я написал так чтобы убрать минус в процентах
if (!bigDig) {
int dispW = dispRain * - 1; // Чтобы % были без минуса

lcd.setCursor(5, 3);
if (dispRain >= 0) lcd.print (" Sun " + String(dispRain) + "%");
else lcd.print(" Rain " + String(dispW) + "%");
}

и кстати не видел чтобы прогноз поднимался выше 15-20%
 

Sh6tnik

✩✩✩✩✩✩✩
7 Янв 2020
10
0
я повторял https://alexgyver.ru/weatherpredict/ логика та же. думаю сократить до 10. попробую. минус говорит о прогнозе осадков считаю нужным
просто если мы и так ему задаем когда выводить Sun или Rain, в зависимости от dispRain >= 0, приведу на моем примере
if (dispRain >= 0) lcd.print (" Sun " + String(dispRain) + "%");
else lcd.print(" Rain " + String(dispW) + "%");
просто знак минус меня наоборот вводил в заблуждение, и я сделал так, чтобы он выводил только проценты без знака,
Rain -15% в Rain 15%, просто как % могут быть отрицательными. Или я неправ
 

ssp1971

★★✩✩✩✩✩
14 Мар 2020
108
71
@Sh6tnik, тут знак говорит только об отклонении от старого значения в положит или отр сторону а не о знаке процентов а слово в какой зоне находится цифра
 

irfan

✩✩✩✩✩✩✩
8 Апр 2020
2
0
Добрый день. Мереостанцию собрал пока на коленке, жду корпус. Показания CO2 сильно завышены. Первый момент при холодном включении показывает около 400-500 ppm. Примерно через минуту показания зашкаливают за 2500. Если в помещении долго никого нет опускается до 1700-1800. Где искать причину?
 

Sh6tnik

✩✩✩✩✩✩✩
7 Янв 2020
10
0
Добрый день. Мереостанцию собрал пока на коленке, жду корпус. Показания CO2 сильно завышены. Первый момент при холодном включении показывает около 400-500 ppm. Примерно через минуту показания зашкаливают за 2500. Если в помещении долго никого нет опускается до 1700-1800. Где искать причину?
Ну только калибровка наверное поможет, это при проветривании 1700 показывает?
 

irfan

✩✩✩✩✩✩✩
8 Апр 2020
2
0
это при проветривании 1700 показывает?
Показывало до калибровки. Откалибровал как в инструкции, выдержал на улице 2 часа. Теперь постоянно показывает 400ppm. Если подуть в него, значения ненадолго поднимаются и снова падают на 400
 

Sh6tnik

✩✩✩✩✩✩✩
7 Янв 2020
10
0
Показывало до калибровки. Откалибровал как в инструкции, выдержал на улице 2 часа. Теперь постоянно показывает 400ppm. Если подуть в него, значения ненадолго поднимаются и снова падают на 400
Ну оставь в комнате на ночь и посмотри, ты когда дуешь, правильно co2 поднимается, но если у тебя в комнате проветрено они опять опустятся.
а вообще лучше поменять в в коде на это, найти похожее и заменить
#if (CO2_SENSOR == 1)
lcd.setCursor(0, 0);
lcd.print(F("MHZ-19... ")); // датчик СО2
Serial.print(F("MHZ-19... "));
mhz19.begin(MHZ_TX, MHZ_RX);
mhz19.setAutoCalibration(false); // отключить автокалибровку
mhz19.getStatus(); // первый запрос в любом случае возвращает -1
delay(1000);
for (byte i = 0; i < 10; i++) {
if (mhz19.getStatus() == 0) break;
delay(1000); // даём датчику прогреться, и так до 10 раз
}
А то кто то писал что датчику не хватает прогрева, и он начинает показывать не сразу точно, а через несколько минут, пока не прогреется
 

ssp1971

★★✩✩✩✩✩
14 Мар 2020
108
71
По поводу измерений погоды. Это всё таки метеостанция). В проекте https://alexgyver.ru/weatherpredict/ звучит т акая формула angle = map(delta, -250, 250, servo_0, servo_180); // пересчитать в угол поворота сервы в нашем dispRain = map(delta, -250, 250, 100, -100); // пересчитать в проценты
Повторил оба и сделал вывод что нужно в часах применить как в предсказателе.
для dispRain = map(delta, -250, 250, -100, 100); // пересчитать в проценты
вывод в проценты сделал так
lcd.setCursor(7, 3);
if (dispRain >= 20) {
lcd.print (" Sun ");
} else if (dispRain <=-20) {
lcd.print (" Rain");
} else {
lcd.print ("Norma");
}
lcd.setCursor(9, 2);
lcd.print(String(dispRain) + " ");
 
Изменено:

Sh6tnik

✩✩✩✩✩✩✩
7 Янв 2020
10
0
@ssp1971, вопрос такой у тебя не было фантомного знака после значения в погоде (например 1%%) а то у меня возникла такая проблема, она решается если перейти на другой экран и вернуться, тогда показывает как надо
 

ssp1971

★★✩✩✩✩✩
14 Мар 2020
108
71
Да было можно так попробывать
cd.print (String(dispRain) + "% "); то есть после % добавить 1 или два пробела. Стирать будет. Сам остановился на таком варианте без значка % просто со знаком. Он показывае в какую сторону давление шарахнулось. dispRain = map(delta, -250, 250, -100, 100); // пересчитать в проценты.
Ну и "-" влево циклон и "+" вправо антициклон. Хотя кто его там разберёт)
if (!bigDig) { // дождь (с)НР -----------------------------
lcd.setCursor(7, 3);
if (dispRain >= 20) {
lcd.print (" Sun ");
} else if (dispRain <=-20) {
lcd.print (" Rain");
} else {
lcd.print ("Norma");
}

if (dispRain > 0) {
lcd.setCursor(8, 2);
lcd.print ("+");
lcd.print (String(dispRain) + " ");
} else if (dispRain < 0) {
lcd.setCursor(8, 2);
lcd.print (String(dispRain) + " ");
} else {
lcd.setCursor(8, 2);
lcd.print ("!");
lcd.print (String(dispRain) + " ");
}
}
вот теперь с предсказателем https://alexgyver.ru/weatherpredict/ совпадает
 
Изменено:
  • Лойс +1
Реакции: Sh6tnik

ssp1971

★★✩✩✩✩✩
14 Мар 2020
108
71
У меня проблема другого типа. Ставлю время онлайн в окне браузера и прошиваю. Сравниваю после прошивки и вижу отставание 21 сек. Что за лажа не понял. Кондёры стоят. 2 платы побывал то же самое. Ардуину менял. Белиберда.
 
  • Лойс +1
Реакции: vinus20

Komar

✩✩✩✩✩✩✩
21 Янв 2019
7
1
Доброго дня всем. Тут не проблема а скорее интерес ... какие провода кто использует на соединение датчиков и на питание 5v, 12v....интересует АWG ... хочу купить запас но никак не определюсь
 

Komar

✩✩✩✩✩✩✩
21 Янв 2019
7
1
вот как раз и вопрос? по тоньше сколько и потолще сколько? Лучше в AWG (на Али буду брать) 30AWG, 28, 26, 24,20, ...
Какое сечение на соединения схем(AWG), а какое на питание 5в, ну и 12в...
p.s....а что по тоньше и по толще я сам понял :)
 

Komar

✩✩✩✩✩✩✩
21 Янв 2019
7
1
Добрый день!

Итак, кому не по душе слепящий свет от метеостанции в тёмное время суток и кто хотел бы внедрить автоматическую регулировку яркости дисплея и светодиода индикатора в зависимости от освещённости. Рассказываю способ, который применил я на своем девайсе.
Первым делом перепиливаем соединение первого пина между платой дисплея и чёрненькой микросхемой айтуси (указал на картинке, это минусовой контакт подсветки дисплея).

Посмотреть вложение 2854

Дальше спаиваем все компоненты как на картинке. Мосфет я использовал IRF3205, но подойдут любые, которые размыкаются от 5V.
Потом заливаем скетч из вложения. Два раза в секунду (во время мигания точками) снимаются показания с фоторезистора и на их основе регулируется подсветка LCD и сигнального светодиода.
Все изменения, которые внес в скетч отметил комментариями // !!!!!!!!!!!!!!!!!!!!!!!11111111111111!!!!!!!!!!!!!!!!!!!!!!!!
Если компоненты будете заказывать на Али, вот ссылки
Мосфеты
Фоторезисторы

Так же прикрепляю модельки своего корпуса, мож… кому и пригодится.
(! по Вашим замечаниям обновил модельку корпуса , теперь ардуино должна встать в свое отверстие без проблем)
так какой способ с фоторезистором применить то...ваш(с мосфетом) или тот что у Алекса(схема проще)...хотя может ваш надёжнее.?
Прошу прощения я совсем нуб...
 

ssp1971

★★✩✩✩✩✩
14 Мар 2020
108
71
Нашёл статью "Синхронизируем время на модуле DS3231 с компьютером" https://mysku.ru/blog/ebay/49229.html
Статья большая но та что нам нужно ниже. Адоптировал под наши нужды. Попробывал и о чудо часики идут точнее некуда. Файлики прилагаю. Порядок действий такой.
0. библиотеку Arduino-DS3231-master закидываем как обычно C:\Program Files (x86)\Arduino\libraries
1. прошиваем модуль DS3231 -запускаем скетч TimeSyncMySKU и прошиваем. Имеем просто часики)
2. запускаем программку DS3231_Synchronizer на компе , выбираем сом порт и жмём кнопку - синхронизируем время.
3. заливаем опять свой скетч часов.
4. living well, but living well is better
 

Вложения

Изменено:

ssp1971

★★✩✩✩✩✩
14 Мар 2020
108
71
тот что у Алекса(схема проще) РАБОТАЕТ ОТЛИЧНО
 
  • Лойс +1
Реакции: Komar

groovebye

✩✩✩✩✩✩✩
12 Апр 2020
7
0
Собрал метеостанцию - всё работает отлично за исключением одного.

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

Может кто-то сталкивался? Есть ли какое-то более корректное решение проблемы?
 

ssp1971

★★✩✩✩✩✩
14 Мар 2020
108
71
Уфф. доделал наконец... Добавил выносной датчик ds18b20 (с левой стороны находится и график не ведётся), подсветку на адресной ленте сзади (по 2 светодиода с каждой стороны в окошках плёнки. Потом надо будет матовое оргстекло приклеить для рассеивания)). При изменении погоды -100 до -40 (циклон) светится синим (осадки) от -20 до +20 жёлтым это без изменений погода (размах + -20 %) и от 20 до 100 (антициклон) зелёным цветом как в этом скетче https://community.alexgyver.ru/threads/chasy-meteostancija-obsuzhdenie-proekta.1075/post-34573. Сравнивал с проэктом предсказывателя совпадает отлично. Скетч изменил отсюда https://github.com/Norovl/meteoClock как мог вырезал дополнительные экраны (мне не нужно), двойной клик, расположение поменял эдементов. Графики как в прошивке. Тройной клик вход в настройки. Настройку индикатора (в меню прошивки это настройка светодиода использовать не стал. Добавил адресные светодиодики). Датчик CO2 тоже ставить не стал балавство это. Датчик освещённости (фоторезистор) находится в отверстии сзади (фото) и не мешает срабатыванию из за подсветки (что удивительно но работает отлично). Вместо плёнки в кассету засунул их фото в масштабе (в формате .docx). Принтера нету у меня ). Кто захочет повторить говорю сразу что места мало внутри и все перегородки в обоих половинках нужно будет выломать (кроме стоек для болтов) обычными маленькими плоскогубцами. Пластик хрупкий проблем нет в этом. Дисплей приклеен на 2х сторонний скотч тонкий (для радиаторов на алике покупал). В планах на место графика СО2 (в меню отключаемая функция) встроить датчик ds18b20. Если кто вперёд сделает выложите пожалуйста ибо программист из меня не очень.
 

Вложения

Изменено: