Измерение давления во времени BMP280

Использование датчиков и обсуждение пользовательских блоков к ним
anabolik
Рядовой
Сообщения: 12
Зарегистрирован: 24.10.2017{, 19:52}
Репутация: 0
Откуда: Saratov

Измерение давления во времени BMP280

#1

Сообщение anabolik » 29.11.2017{, 13:04}

Ребята подскажите как реализовать следующее: Имеется барометр БМП280, нужно чтобы он не только показывал данные в реальном времени, но и анализировал показания в течении например 2 - 3 и допустим выводил некое среднее значение показаний за это время.
Заранее спасибо)

Airis
Сержант
Сообщения: 175
Зарегистрирован: 24.09.2015{, 07:27}
Репутация: 0

Измерение давления во времени BMP280

#2

Сообщение Airis » 29.11.2017{, 15:45}

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

Добавлено (29.11.2017, 15:45)
---------------------------------------------
Тут даже лучше использовать не просто массив а стек.

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Измерение давления во времени BMP280

#3

Сообщение pan » 29.11.2017{, 15:48}

в блоках пользователей есть блок усреднения

Аватара пользователя
Nikan
Майор
Сообщения: 1194
Зарегистрирован: 29.12.2016{, 00:49}
Репутация: 100
Откуда: москва

Измерение давления во времени BMP280

#4

Сообщение Nikan » 29.11.2017{, 16:33}

.
Последний раз редактировалось Nikan 23.03.2023{, 18:42}, всего редактировалось 1 раз.

anabolik
Рядовой
Сообщения: 12
Зарегистрирован: 24.10.2017{, 19:52}
Репутация: 0
Откуда: Saratov

Измерение давления во времени BMP280

#5

Сообщение anabolik » 29.11.2017{, 20:38}

Airis писал(а):Циклически загоняйте данные о давлении в массив а дальше, а дальше уже с массива можно вычислить средняя значение, минимальное, максимальное и кучу всего на что способна математика.
Я так понимаю, надо сделать следующее: Создаю массив на 60 значений, на дату его кидаю значение датчика давления, на save делаю допустим генератор симметричный который раз в секунду будет давать импульс на запись, потом беру массив сложения снимаю с него данные делю их на 60 и получаю среднее значение ?

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Измерение давления во времени BMP280

#6

Сообщение pan » 29.11.2017{, 20:45}

метка времени не понятно зачем нужна.
 60 значений думаю слишком много.
и лучше не массив а стек.
периодически делите сумму значений стека на его размер(количество записей) вот и все. "среднее" некуда.

Airis
Сержант
Сообщения: 175
Зарегистрирован: 24.09.2015{, 07:27}
Репутация: 0

Измерение давления во времени BMP280

#7

Сообщение Airis » 29.11.2017{, 20:52}

anabolik писал(а):Создаю массив на 60 значений,
Тут лучше использовать не просто массив а стек. В стек циклически пишется новые данные а стрые автоматически стирается. Но при большем размере массива (стека) надо подумать об автоматическом заполнении всего массива, при подаче питание, иначе, пока весь массив незаполнится до конца, результаты вычисление над данными массива будет очень далеки от реальных.

anabolik
Рядовой
Сообщения: 12
Зарегистрирован: 24.10.2017{, 19:52}
Репутация: 0
Откуда: Saratov

Измерение давления во времени BMP280

#8

Сообщение anabolik » 29.11.2017{, 21:30}

pan писал(а):периодически делите сумму значений стека на его размер(количество записей) вот и все. "среднее" некуда.
А значения то чем вынимать суммой массива сразу или выдергивать значение по одному используя получение элемента массива?
может кто скинет образец схемы?

Добавлено (29.11.2017, 21:30)
---------------------------------------------
А потом 60 слишком много говорите, а если мне нужно допустим среднее значение за 3 -4 часа?

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Измерение давления во времени BMP280

#9

Сообщение pan » 29.11.2017{, 21:40}

да, берете сумму массива и делите.
anabolik писал(а):нужно допустим среднее значение за 3 -4 часа?
 я думал просто нужно усреднение чтоб не скакали значения.
 ну делайте 60

Airis
Сержант
Сообщения: 175
Зарегистрирован: 24.09.2015{, 07:27}
Репутация: 0

Измерение давления во времени BMP280

#10

Сообщение Airis » 29.11.2017{, 21:41}

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

anabolik
Рядовой
Сообщения: 12
Зарегистрирован: 24.10.2017{, 19:52}
Репутация: 0
Откуда: Saratov

Измерение давления во времени BMP280

#11

Сообщение anabolik » 29.11.2017{, 21:46}

От ответов еще больше возникает вопросов)) а как то делается что-бы сумма массива вынималась не сразу а раз в какое-то время?

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Измерение давления во времени BMP280

#12

Сообщение pan » 29.11.2017{, 21:53}

вроде по русски написано
Изображение

Добавлено (29.11.2017, 21:52)
---------------------------------------------
а, наоборот надо..

Добавлено (29.11.2017, 21:53)
---------------------------------------------
поставьте блок суммы на отдельную плату и выполняйте её по условию когда нужно

anabolik
Рядовой
Сообщения: 12
Зарегистрирован: 24.10.2017{, 19:52}
Репутация: 0
Откуда: Saratov

Измерение давления во времени BMP280

#13

Сообщение anabolik » 29.11.2017{, 22:06}

Опишу задачу подробнее может я не так все и делаю). Я делаю метеостанцию для катера. Хочу сделать предупредитель шторма. Т.е условно если в течении 3 - 4 часов резко падает давление на 2-3 мм ртутного столба то срабатывало бы предупреждение.

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Измерение давления во времени BMP280

#14

Сообщение pan » 29.11.2017{, 22:14}

опишу как я это представляю.
на примере 1 часа.
запись в стек каждую минуту. (60 записей)
нужно узнать как изменилось давление за последние пол часа.
значит берем из стека давление с индексом 60 (последнее значение) и сравниваем его с давлением с индексом 30 (30 минут назад)
и смотрим разницу

Airis
Сержант
Сообщения: 175
Зарегистрирован: 24.09.2015{, 07:27}
Репутация: 0

Измерение давления во времени BMP280

#15

Сообщение Airis » 29.11.2017{, 22:20}

Вариантов как сделать такую схему много.
Вот один такой:

Тут при подачи напряжение за кароткое время заплняется весь масссив текушим значением давление, а дальше работает с нормальной скорости заполнение. Хотя для атмосферного давление можно просто весь массив заполнить константой нормального давление, а дальше уже заполнять стек новыми данными.
Вложения
0135535.png
Последний раз редактировалось Airis 29.11.2017{, 22:21}, всего редактировалось 1 раз.

Airis
Сержант
Сообщения: 175
Зарегистрирован: 24.09.2015{, 07:27}
Репутация: 0

Измерение давления во времени BMP280

#16

Сообщение Airis » 29.11.2017{, 22:29}

Сравнение можно сделать так
Вложения
7091880.png

anabolik
Рядовой
Сообщения: 12
Зарегистрирован: 24.10.2017{, 19:52}
Репутация: 0
Откуда: Saratov

Измерение давления во времени BMP280

#17

Сообщение anabolik » 29.11.2017{, 22:46}

Опишу задачу подробнее может я не так все и делаю). Я делаю метеостанцию для катера. Хочу сделать предупредитель шторма. Т.е условно если в течении 3 - 4 часов резко падает давление на 2-3 мм ртутного столба то срабатывало бы предупреждение.

Добавлено (29.11.2017, 22:46)
---------------------------------------------
Благодарю всеех за помощь !

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 481
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 21
Откуда: Нижний Новгород
Имя: Евгений

Измерение давления во времени BMP280

#18

Сообщение eugeneb » 30.11.2017{, 08:09}

Интересная задачка.
А зачем тогда усреднение? По-моему здесь требуется нахождение максимума и минимума за последние 4 часа. И величина разницы между ними и будет сигналом тревоги.
Последний раз редактировалось eugeneb 30.11.2017{, 08:14}, всего редактировалось 1 раз.

anabolik
Рядовой
Сообщения: 12
Зарегистрирован: 24.10.2017{, 19:52}
Репутация: 0
Откуда: Saratov

Измерение давления во времени BMP280

#19

Сообщение anabolik » 30.11.2017{, 12:38}

eugeneb писал(а):А зачем тогда усреднение?
Насколько я в этом разобрался давление имеет суточное колебание и если выдергивать показания из конкретной ячейки массива то будет слишком сильная погрешность. Поэтом логично сначала усреднить значения за допустим час а потом сравнить это число с показанием первой ячейки массива и сделать вывод а тренде давления.

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 481
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 21
Откуда: Нижний Новгород
Имя: Евгений

Измерение давления во времени BMP280

#20

Сообщение eugeneb » 30.11.2017{, 16:12}

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

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

Я бы снимал 8-10 показаний за раз и тут же усреднял с отбросом выпадающих. Делал бы это, допустим, раз в пять минут. Получается 12 очищенных от флуктуаций (и, если надо, скорректированных) показаний в час. Эти показания задвигаем в FIFO буфер нужной глубины. Допустим на 6 часов - 72 ячейки.

А далее при получении очередного пятиминутного отсчёта сравнивал бы его со всеми наличными отсчётами. Если оно меньше любого отсчёта из архива больше чем на величину тревоги - вот он шторм.

Я пока не говорю о реализации в FLProg. Я говорю об алгоритме. Это то что вы хотели?

Я почитал о предсказании погоды по барометру. Там можно не только шторм предсказывать, но и просто хорошую или плохую погоду. Но это вы потом сможете добавить, если захотите.
Последний раз редактировалось eugeneb 30.11.2017{, 16:14}, всего редактировалось 1 раз.

Ответить

Вернуться в «Датчики температуры, влажности и давления»