Автономный самописец

Устройство BaroLog создано для длительного автономного мониторинга давления и температуры. Предполагаемое время работы устройства от 3х АА-батареек – не менее 1 года. Работа возможна при температурах от -10˚С до 40˚С (диапазон в первую очередь ограничен используемым элементом питания).

Предполагается использовать для записи годовых циклов давления/температуры в пещерах. Устройство может быть сконфигурировано для различных интервалов записи показаний (от 8 секунд до нескольких часов). Следует учитывать, что размера памяти для коротких интервалов записи не хватит на целый год (к примеру, при записи каждые 8 секунд, размер хранимого лога всего 9 суток).

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

В основе устройства лежит микроконтроллер Atmel ATmega8 (во 2ой аппаратной версии заменен на ATmega88). Для измерения давления используется датчик Bosch BMP085, в нем же имеется термометр. Так же опционально предусмотрен акселерометр Freescale MMA7455 для определения двигательной активности и датчик HOPERF HSF1000 (барометр с пределом измерений 10атм).

Часы реального времени реализуются средствами микроконтроллера. Для этого к контроллеру подключен кварцевый резонатор на 32768Гц. Он тактирует внутренний таймер (Timer2), прерывания от таймера идут с максимально доступным интервалом: 8 секунд. Метка текущего времени представлена в UNIX-формате (32-битное число секунд от определенной даты).

Реализация барометра HFS1000 не закончена, предполагалось использовать его в качестве второго датчика давления с низкой точностью, но большим диапазоном, позволяющим фиксировать давление под водой. Для связи с внешним миром используется Bluetooth модуль HC-05.

Сохранение данных происходит на микросхему Flash-памяти Atmel AT45DBxxxD, объемом от 128кБ до 4Мб (AT45DB642D объемом 8Мб не поддерживается).

Актуальная схема:

Плата первой версии «baro-log 1.0» (с ошибками, схема):

На ней были найдены следующие ошибки:

Недочеты первой аппаратной версии:

А вот сборочный для второй версии устройства:

Внешний вид (без корпуса):

И процесс упаковки в корпус:

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

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

Так же вся плата залита акриловым лаком (Plastik 70), сделано это из-за того, что предполагается длительная работа в условиях высокой влажности (а герметичный корпус из-за барометра применять проблематично).

Потребление в режиме самописца:

Добавлено: на микроконтроллере ATmega88, потребление в режиме самописца составляет менее 1мкА. Таким образом, схема при питании от АА и даже ААА батареек получается практически вечной.

Пример обработки собранных данных в Excel:

Пример обработки собранных данных в браузере (при помощи пакетов Highcharts, PapaParce, JQuery):

Обработка данных доступна на этой странице. Страница работает через браузер (посредством JavaScript), так что их можно сохранить и использовать локально.

Синхронное баронивелирование

Для вычисления давления, которое создает столб воздуха, используется следующая формула:

Для вычисления разности высот между точками необходимо просто выразить значение h:

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

P_0 = 101325.0 Па
μ   = 0.02896 кг/моль
g   = 9.807 м/(с*с)
R   = 8.3143 Дж/(моль*К)

Сложность заключается только в выборе температуры. Разность значений при выборе температуры в диапазоне от 0 до 20°С выйдет около 7%, в большинстве случаев это вполне допустимо. От погодных условий давление "прыгает" куда сильнее, в пересчете на высоту значения могут отличаться на 200-300 метров. В случае с пещерой, температуру можно указать точнее, мало того и общие ее колебания там намного меньше.

Сама же идея синхронного баронивелирования заключается в построении профиля давления в 2х точках, причем данные измерения должны быть точно синхронизированы по времени.

Выявленные недоработки

В процессе первых реальных тестов были выявлены следующие недоработки:

  1. Протокол чтения данных по Bluetooth далек от идеального, процесс довольно длительный. Это не проблема самого Bluetooth, а проблема реализации протокола, существенно ускорить можно двумя способами: перейти на бинарный протокол и использовать скорости общения не 9600 бодд, а 115200 бодд. В настоящий момент данные могут читаться порядка 20-30 минут. Такая длительность не является критичной, но может доставить некоторые неудобства, особенно если захочется снять данные в походных условиях.
  2. У микроконтроллеров ATmega88 (в отличие от ATmega8) просто шикарное энергопотребление (в режимах сна ниже чуть ли не на порядок), но при этом отвратительный внутренний генератор. ATmega8 отлично работает без калибровок по UART интерфейсу (требуется точность генератора не хуже 5-7%). При этом ATmega88 сразу требует калибровки генератора (благо опорный источник имеется в виде часового кварца), но и это ей не сильно помогает: в процессе чтения данных наблюдаются зависания протокола. По всей видимости, частота контроллера за это время "уплывает" на такое значение, что по интерфейсу перестают идти данные.
  3. На одном из самописцев (всего тестировалось 4 штуки), происходила остановка кварцевого резонатора. При этом он самостоятельно через несколько часов продолжал работу. Выявлено это было уходом внутренних часов на 1.5 суток и подтверждалось скачками давления/температуры на определенных точках графика и общим смещением в профиле высот. Что примечательно, данные "заморозки" случались только на плато (т.е. при нахождении самописца на высоте около 900м над уровнем моря) и вне зависимости от температуры. Требуется тщательно разобраться в причинах такого зависания, пока основное подозрение на брак кварцевого резонатора.

Особо много вопросов возникает из-за последнего пункта.

Планируемые модификации

  1. Добавление поддержки в микропрограмме датчика DHT21 для текущей ревизии платы. Данный датчик измеряет температуру и влажность.
  2. Модификации логики калибровки, проверка таймингов на осциллографе.
  3. Эксперименты с "заморозкой", для точного выявления причин замеченного зависания (в процессе).
  4. Новая версия платы, на ней будет добавлен датчик SHT21 (скорее всего вместо HSF1000) и замен BMP085 на более современный BMP180.

Документация

Original: http://igorkov.org/barolog,
Author: igorkov