Вывод данных с барометра BMP085
- Войдите на сайт для отправки комментариев
Втр, 23/10/2012 - 19:33
Подключил вышеуказанный барометр по I2C. Скачал библиотеку отсюда http://www.arduino.cc/en/Reference/Libraries, запускаю пример. Монитор показывает следующее
Altitude (cm):24919 Pressure(Pa):101574 Temperature(C):254
Второй столбец вроде как необходимо разделить на 133.3 для перевода в мм р. ст, остальные данные выводятся в RAW формате (как я понимаю), как из этого формата перевести в нормальный читабельный вид? Есть у кого был опыт как это сделать или может пример по-удачнее подскажете? Спасибо.
использую дуемиланову, версия Arduino 1.0.1.
Так какую конкретно библиотеку вы используете? Название у нее есть или ссылка?
http://code.google.com/p/bmp085driver/downloads/detail?name=bmp085v0.4.zip&can=2&q=label:Featured вот здесь она есть, называется вроде bmp085v0.4
Я заказал аналогичный барометр с Ebay. Там на страничке с товаром есть пример, может он поможет.
Сам его ен пробовал (датчик находится в пути), но думаю, он поможет.
спасибо за пример, результат его работы выглядит так
давление еще можно преобразовать, а температура если перемножить можит и верно, высооты над уровнем моря нет
Подключил вышеуказанный барометр по I2C. Скачал библиотеку отсюда http://www.arduino.cc/en/Reference/Libraries, запускаю пример. Монитор показывает следующее
Смею предположить, что и те данные, которые вы написали - верные
Давление в паскалях верное, температура (нужно умножить на 0,1), насчет высоты, либо 249,19 м, либо 24.919м над уровнем моря (посмотрите на навигаторе любом для уточнения).
memfise, вы вопрос с высотой решили?
У меня тоже высота не показывается, точнее показывается но показания пляшут очень сильно. Как я понял, высота дается в см и пляшут показания - это изменения высоты, относительно текущей. Если смотреть вашу библиотеку, то там есть два примера, где первоночальную высоту можно задать, для корректировки давления:
Есть идея, взять ардулину с экраном и сначала посмотреть замеры на 1 этаже, а потом поднятся на 9 этаж. В теории высота должна изменится на 25-27 метров.
UP1:
провел эксперемент по выводу данных температуры и давления с использованием вашей библиотеки и без нее. Результаты:
Программа с экраном, без датчика ВМР085.
размер скетча 9170, размер свободной памяти 1712
Программа с экраном, с датчиком ВМР085, без библиотеки .
размер скетча 14162, размер свободной памяти 1431
Программа с экраном, с датчиком ВМР085 с библиотекой .
размер скетча 16738, размер свободной памяти 1214.
В данном случае библиотеку использовать удобнее, так как скетч получается короткий, но тем самым свободная память для программы уменьшается почти на 2,5 кб и память под переменные уменьшается на 217 байт. вполне возможно если сюда еще приписать алгоритмы вычисления высоты, то память сравняется.
с показаниями высоты пока оставил так как есть, времени дуину взять в руки пока нет.
А удалось стабилизировать показатели ?
тоже столкнулся что высота над уровнем моря +- 1 метр
скачет, вроде не должно быть такого.
Немного изменил скетч: добавил вывод температуры в формате 00.0 , высоты в метрах, давление в мм рт.ст
Показания выводятся так:
Arduino 1.01
Здравствуйте!
Тоже пытаюсь подключить свой BMP085 к Ардуино (у меня Мега 2560).
VSS -> 3.3 V
SDA -> analog pin 4
SCL -> analog pin 5
GND -> GND
Библиотеку взял по выше приведенной ссылке:
http://code.google.com/p/bmp085driver/downloads/detail?name=bmp085v0.4.z...
Скетч залил такой же, как привел ivanserov
Результат следующий:
Alt(m):246 Pressure(mm Hg):1.82 Temp:0.00
Отчего может не показываться температура и такое маленькое давление?
Если вы используете мегу 2560 то скорей всего SDA и SCL нужно подключать на 20 (SDA) и 21 (SCL) пины, а не на аналоговые как пишете вы.
Спасибо большое за совет!
Все заработало!
Добрый день !
У миня сразу заработало.... Переключая тумблер мона измерить превышение/принижение холма/здания.... Задумка - измерение QHF и высоты, соответственно, на мотодельтаплане.... Код - далее
Сегодня проверил все 4 порога 2-ух ВПП пулковских ( пройдено ножками 9 км ) - аэронавигационные данные аэр. Пулково и данные с этого датчика - +/- 80 см !!!!!!!!!!!!!!!!!!
Вот только усреднение надо прописать, а то скачЮт данные......
133,3 в делах авиации - не точно....
правильно - 133,3223684 :)
LCD мигает 500 х 500 мсек - в абсолютном режиме, 100 х 100 мсек - в относительном режиме ( измерение превышения ).
Кроме того - измерил высоту пулковской вышки-"гранаты"... Лазерный дальномер и этот датчик - 10 замеров - датчик показал, что на 60 см выше, чем - лазер...
Хороший барометр :)
Кто-нить занимался вычислением вертикалной скорости с помощью этого датчика ?
Залил скетч из 10 поста. За 2 часа показания высоты поднялись на 14 метров, хотя датчик лежит всё время на столе. С чем это может быть связано?
Залил скетч из 10 поста. За 2 часа показания высоты поднялись на 14 метров, хотя датчик лежит всё время на столе. С чем это может быть связано?
Ну, вообще-то датчик является барометрическим. Стало быть, если давление падает, то "высота" растет.
Видимо, связано с приближающимся дождем...
Приветствую форумчан, просьба помочь разобраться.
Имею: Uno, SD+RTC (в одном шилде), BMP180 (аналог 085) при записи данных времени в минутах и секундах как добавить 0?
что бы было 01, 02, ... вместо 1, 2, ...
Alt. 12.63(m): Pressure. 766.68(mm Hg): Temp. 21.90(C): Date: 17/11/2013 Time: 22:31:58
Alt. 12.05(m): Pressure. 766.69(mm Hg): Temp. 21.90(C): Date: 17/11/2013 Time: 22:32:3
Alt. 12.14(m): Pressure. 766.75(mm Hg): Temp. 21.90(C): Date: 17/11/2013 Time: 22:32:8
Alt. 12.38(m): Pressure. 766.77(mm Hg): Temp. 21.90(C): Date: 17/11/2013 Time: 22:32:14
Alt. 12.38(m): Pressure. 766.71(mm Hg): Temp. 21.90(C): Date: 17/11/2013 Time: 22:32:19
Alt. 11.56(m): Pressure. 766.71(mm Hg): Temp. 21.90(C): Date: 17/11/2013 Time: 22:32:25
Alt. 11.89(m): Pressure. 766.71(mm Hg): Temp. 21.90(C): Date: 17/11/2013 Time: 22:32:30
Alt. 11.56(m): Pressure. 766.76(mm Hg): Temp. 21.90(C): Date: 17/11/2013 Time: 22:32:36
Alt. 12.22(m): Pressure. 766.74(mm Hg): Temp. 21.90(C): Date: 17/11/2013 Time: 22:32:41
Alt. 11.39(m): Pressure. 766.77(mm Hg): Temp. 21.90(C): Date: 17/11/2013 Time: 22:32:46
Alt. 12.47(m): Pressure. 766.67(mm Hg): Temp. 21.90(C): Date: 17/11/2013 Time: 22:32:52
Alt. 12.14(m): Pressure. 766.72(mm Hg): Temp. 21.90(C): Date: 17/11/2013 Time: 22:32:57
Alt. 11.72(m): Pressure. 766.72(mm Hg): Temp. 21.90(C): Date: 17/11/2013 Time: 22:33:3
Alt. 12.05(m): Pressure. 766.77(mm Hg): Temp. 21.90(C): Date: 17/11/2013 Time: 22:33:8
Alt. 11.81(m): Pressure. 766.80(mm Hg): Temp. 21.90(C): Date: 17/11/2013 Time: 22:33:13
Alt. 11.64(m): Pressure. 766.69(mm Hg): Temp. 21.90(C): Date: 17/11/2013 Time: 22:33:19
Alt. 11.56(m): Pressure. 766.71(mm Hg): Temp. 21.90(C): Date: 17/11/2013 Time: 22:33:24
Alt. 12.22(m): Pressure. 766.69(mm Hg): Temp. 21.90(C): Date: 17/11/2013 Time: 22:33:30
Alt. 11.89(m): Pressure. 766.74(mm Hg): Temp. 21.90(C): Date: 17/11/2013 Time: 22:33:35
Alt. 12.80(m): Pressure. 766.70(mm Hg): Temp. 21.90(C): Date: 17/11/2013 Time: 22:33:41
прошу сильно не ругать всего третий день занимаюсь ардуинкой, код собран из различных примеров.
Помогите оптимизировать код, коменты не удалены некоторые не в своих местах:
Может кому пригодится
с минутами секундами и датами аналогично.
ingener.solovyev Спасибо больщое получилось.
теперь в файле на SD карточке вместо:
Alt. 12.36(m) Pressure. 768.33(mm Hg) Temp. 21.80(C) Date: 18/11/2013 Time: 12:8:1
Alt. 12.36(m) Pressure. 768.30(mm Hg) Temp. 21.80(C) Date: 18/11/2013 Time: 12:8:6
Alt. 10.79(m) Pressure. 768.30(mm Hg) Temp. 21.80(C) Date: 18/11/2013 Time: 12:8:11
Alt. 11.04(m) Pressure. 768.26(mm Hg) Temp. 21.80(C) Date: 18/11/2013 Time: 12:8:17
Alt. 12.19(m) Pressure. 768.29(mm Hg) Temp. 21.80(C) Date: 18/11/2013 Time: 12:8:22
Alt. 11.62(m) Pressure. 768.27(mm Hg) Temp. 21.80(C) Date: 18/11/2013 Time: 12:8:28
Alt. 12.36(m) Pressure. 768.30(mm Hg) Temp. 21.80(C) Date: 18/11/2013 Time: 12:8:33
вот так:
Alt. 11.86(m) Pressure. 768.17(mm Hg) Temp. 21.50(C) Date: 18/11/2013 Time: 12:19:47
Alt. 12.28(m) Pressure. 768.22(mm Hg) Temp. 21.50(C) Date: 18/11/2013 Time: 12:19:53
Alt. 10.96(m) Pressure. 768.19(mm Hg) Temp. 21.50(C) Date: 18/11/2013 Time: 12:19:58
Alt. 11.45(m) Pressure. 768.21(mm Hg) Temp. 21.50(C) Date: 18/11/2013 Time: 12:20:04
Alt. 11.95(m) Pressure. 768.17(mm Hg) Temp. 21.50(C) Date: 18/11/2013 Time: 12:20:09
Alt. 12.69(m) Pressure. 768.22(mm Hg) Temp. 21.50(C) Date: 18/11/2013 Time: 12:20:14
Alt. 11.78(m) Pressure. 768.21(mm Hg) Temp. 21.50(C) Date: 18/11/2013 Time: 12:20:20
Alt. 11.87(m) Pressure. 768.20(mm Hg) Temp. 21.50(C) Date: 18/11/2013 Time: 12:20:25
через монитор порта естественно тоже:
Writing to data_log.txt...
Alt. 11.62(m) Pressure. 768.04(mm Hg) Temp. 23.40(C) Date: 18/11/2013 Time: 12:26:01
done.
Writing to data_log.txt...
Alt. 11.70(m) Pressure. 768.09(mm Hg) Temp. 23.40(C) Date: 18/11/2013 Time: 12:26:06
done.
Writing to data_log.txt...
Alt. 12.03(m) Pressure. 768.05(mm Hg) Temp. 23.30(C) Date: 18/11/2013 Time: 12:26:12
done.
код теперь такой:
Или так:
maksim и вам спасибо, так компактнее
вот часть кода записивающая на SD карту:
Или так:
а ведь точно! Записал.
Скетч залил такой же, как привел ivanserov
Результат следующий:
Alt(m):246 Pressure(mm Hg):1.82 Temp:0.00
Отчего может не показываться температура и такое маленькое давление?
Подключаю к arduino nano , точно такая же проблема
Alt(m):246 Pressure(mm Hg):1.82 Temp:0.00
Проблема была в подключении, уже решил)))
Использую библиотеку https://github.com/adafruit/Adafruit-BMP085-Library
Показания:
Проблема была в подключении, уже решил)))
Использую библиотеку https://github.com/adafruit/Adafruit-BMP085-Library
Показания:
А какая проблема была в подключении, а то я пока не могу догнать и показания те же самые:
Alt(m):246 Pressure(mm Hg):1.82 Temp:0.00
Всем привет!
Кто нибудь пытался на этом датчике высчитать скорость подьема и высоту(которая будет обнулятся)?
Я сейчас логику для вариометра пишу, рассчет скорости подъема планирую реализовать самым простым способом: замер высоты раз в секунду, разница между замерами в метрах и будет скоростью подъема/сниженя в м/с
Я сейчас логику для вариометра пишу, рассчет скорости подъема планирую реализовать самым простым способом: замер высоты раз в секунду, разница между замерами в метрах и будет скоростью подъема/сниженя в м/с
А может кто "ткнет" носом в книгу? Может кто знает где можно расчеты почитать?
А может кто "ткнет" носом в книгу? Может кто знает где можно расчеты почитать?
Может кто нибудь и ткнет. Но не я. У меня пока барометр не пришел, я его и не трогал. Но когда он ко мне придет, я полагаю что библиотека будет передавать мне в программу простое значение абсолютной высоты в метрах (ну так же температуру и давление, но они тут не нужны). Соответственно если принимать значения раз в секунду и оно станет 275, а предыдушее было 273.5 то это и будет означать подъем со скоростью 1.5 м/с
Помощь друга:
http://we.easyelectronics.ru/part/datchik-davleniya-bmp180-lineynyy-stab...
http://www.instructables.com/id/ECV5M8LHW8SZH47/
Есть же нормальная бибилиотека от производителя датчика https://github.com/adafruit/Adafruit-BMP085-Library
А для формирования строки есть волшебная функция sprintf, только она float не умеет, но с целыми работает отлчино.
А может кто "ткнет" носом в книгу? Может кто знает где можно расчеты почитать?
Может кто нибудь и ткнет. Но не я. У меня пока барометр не пришел, я его и не трогал. Но когда он ко мне придет, я полагаю что библиотека будет передавать мне в программу простое значение абсолютной высоты в метрах (ну так же температуру и давление, но они тут не нужны). Соответственно если принимать значения раз в секунду и оно станет 275, а предыдушее было 273.5 то это и будет означать подъем со скоростью 1.5 м/с
Есть уже готовые скетчи для вариометров! они уже считают скороподъемность и на основе этого выдают звук!
В теме где вы ответили на изменение программы уже в принципе всё готово, показатель скороподъемности, переменная Vario только её надо делить на 100
Есть уже готовые скетчи для вариометров! они уже считают скороподъемность и на основе этого выдают звук!
В теме где вы ответили на изменение программы уже в принципе всё готово, показатель скороподъемности, переменная Vario только её надо делить на 100
Почему нет? Я просто в ожидании барометра не касался этой темы даже еще. Сейчас пытаюсь разобраться с дисплеем nokia5110 на аппаратном уровне, без библиотек. Да и код я пишу по некоторым причинам в AVR studio. А так да, из того примера можно много полезного разузнать.
вопрос всем - кто, где ( откуда берёт ) QNH для вычисления РЕАЛЬНОЙ высоты ( AMSL ) ?
Вот нашел даташит http://iarduino.ru/lib/datasheet%20bmp180.pdf (ссылка рабочая нужно её выделить как перейдет и нажать) в котором формула вычитания абсолютной высоты, кто то может подсказать как правильно её вписать в код чтоб работала, или какую функцию нужно использывать для вычитание высоты относительно уровня моря?
Как вообще работать с формулами возвидения в степень, не могу понять или библиотеку какую надо подключать работая с математикой?
https://github.com/adafruit/Adafruit-BMP085-Library