Реклама ⓘ
Главная » Arduino
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

Барометр с расширенными функциями

Величина атмосферного давления, скорость и характер его изменений, играют важную роль в предсказании погоды, а также сильно влияют на самочувствие людей, подверженных метеозависимости - недомоганиям, связанным с различными погодными явлениями. Для измерения атмосферного давления используются барометры. Механический барометр анероид имеет две стрелки. Одна показывает текущее давление. Другая стрелка, которую можно вручную установить в любое положение, позволяет отметить измеренное значение, чтобы через некоторое время определить  тенденцию изменения атмосферного давления.  Весьма  желательно, чтобы электронный барометр также показывал не только величину атмосферного давления, но и позволял определить имеет ли  место рост или спад и как быстро меняется измеряемый параметр .   

Недорогие метеостанции бытового назначения показывают только  пиктограммы с изображениями дождевых капель, туч или солнца. Трудно сказать, как эти пиктограммы связан с атмосферным давлением и имеется ли у данной метеостанции барометрический датчик или используются иные - креативные способы предсказания погоды . Более продвинутые метеостанции показывают текущее значение давления в виде числа, а изменение давления за несколько предшествующих часов в виде грубой столбчатой диаграммы , несущей главным образом декоративную функцию. Такие метеостанции стоят существенно дороже. Также на рынке имеются весьма совершенные устройства , предназначенные для моряков, яхтсменов и т.п., с высокой точностью показывающие и изменения давления и текущее значение , но стоят такие устройства очень дорого.

В данной публикации рассматривается простой самодельный барометр, показывающий величину и скорость изменения атмосферного давления, а также температуру воздуха.   

Внешний вид устройства представлен на фотографии.

Барометр с  расширенными функциями

Результаты измерений выводятся на двухстрочный знакосинтезирующий дисплей. В первую строку выводится результат измерения текущего атмосферного давления в мм.рт.ст., отклонение текущего значения давления от среднего значения для данного места (положительным считается превышение текущего значения давления над средним), а также температура воздуха в градусах Цельсия. Данные, приведенные в верхней строке, обновляются каждые 6 секунд. Вывод новых  данных сопровождается вспышкой светодиода, расположенного над индикатором.

Во вторую строку индикатора выводятся приращения давления за последний час, три часа и десять часов. Если давление за указанный временной промежуток возросло, то соответствующее приращение выводится с плюсом, в противном случае - с минусом. Данные во второй строке обновляются каждые 10 минут.  Сразу после включения барометра вторая строка будет пуста. Числовые значения появятся там по прошествии 1-го часа, 3-х часов и 10-ти часов соответственно.

Барометр предназначен для работы в сухом отапливаемом помещении при температуре 0...40 °C и атмосферном давлении 600...825 мм рт. ст.

Точность измерения давления и температуры полностью определяется точностью использованного датчика давления BMP180 фирмы Bosch. Типовая погрешность измерения давления составляет -1hPa, что примерно соответствует 0.75 мм.рт.ст. Шумовая составляющая при измерении давления - 0.02 hPa (0.015 мм.рт.ст.). Типовая погрешность измерения температуры вблизи значения 25 °C составляет +/- 0.5°C. Более детально с техническими характеристиками датчика BMP180 можно ознакомиться по тех. описанию, находящемуся в приложении.  

Интервалы времени в данном устройстве отсчитываются программно. Погрешность формирования этих интервалов, измеренная автором, не превышает одной минуты за 10 часов.  

Схема барометра приведена на рисунке.

Схема барометра

Основным элементом устройства является модуль Arduino Nano.  Автор использовал 3-ю версию с микроконтроллером ATmega 328. Память модуля в данном случае занята только на треть, по этому возможно применение модуля Arduino Nano с микроконтроллером ATmega 168. 

Дисплей Winstar WH1602L - двухстрочный на 16 знакомест в каждой строке. Его основой является контроллер HD44780.  Резистор R2 позволяет подстроить контрастность изображения. Если напряжение на выводе 3 (Vo) будет сильно отличаться от оптимального, то на дисплее совсем не будет видно никакого изображения. Это обстоятельство необходимо учитывать при первом включении устройства. Для экземпляра дисплея, используемого автором, оптимальным оказалось напряжение на выводе 3 около 1 В.  Резистор R3 определяет величину тока светодиодов подсветки. 

Датчик давления BMP180 имеет металлический корпус размером 3.6х3.6x1 мм. Выводы его представляют собой контактные площадки, расположенные на дне корпуса. Кроме того датчик требует питания 1.8 - 3.6 В. Уровни сигналов, которыми датчик обменивается с внешним устройством, также отличаются от требуемых. Эти обстоятельства затрудняют непосредственное использование BMP180. К счастью данная проблема легко решается. В продаже имеются модули на основе датчиков BMP180, в состав которых входят сами датчики и все согласующие элементы. Эти модули представляют собой плату размером 10x13 мм. Их стоимость - примерно 1.4 USD.  Внешний вид модуля представлен на следующей фотографии.

Светодиод HL1 вспыхивает каждые 6 секунд сигнализируя о том, что на табло барометра выведены новые результаты.  Автор использовал зелёный светодиод диаметром 3 мм  L-1154GT фирмы Kingbright. 
Конденсатор C1 имеет довольно большую ёмкость, что  делает устройство нечувствительным к  кратковременным сбоям питания. Если  это не требуется, то  C1 можно уменьшить до 500 микрофарад.  
Диод D1 отключает подсветку индикатора при сбоях питания. Это увеличивает время автономной работы барометра от энергии, запасённой в конденсаторе C1. 

Устройство можно питать от любого источника постоянного тока (зарядного устройство сотового телефона, блока питания какого-либо гаджета и т.п.) с выходным напряжением 8...12 В. При напряжении 9 В барометр потребляет около 80 mA.    

Устройство собрано на макетной плате размером 85 х 55 мм, которая прикреплена к дисплею с помощью пластины из оргстекла. 

Датчик BMP180 располагается внизу - как можно дальше от основных тепловыделяющих элементов, которыми являются резистор R3 и дисплей со светодиодной подсветкой. Корпусом устройства является  пластмассовая  коробка размером 160х160х25. В нижней и верхней стенках коробки следует просверлить ряд вентиляционных отверстий.

Скетч, который нужно прошить в память модуля Arduino Nano, представлен в приложении. Автор использовал среду Arduino IDE 1.8.1. Для поддержки датчика давления требуется установить библиотеку Adafruit-BMP085. Соответствующий файл имеется в приложении.

Перед загрузкой скетча в строке 17 следует вместо числа 740.0, которое соответствует среднему давлению в месте установки авторского экземпляра барометра, вписать среднее давление в мм. рт. ст. , соответствующее тому месту, где будет установлен Ваш барометр. В первом приближении этот параметр можно определить по формуле Рср = 760 - 0.091h, где h -высота над уровнем моря в метрах. Высоту проще всего определить с помощью GPS навигатора.

Данная формула не учитывает многие факторы, влияющие на атмосферное давление и применима только для высот до 500 м. Описание способов более точного определения среднего давления выходит за рамки данной публикации. С ними можно ознакомиться по многочисленным материалам посвящённым метеорологии, которые имеются в интернете.

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
A1 Модуль с датчиком BMP1801 Поиск в магазине ОтронВ блокнот
A2 Плата Arduino
Arduino Nano 3.0
1 Поиск в магазине ОтронВ блокнот
VD1 Выпрямительный диод
1N4007
1 Поиск в магазине ОтронВ блокнот
HG1 LCD-дисплейWH1602L1 WinstarПоиск в магазине ОтронВ блокнот
HL1 СветодиодL-1154GT1 KingbrightПоиск в магазине ОтронВ блокнот
С1 Электролитический конденсатор4700 мкФ х 16 В1 Поиск в магазине ОтронВ блокнот
С2 Электролитический конденсатор220 мкФ х 16 В1 Поиск в магазине ОтронВ блокнот
R1 Резистор
1 кОм
1 Поиск в магазине ОтронВ блокнот
R2 Подстроечный резистор10 кОм1 Поиск в магазине ОтронВ блокнот
R3 Резистор
100 Ом 0.5 ВА
1 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 1
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (32) | Я собрал (0) | Подписаться

+1
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0
bytex #
Давно хотел собрать что-то похожее. Но вот информативность мне показалась неудобной. Если бы в виде графика, было бы супер. Но всё равно автору респект!
Ответить
0

[Автор]
Starik #
Уважаемый bytex, спасибо за интерес, проявленный к данной публикации. Я полностью согласен с Вами - графическая форма нагляднее, но тут есть одна сложность - как выбрать масштаб графика? Если "размахнуть" на вертикальную ось всю шкалу - скажем от 700 до 800 мм. рт. ст., то не будет видно обычных, повседневных (не штормовых) изменений давления. Практически будет прямая линия в середине дисплея и всё, а шторма у нас в подмосковье бывают редко... Если подстраивать масштаб под реальный график, то пропадает наглядность. Нужно будет каждый раз смотреть на текущий масштаб и вычислять - на сколько сильно меняется давление. Идеальный вариант - и цифры и график, но тогда нужен серьёзный дисплей...
Ответить
0
Фобос #
Вот на основе этой схемы разработал барометр с графиком. График подстраивается под масштаб, показан шаг изменения давления для определения как быстро изменяется давление, индикация показателей давления за последние 15 часов, просмотр показаний давления за последние 15 часов. https://radiokot.ru/artfiles/6700/
Ответить
0
Zlodey #
Ну да, визуально как-то не очень понятно что к чему
Ответить
0
Pauk #
Что нужно переделать, что бы использовать не Ардуино, а мега88?
Ответить
0

[Автор]
Starik #
Уважаемый Pauk, боюсь, что переделывать придётся много и главное - переписывать программу, отлаживать её и т.д. Модуль Arduino Nano в интернет-магазинах стоит около 150 руб. - гораздо дешевле того времени, которое Вы потратите на переделку.
Ответить
0
Obodoc #
Пробовал bmp 280... Давление определяет нормально, но температуру - ужас. До четырех градусов брешет. DS1820 точнее, но флуктации в пределах полградуса.
Ответить
0

[Автор]
Starik #
Уважаемы Obodoc, должен отметить, что мой экземпляр BMP180 тоже не без греха. Завышает температуру на 1.6 градуса. Пришлось ввести поправку в программе. Из той версии скетча, которая приложена к статье, я соответствующую строчку удалил. Думал, что мне просто попался неудачный экземпляр датчика.
Ответить
0
Petr #
К сожалению датчики BMP180 врут по температуре довольно часто (китайские клоны). Не могли бы Вы выложить программу в варианте с коррекцией температуры? Заранее благодарен.
Ответить
0
Dima #
Подскажите, пожалуйста, где можно почитать теорию, на основании которой был построен алгоритм этого проекта.
Спасибо за интересную разработку.
Ответить
0

[Автор]
Starik #
Уважаемый Dima, спасибо за позитивную оценку статьи. По методам обработки результатов измерений в сети много материалов. Очень рекомендую книгу Хемминга "Численные методы для научных работников и инженеров". Это своего рода Библия для всех, кто занимается обработкой экспериментальных данных.
Ответить
0
Андрей #
Напряжение питания модуля GY-68 BMP180 1,8 В ~ 3,6 В
Ответить
0

[Автор]
Starik #
Уважаемый Андрей, спасибо за внимание к данной публикации. Ваша фраза "Напряжение питания модуля GY-68 BMP180 1,8 В ~ 3,6 В" к сожалению не содержит в конце никакого символа, позволяющего определить, является ли она вопросом или утверждением. В авторском варианте устройства модуль питается напряжением 5В.
Ответить
0
Андрей #
Думаю, что в этом кроется ошибка
Ответить
0

[Автор]
Starik #
Уважаемый Андрей, уточните пожалуйста, о чьей ошибке Вы говорите? В чём она заключается? В описании к модулю GY-68 указано, что он должен питаться от источника с напряжением 5 В. В состав модуля входит микросхема - линейный трёхвыводный стабилизатор напряжения, который питает датчик BMP-180. У меня всё это успешно работает.
Ответить
0
Андрей #
Напряжение питания модуля GY-68 BMP180 1,8 В ~ 3,6 В. Соответственно, его нельзя включать по приведенной схеме.
Ответить
0

[Автор]
Starik #
Вероятно Вам досталась какая-то другая версия модуля.
Ответить
0
Павел #
Уважаемый автор. Повторил Вашу Схему, все хорошо работает.Но я решил использовать индикатор WH-1602 и дополнительно вставить часы на ds3231, но скетч периодически зависает на какое то время. Помогите пожалуйста найти мою ошибку. (В Вашем скетче, я для своего удобства, сделал изменения)
Прикрепленный файл: sketch_apr27a.ino
Ответить
0

[Автор]
Starik #
Уважаемый Павел, рад, что "всё хорошо работает". К сожалению я не имею опыта работы с часами на ds3231. В связи с этим не могу быть Вам полезен в части решения проблемы с периодическим зависанием. Надеюсь, что кто-то из более опытных коллег поможет Вам или Вы сами сумеете решить возникшую проблему.
Ответить
0
Pavel54 #
Спасибо за ответ. Жалко. Думал Вам такое усовершенствование тоже бы пригодилось?
Ответить
0

[Автор]
Starik #
Вам, Павел, спасибо за интерес, проявленный к данной разработке. Что касается совмещения барометра с часами, то как мне кажется, скромные возможности использованного индикатора препятствуют такому расширению функций.
Ответить
0
PetrS #
Многие датчики BMP180 врут по температуре (китайские клоны). Не могли бы Вы выложить прошивку в варианте с коррекцией температуры? Заранее благодарен.
Ответить
0
Aronnax #
Коррекция не спасает! Делал проект, с коррекцией температуры! Датчик температуры очень инерционный!
Ответить
0
PetrS #
Спасибо за ответ, у меня ситуация следующая: помещаю в закрытый стеклянный бокс собранное устройство и ртутный термометр с растянутой шкалой. Даю время застабилизироваться показаниям температуры. ВМР180 показывает тупо на ~1,2 градуса больше. Другой экземпляр показывал на ~1,4 больше.
Отредактирован 22.05.2020 18:39
Ответить
0
Aronnax #
Я так же делал! На 12 часов, в небольшое помещение, в пенопласт. коробку, в которую помещён электрон.термометр, кл.т. 0,05.По термометру ввожу коррекцию для датчика t° bmp180. Через какое-то время всё равно показания датчика темпер. bmp180 врут! Он очень медленно реагирует на изменения температуры!(мои предположения). Я Вам в личку написал.
Ответить
+1

[Автор]
Starik #
Уважаемый PeterS, в закрытом стеклянном боксе воздух может прогреваться тепловыделяющими элементами барометра. Если это не так и ошибка измерения температуры вызвана погрешностью датчика, то скорректируйте её программно. Чтобы индикатор показывал на 1.2 градуса меньше нужно в строке 72 скетча записать
" t=bmp.readTemperature()-1.2; ". Для другого экземпляра датчика вместо -1.2 подставьте -1.4. Успеха Вам!
Ответить
0
PetrS #
Огромное спасибо, добавил корректирующие значения, всё отлично!
P.S. По моему разумению выделение тепла ничтожно так как индикатор использую без подсветки. Через какое то время наступает равновесие, т.е. количество тепла выделяемого и количество тепла теряемого стенками сосуда выравнивается.
Отредактирован 25.05.2020 07:58
Ответить
0
PetrS #
Жаль. Собрал два устройства и фиаско. Понятно что в качестве измерителя температуры предпочтительней использовать терморезистор или термопару, но хотелось большей функциональности. Теперь за неё платить точностью.
Ответить
+1

[Автор]
Starik #
К сожалению есть ещё один источник тепловыделения - микросхема стабилизатора напряжения, расположенная на плате модуля - рядом c BMP180. Мощность, рассеиваемая этим стабилизатором очень маленькая, но и плата модуля очень маленькая. В общем - если требуется точное измерение температуры, то видимо без программной поправки не обойтись.
Ответить
0
kulibinlg #
Возможно проект уже давний, но меня он заинтересовал. Не могу понять почему не отображает информацию на ЛСД?
Ответить
0

[Автор]
Starik #
Доброго здоровья, уважаемый kulibinlg. Данную конструкцию повторили несколько человек не считая моей авторской версии, которая до сих пор исправно работает. Кроме не точного измерения температуры других проблем не обнаружилось. Проверьте монтаж, источник питания, индикатор, модуль ардуино, датчик. Успеха Вам!
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Модуль измерения тока на ACS712 (30А)
Модуль измерения тока на ACS712 (30А)
Мультиметр DT9205A Мини гравер 125 Ватт
вверх