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



Конструкция нового прибора и уменьшение веса


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

  • Уменьшить количество винтов, прижимающих переднюю крышку с восьми до четырех, расположив их по углам корпуса.
  • Отказаться от съемной задней стенки, а сборку всего прибора производить через переднюю крышку.
  • Вместо беспроводной зарядки сделать гермоввод. Два винта из нержавеющей стали использовать как контактные площадки и вводы в корпус, а герметичность обеспечить резиновыми шайбами.
  • Перенести сенсорные кнопки на боковую стенку прибора.
  • Уменьшить размер блока датчиков и полостей для размещения датчиков.
  • Датчик освещенности расположить над «слепой» частью экрана на выносной плате.


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



Блок датчиков предполагается съемным, крепится к корпусу двумя винтами, а герметичность стыковки блока датчиков и корпуса обеспечивается кольцевой прокладкой, через которую проходят провода. Набор датчиков используется такой же, как и в первой версии прибора – датчик давления MS5803 и датчик влажности sht21. Сам блок датчиков склеен герметиком из двух капралоновых крышек. Между ними помещена плата, на которой смонтированы датчики. Плата изготовлена из стеклотекстолита толщиной 0.75мм. Во время сборки блока, для защиты датчика влажности от паров, выделяемых герметиком, его окошко заклеивалось каптоновой клейкой лентой (как рекомендуют в документации).



В конструкции блока датчиков учтены недостатки, выявленные при эксплуатации первой версии прибора. Датчик влажности не накрывается сетчатым колпачком SF2, а просто размещается в углублении блока. Это решает проблему намокания колпачка, которое приводит к длительному «залипанию» показаний влажности на максимальной отметке, и, в то же время расположение в углублении чувствительной стороной к корпусу позволяет исключить его повреждения внешними предметами. На блоке датчиков прибора версии 2M предусмотрен дополнительный выступ для защиты датчика влажности от повреждений длинными тонкими предметами. Вопрос защиты датчика давления MS5803 от прямого солнечного света тоже решен на этапе конструирования прибора. Чувствительная часть датчика прикрывается колпачком из черного полистирола, вклеенным в углубление в корпусе. Поскольку датчик чувствителен к засветке и с обратной стороны тоже, на плате на месте его монтажа с противоположной стороны оставлена металлизация.



Доступ воздуха к датчику давления осуществляется через тонкий (0.5мм) канал между корпусом прибора и блоком датчиков. Отметим, что при выборе такой конструкции блока датчиков возникали опасения, что под дождем вода будет затекать в тонкую щель между блоком датчиков и корпусом прибора, и полностью перекрывать канал доступа воздуха непосредственно к датчику давления, что приведет к появлению систематической ошибки в показаниях давления, обусловленной поверхностным натяжением воды. Испытания приборов под дождем и под душем показали, что благодаря несмачиваемости капралона, при толщине канала 0.5мм затекания не происходит. Более тщательные эксперименты, показали, что если блок датчиков установить с наклоном и тем самым уменьшить толщину канала вплоть до касания краем блока датчиков корпуса, возможно затекание воды, попадающей на корпус прибора, и приводит к уменьшению показаний давления примерно на 0.7мм ртутного столба. Если же блок датчиков установлен ровно, затекания воды не происходит.

Передняя крышка и уплотнение на первый взгляд мало поменялась внешне, но при ее конструировании пришлось применить ряд новых технических решений. С одной стороны, уменьшение количества прижимных винтов и увеличение расстояния между ними требует более жесткой прижимной рамы и/или более мягкой уплотняющей прокладки для обеспечения обжатия прокладки по всей ее длине. С другой стороны, из соображений удобства пользования прибором прижимную раму решено делать пластиковой, а это наоборот уменьшит ее жесткость. Возможным вариантом разрешения этого противоречия является использования более мягкой резиновой прокладки. Этот вариант является более разумным, чем пытаться поставить «костыли» в виде введения жестких металлических вставок или упругих элементов в конструкцию прижимной рамы и использовать в качестве уплотнения все тот же жесткий пассик от магнитофона.
После непродолжительного поиска в Интернете было найдено решение, как изготовить резиновые прокладки самостоятельно. Существуют специальные двухкомпонентные силиконы, применяемые для изготовления форм и прокладок. Технология работы с этими силиконами вкратце выглядит следующим образом: два жидких компонента необходимо смешать между собой, после чего в течение нескольких минут залить в форму и ждать пока состав отвердеет. После отвердевания получается очень пластичная и мягкая силиконовая резина, которая легко отделяется от той формы, в которой затвердевала. Существуют целые линейки таких силиконов от разных производителей, они отличаются между собой типом используемого катализатора-отвердителя и физико-механическими и химическими свойствами получаемой резины. Все силиконы имеют относительное удлинение при разрыве равное сотням процентов, относительно мягкие, могут работать при температурах до 200 градусов Цельсия, и относительно химически стойкие. Силиконы с платиновым катализатором химически более стойкие, и имеют пищевой допуск. Одна из типичных областей применения таких силиконов – изготовления форм для отливки из гипса, цемента, мыла, или даже шоколада. Второй типичный вариант применения – изготовление прокладок.

Об изготовлении прокладок из силиконовой резины

В своем городе нашел поставщика, который предлагает целую линейку силиконов с оловянным катализатором Sk-76x, и силикон с платиновым катализатором Sk-790. Для опытов я приобрел два комплекта – силикон с платиновым катализатором Sk-790 и самый мягкий силикон Sk-762, и приступил к экспериментам с отливкой.

В моем случае изготовление формы для отливки проблем не представляло, я просто профрезеровал канавки нужной формы в листе полиметилакрилата. Вначале предполагалось налить в форму силикон и накрыть ее сверху вторым плоским листом органического стекла, выдавив лишний силикон. Однако оказалось, что все не так просто, и я несколько изменил технологию. Основной проблемой при отливке силикона являются пузырьки воздуха. Они образуются как при смешивании исходных компонентов, так и при заливке состава в форму. Одним из способов борьбы с пузырьками, который рекомендует производитель, является помещение приготовленного для заливки силикона в вакуум на несколько минут перед заливкой. В вакууме все пузырьки раздуваются и лопаются, и весь воздух из них выходит. Внешне это отдаленно напоминает сбегающее молоко. Чтобы бороться с пузырьками, возникшими при заливке, можно вауумировать состав после заливки. Однако, я решил не напрягать коллег, у которых есть вакуумная камера, и поискать более простой способ делать отливки без пузырьков. Это оказалось не так сложно, потому что все образующиеся при смешивании и заливке пузырьки имеют достаточно большой размер. Видимо вязкость силикона препятствует образованию мелких пузырьков при захвате воздуха или путем дробления крупных пузырьков. Поэтому пузырьки достаточно хорошо видны глазом, да еще и успевают всплыть на несколько миллиметров вверх до затвердевания силикона. Поэтому технология заливки предполагается следующая: силикон наносится с излишками вдоль канавки в форме, и через несколько минут излишки силикона, вместе со всеми пузырьками снимаются металлической лопаткой. Если пузырек прилип к стенке формы, его можно извлечь с помощью все той же лопатки. Верхняя поверхность заливки становится гладкой благодаря действию сил поверхностного натяжения и гравитации. Главное – равномерно удалить излишки силикона с верхней части формы. А вот если накрывать отливку крышкой – есть большой риск загнать пузырь воздуха в форму.

Таким образом, вопрос изготовления прокладок любой формы оказался решенным, что позволило выбрать любой удобный вариант конструкции передней крышки. Отдельной дилеммой являлся выбор материала прозрачной части крышки. Доступных мне прозрачных материала есть два вида. Один — вязкий и гибкий поликарбонат, который, однако, не очень устойчив к механическим воздействиям и не очень прозрачен, а имеет голубоватый оттенок. Второй – прозрачный но хрупкий полиметилакрилат. Несмотря на то, что в первой версии прибора использовался именно поликарбонат, во второй я решил использовать полиметилакрилат. С одной стороны он более прозрачен, что улучшает читаемость экрана при освещении ярким рассеянным светом, с другой стороны он вносит меньше отклонений в показания датчиков освещенности. Кроме того, он меньше царапается при схожих условиях эксплуатации. Чтобы уменьшить вероятность растрескивания акрилата при лобовом ударе и улучшить внешний вид прибора, прозрачная крышка делается толстой (5мм), а прижимная рама сажается на специальный фрезерованный уступ. Верхняя крышка такой конструкции оказывается достаточно жесткой, и может быть использована как с мягкой прокладкой из силикона Sk-762 так и с более жесткой из Sk-790. В итоге я решил остановить свой выбор на силиконе 790, потому что он с платиновым катализатором и является химически более инертным.



Возможность отливать прокладки любой формы позволила сделать лючок для быстрого доступа к SD, что было реализовано в версии прибора 2M. Окончательно идея сделать лючок оформилась достаточно поздно, когда прибор версии 2 был скомпонован и изготовлен. Создание лючка упиралось в три проблемы – как его герметизировать, где его разместить, и как его фиксировать. Первая проблема решается изготовлением прокладки нужной формы. Вторая проблема тоже решилась, ведь в углублении с нижней стороны есть свободное место, в котором удобно спрятать выступающую наружу крышку. Третью проблему я решил самым простым на мой взгляд способом – лючок фиксируется винтами. С одной стороны без ключа не откроешь, зато случайно тоже не откроется. Да и на серийных герметичных гаджетах крышки тоже часто винтами фиксируются.



Сам лючок находится в нижней части корпуса, и представляет собой сквозное фрезерованное отверстие продолговатой формы, с Т-образным в сечении уступом, об который обжимается прокладка. С наружной стороны прокладку прижимает плоская крышка, которая фиксируется на корпусе двумя винтами M3x5. Толщина нижней стенки корпуса составляет 5мм, глубина уступа 2мм, толщина несжатой прокладки 2.5мм, толщина крышки – 2мм. Отверстия, в которые вкручиваются винты не сквозные, они углублены в корпус на 3.9мм, резьба в них нарезана практически на всю глубину. Нарезка резьбы на доступном мне станке с ЧПУ невозможна, поэтому она выполнялась с помощью трех специально заточенных метчиков и шуруповерта.

Готовый корпус испытывался на герметичность погружением в воду на 12 часов. Для обнаружения возможных протечек использовалась фильтровальная бумага. Корпуса оказались герметичны. Для исключения конденсации воды внутри корпуса при низких температурах, в свободном объеме возле аккумулятора размещается тканевый мешок с силикагелем. Испытания и дальнейшая эксплуатация показали, что конденсат в корпусе не образуется.

О разработке электронной части



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



Все датчики и часы реального времени DS1337 подключены к нему по шине I2C. Дополнительный сигнал с частотой 1Гц заведен на отдельный вход микроконтроллера процессора. Это позволяет использовать спящие режимы с остановкой основного тактового генератора для лучшего энергосбережения. Зарядка аккумулятора осуществляется с помощью контроллера max1879 с внешним ключом, однако теперь он напрямую подключается к зарядному устройству через гермовводы. Для индикации тока заряда введена токоизмерительная цепь на операционном усилителе TS321, полностью аналогичная примененной в первой версии устройства. Экран и SD карта подключены к контроллеру по одной шине SPI, однако теперь в схеме предусмотрена возможность отключать питание SD карты в то время, когда она не используется. Сенсорные кнопки на фазовых детекторах аналогичны применяемым на первой версии прибора.



Пластины сенсорных кнопок вынесены на боковую панель прибора, и над ними сделана фрезеровка для удобного поиска вслепую. Кнопок по прежнему три, верхняя условно называется «Ввод», средняя «–», а нижняя «+». Практически все детали прибора удалось разместить на плате размером 59x41мм со скругленными краями. Только защитные сапрессоры и катушки L2-L3 монтируются непосредственно на винтах – гермовводах.



Датчики освещенности вынесены на отдельную тонкую плату, расположенную над дисплеем. Размер платы выбран так, что в собранном виде дисплей покрывает практически всю переднюю часть платы.


Для придания прибору более эстетичного вида была сделана декоративная накладка, закрывающая все кроме рабочей части дисплея и датчиков освещенности.

Об интерфейсе прибора и разработке программной части



Прежде всего, стоит отметить, что проект второй версии прибора был перенесен с Arduino на AVR Studio. Это было сделано потому, что никакой реальной пользы от Arduino кроме быстрой прошивки через бутлоадер и UART нет, а вот проблемы с watchdog, энергосбережением и некоторыми мелочами есть. Ситуация усугубляется еще и тем, что штатных платформ ардуино на ATmega1284p не существует, поэтому был выбор – либо допиливать Arduino IDE и бутлоадер, либо переводить проект на AVR Studio. Чтобы сильно не вмешиваться в работу используемой библиотеки SDFATlib, я оставил в проекте часть arduino core, относящуюся к инициализации, работе с таймером и линиями ввода/вывода. Однако изменения в библиотеку SDFATlib внести таки пришлось, и связано это с изменением полярности сигнала SCK при использовании схемы отключения SD карты. Кстати SDFATlib может работать как с библиотекой SPI унаследованной от ардуино так и со своей собственной. В моем проекте SDFATlib сконфигурирована на работу с SPI через свою собственную библиотеку для AVR (кстати это стандартная ее конфигурация, хотя возможна и работа через библиотеки Arduino).

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

При включенном экране датчики и сенсорные кнопки опрашиваются с периодом главного цикла равным примерно 200мс, с таким же периодом опрашиваются, и обновляются некоторые элементы индикации, такие как состояние кнопок и время. Отображаемая информация с датчиков обновляется с вдвое большим периодом, примерно раз в 400мс. Такой период, на мой взгляд, оптимален, потому как при более коротком периоде обновления меняющиеся цифры неудобно читать, а при более длинном будет заметно запаздывание показаний. Частота опроса всех датчиков специально выбрана вдвое выше частоты обновления индикации, потому как из датчиков давления и влажности считываются два измеряемых параметра по очереди: во время одного опроса температура, во время следующего — давление либо влажность. Все «свободное» время главного цикла процессор находится в режиме ADC noise reduction, измеряя ток заряда аккумулятора. В итоге при включенном экране прибор потребляет примерно 6мА.

При выключенном экране обновления индикации не требуется, поэтому опрос датчиков и кнопок проводится реже, раз в 500мс, а все свободное время процессор проводит в режиме power down. Выход из режима power down происходит по прерыванию pin change interrupt от часов реального времени. При этом усредненные данные со всех датчиков записываются на карту памяти раз в минуту независимо от режима работы экрана. Для снижения потребления энергии вся периферия микроконтроллера включается непосредственно перед использованием через регистры PRR и отключается после использования. Потребляемый прибором ток с выключенным экраном составляет в среднем примерно 250мкА, из которых, около 100мкА приходится на экран в режиме power down, а остальное в основном на микроконтроллер. При этом снижение частоты опроса датчиков практически не дает уменьшения потребляемого тока, потому что значительная часть энергии расходуется во время опроса сенсорных кнопок. Стоит отметить, что тип используемого тактового генератора тоже влияет на энергопотребление. Так, при тактировании микроконтроллера от встроенного RC осцилятора потребляемый ток в режиме выключенного дисплея оказывается несколько меньше чем при использовании внешнего кварца. Очевидно, это связанно с более быстрым стартом и меньшей диссипативной емкостью RC осцилятора. В итоге, поскольку в данной версии прибора нет особых требований по стабильности тактовой частоты микроконтроллера, в окончательной версии прибора в качестве тактового генератора используется встроенный RC осцилятор (хотя на плате есть место под кварц).

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



Первый экран используется для отображения истории изменения метеоданных в виде графиков, а так же текущих показаний датчиков, даты и времени. На первый взгляд может показаться, что здесь практически ничего не изменилось с первой версии прибора, но на самом деле это не так. Теперь прибор запоминает температуру, влажность, и давление каждые две минуты, и хранит в ОЗУ данные за последние 4 дня — всего 2880 отсчетов. Все эти данные доступны для просмотра, в разных масштабах времени. По умолчанию на экране показываются самые последние данные, однако, удерживая кнопку «–» можно перейти в режим перемотки, и затем кнопками «+» и «–» перемещаться по оси времени назад и вперед. Выход из режима перемотки осуществляется кнопкой «ввод». Переключение масштабов по времени осуществляется кнопкой «+». В конечной версии прошивки предусмотрено 4 масштаба по времени:
  • 2мин/пиксель (3.2 часа на весь график).
  • 6мин/пиксель (9.6 часа на весь график).
  • 10мин/пиксель (16 часов на весь график).
  • 30мин/пиксель (48 часов на весь график).

Принципиально возможны и любые другие варианты масштабов, кратные 2 минутам. Теперь при построении графиков возможны различные варианты интерпретации метеоданных. Давление может отображаться непосредственно, а может пересчитываться в барометрическую высоту относительно точки с заданным опорным давлением. В первом случае правая шкала градуирована в миллиметрах ртутного столба, а во втором случае – в метрах. Влажность тоже может отображаться либо непосредственно (голубоватое заполнение) либо пересчитываться в точку росы, тогда помимо кривой температуры отображается кривая точки росы (малиновая). Режим отображения давления и влажности переключается на втором экране.

Второй экран, как и в первой версии, отведен для отображения всей информации о текущем состоянии прибора и датчиков. Здесь показаны такие параметры как напряжение на аккумуляторе, ток заряда, текущие показания основных датчиков, давление нулевой отметки высоты, время, дата. На последней строке показан результат последней попытки записи на SD карту, и текущий вариант интерпретации метеоданных на графиках. На этом экране кнопками «+» и «–» можно переключать вариант интерпретации метеоданных, а нажатием инициирующей последовательности войти в режим настройки часов. Что касается SD карты, отображается результат последнего обращения. Если запись прошла успешно, показывается число байт, записанных во время последнего обращения, если произошла ошибка – отображается «Err», а если карты не было в картоприемнике, отображается «---».

Третий экран предназначен для установки опорного давления барометрического высотомера. В первой строке показывается текущее опорное давление и соответствующая ему барометрическая высота. Ниже показано текущее атмосферное давление. Далее следует таблица истории опорных давлений с указанием даты и времени их установки, последней строкой показаны дата и время. Изменение опорного давления осуществляется кнопками «+» и «–», и оно автоматически добавляется в таблицу истории, если при переключении на следующий экран, установленное текущее опорное давление отлично от последнего исторического значения.

Четвертый экран предназначен для подробного отображения данных предоставляемых RGB датчиком освещенности max44008. Первые пять строк показывают текущую освещенность по каналам в числовом и графическом виде, далее следуют расчетные цветовые координаты и цветовая температура падающего света. Далее следует строка с двумя показаниями в люксах. Левое число относится к текущим показаниям датчика max44008, правое – к max44009. Последние четыре строки полностью совпадают с таковыми с первого экрана.

Работа подсветки несколько изменилась по сравнению с первой версией прибора, потому что поменялся режим работы экрана. Подсветка по-прежнему включается инициирующей комбинацией кнопок (как и экран) причем, если в момент включения экрана освещенность составляет меньше 100люкс, подсветка включается вместе с экраном. В момент включения таймер отключения подсветки, устанавливается на некоторый период, выбранный равным 40 секундам. Любое нажатие на кнопку при включенной подсветке устанавливает значение таймера отключения не ниже другого периода, заданного равным 12 секундам. Перед включением подсветки все показания датчиков освещенности запоминаются, и в течение начального периода горения подсветки равного примерно 7 секундам, на всех экранах отображаются именно запомненные показания датчиков освещенности, при этом фон отображаемого текста меняется с белого на зеленый. Благодаря запоминанию показаний прибор может отображать малые освещенности не искаженные засветкой датчиков собственным экраном. На всех экранах кроме второго нажатие инициирующей комбинации при горящей подсветке приводит к выключению подсветки, на втором экране эта комбинация включает режим настройки часов.

О работе датчиков освещенности, особенно о max44008 стоит поговорить отдельно. Этот датчик был добавлен в версии прибора 2M, с целью расширить диапазон работы люксометра метеостанции в область низких освещенностей. Максимальная чувствительность унаследованного от первой версии прибора датчика max44009 равна 45милилюкс/отсчет, чего вполне хватает для измерения освещенности в сумерках, но недостаточно для измерения освещенности в лунную и безлунную ночь. Конечно, измерение освещенности не есть основная задача моей метеостанции, но раз уж в приборе есть люксометр, а в походах иногда приходится двигаться ночью, хочется иметь инструмент, который покажет, насколько темная сейчас ночь. Поэтому и был выбран самый чувствительный датчик, родственный применяемому в более ранних версиях max44009. Датчик имеет шесть каналов для измерения освещенности в разных диапазонах и один канал измерения температуры. Датчиков температуры в приборе нам и так хватает, поэтому прибор опрашивает только шесть оптических каналов – видимый (Clear), красный (Red), зеленый(Green), синий (Blue), инфракрасный (IR), и компенсационный (IRcomp). Первые пять каналов предназначены для измерения освещенности в различных участках спектра, а шестой предназначен для компенсации инфракрасной засветки видимых каналов. Установка таких параметров как коэффициент усиления (по сути — чувствительность) и время накопления сигнала (тоже влияет на чувствительность и точность измерений) возможна только для всех каналов сразу, причем только извне. Возможность автоматического выбора этих параметров самим датчиком не предусмотрена, и в отличие от max44009, подстраивать чувствительность приходится из программы. Согласно документации на датчик, выдаваемые исходные значения могут быть пересчитаны в мощность светового потока на единицу площади в милливаттах на квадратный сантиметр. Там же приведены и кривые (на самом деле прямые) для пересчета выдаваемых данных в люксы для таких источников как лампа накаливания и люминесцентная лампа. Я провел свою калибровку, сравнивая показания max44009 и нового max44008, используя как источник рассеянный солнечный свет, свет люминесцентной лампы, светодиодного фонаря, и усреднил показания. В результате я получил похожие значения для коэффициентов пересчета. В итоге чувствительность max44008 оказывается примерно 1.4 милилюкс на отсчет в самом чувствительном диапазоне, что на полтора порядка лучше, чем у max44009. Конченое значение показаний люксометра формируется путем линейной сшивки данных с малочувствительного max44009 и чувствительного max44008 в области значений 5-10 люкс. Вычисление цветовых координат и цветовой температуры реализовано согласно документации, просто потому что есть такая возможность.

Отдельного исследования заслуживает вопрос о точности датчиков освещенности и влиянии ИК засветки на достоверность показаний. Корень проблемы заключается в том, что светочувствительные элементы датчиков max4400x (а также множество других фотодиодов и интегральных датчиков, матриц фотоаппаратов и видеокамер, и других устройств) сделаны на основе кремния. По своей физической природе такие светочувствительные элементы регистрируют электромагнитное излучение с длинной волны, короче некоторого предела определяемое шириной запрещенной зоны. Для кремния эта предельная длинна волны составляет приблизительно 1100нм. В то же самое время, человеческий глаз совершенно нечувствителен к электромагнитным излучениям с длинной волны больше 800нм. Поэтому излучения с длинной волны больше 800нм (обычно 800-1400нм) называют ближним инфракрасным. Такого излучения много в спектрах излучения нагретых тел, таких как лампы накаливания, дуговые лампы или солнце. И такое излучение практически отсутствует в спектрах белых светодиодов и люминесцентных ламп. Обычно светочувствительные элементы покрывают сверху специальными фильтрами, которые приближают их кривую чувствительности к требуемой в конкретном применении. Такой фильтр может ослаблять ближнее ИК излучение на несколько порядков, но не отсекает его полностью. При этом остается проблема, связанная с тем, что человеческий глаз не видит в ближнем ИК диапазоне совсем, а прибор, который должен измерять поток видимого света, его хоть немного но регистрирует. Есть несколько путей решения этой проблемы. Так, в цифровых фотоаппаратах или видеокамерах перед матрицей размещают специальный многослойный фильтр, который ослабляет излучение ближнего ИК диапазона примерно на 3 порядка. В датчиках max4400x применяется другое решение – использование дополнительного «компенсационного» канала. В датчике устанавливается несколько фотодиодов с разными фильтрами, с примерно одинаковым пропусканием в ближнем ИК диапазоне, и итоговая освещенность в видимом диапазоне определяется как разность измерений с двух фотодиодов. В нашем случае датчик max44009 выполняет компенсацию автоматически, а датчик max44008 только отдает наружу данные измерительного канала, а компенсацию пользователь должен выполнять сам, вычитая считанные значения одно из другого.

Для проверки адекватности работы ИК компенсации я провел несколько простых экспериментов. Первый – изучение влияния ИК засветки от ИК светодиода с длинной волны излучения 880нм на показания обоих датчиков. Сравнивались показания каналов при включенном и выключенном источнике ИК излучения и неизменной световой обстановке. Эксперимент показал, что лучше всего ИК компенсация работает в канале clear датчика max44008. Когда ИК засветка превосходит видимый свет по интенсивности примерно на порядок, ошибка скомпенсированного канала clear составляет не более 10%, а датчик max44009 при такой засветке выдает сильно заниженные показания (имеет место перекомпенсация). А вот показания цветных каналов RGB датчика при ИК засветке начинают «плыть», причем в разные стороны. Была найдена еще одна странность в работе этого датчика – скачки реальных измеренных значений при переключении коэффициента усиления PGA с 16 на 256 в канале ircomp.

Вторым опытом была проверка правильности измерения цветовой температуры, используя различные источники с известной цветовой температурой. Учитывая, что у меня нет точного колориметра для проверки, я могу заключить, что max44008 показывает более или менее адекватные результаты для таких источников как светодиоды и люминисцентные лампы, однако результаты измерений для ламп накаливания, горящих как с полным накалом так и с недонакалом, абсолютно недостоверные ввиду ИК засветки. Тут стоит упомянуть, что при использовании недонакаленной лампы в качестве источника ИК излучения, перекомпенсация датчика max44009 все так же заметна.
Стоит упомянуть еще об одном недостатке датчика max44008 – о темновом токе. Так, при температуре ниже 15 градусов Цельсия в абсолютной темноте показания датчика max44008 нулевые, однако с ростом температуры сильно растет темновой ток. При температуре 18 градусов он составляет 1 отсчет, 20 градусов уже 2 отсчета, а при 30 градусах уже 7 осчетов. Вполне вероятно, что датчик можно откалибровать для термокомпенсации темнового тока, однако я этим вопросом не занимался, потому что обнаружил заметный рост темнового тока только когда анализировал лог данных из поездки в Карелию, точнее ту его часть, когда прибор был упакован в сумку и гермомешок.

О зарядке аккумулятора. Как видно из схемы, зарядом батареи управляет отдельный контроллер max1879, а процессор и выполняемая на нем программа могут только измерять напряжение на аккумуляторе и ток заряда через соответствующие цепи. Однако ряд мер был принят для того, чтобы прибор мог нормально зарядиться и включиться, даже если аккумулятор сядет полностью. Теперь в проекте используется watchdog, и прошит fuse WDTON, что обеспечивает автоматический старт watchdog при любом сбросе контроллера. При этом порог brownout установлен 1.8В, источником тактовой частоты является встроенный RC осцилятор, и fuse CKDIV8 тоже прошит. Для того, чтобы включенный watchdog не приводил к циклической перезагрузке, с помощью __attribute__((section(".init3"))) в начало инициализации контроллера встроена перенастройка watchdog на период равный четырем секундам. Благодаря установленному CKDIV8 контроллер стартует на частоте 1мГц что возможно при напряжениях от 1.8В. После инициализации main контроллер проверяет напряжение на аккумуляторе. Если оно меньше установленного порога (2.7в), на экран выводится сообщение о разряде аккумулятора и значение напряжения на аккумуляторе, после чего контроллер ждет примерно 500мс, выключает экран и уходит в power down до сброса по watchdog. Если напряжение выше порога, программа переключает тактовую частоту на 8мГц через регистр CLKPR, и инициализируется в нормальном режиме. В качестве дополнительной меры предосторожности запись на microSD карту происходит только если напряжение на аккумуляторе выше некоторого порога, выбранного равным 3.2В. В результате даже при глубоком разряде аккумулятора прибор продолжает работать в нормальном режиме, пока это возможно. Благодаря блокировке записи на карту сбой карты при записи исключен. Если при глубоком разряде напряжение упадет настолько, что процессор зависнет, (опыт показал, что это происходит при напряжении около 2.3в), произойдет сброс по watchdog и прибор уйдет в бесконечный цикл состоящий из перезагрузок и кратковременной индикации «батарея разряжена». При еще более глубоком разряде прибор отключится по BOD. При подключении к зарядке все происходит в обратном порядке. Контроллер max1879 заряжает глубоко разряженный аккумулятор малым током 8ма. Когда напряжение аккумулятора превысит примерно 2в, микроконтроллер сбросится по BOD и покажет мигающее раз в 4 секунды сообщение «батарея разряжена». При этом средний потребляемый ток не превысит 1мА, и зарядка продолжится. Когда напряжение на аккумуляторе достигнет значения в 2.5В, произойдет переход на заряд полным током, а при 2.7В произойдет нормальное включение прибора. Такое решение, на мой взгляд, обеспечивает лучшую работоспособность и индикацию при глубоком разряде аккумулятора и устойчивый выход из глубокого разряда. А вот если установить порог BOD в 2.7В, возможны случайные ложные срабатывания при неблагоприятном стечении обстоятельств (уж слишком близок максимальный порог BOD к минимальному выходному напряжению стабилизатора).

Штатная индикации о низком заряде аккумулятора в виде мигающих букв «LB» имеет порог срабатывания 3.65В, что соответствует примерно 20% остатку заряда аккумулятора, то есть прибор может проработать примерно месяц после включения индикации о необходимости заряда. Поэтому пропустить момент, когда надо заряжать прибор очень сложно, если хоть иногда смотреть на его показания. По этой причине я решил, что более назойливая индикация разряженного аккумулятора не требуется. Светодиод-индикатор заряда, подключенный к max1879, находится на плате с противоположной от экрана стороны, поэтому на зарядке прибор светится зеленым изнутри.



Для зарядки прибора сделана специальная подставка с выемкой под прибор и двумя контактными группами. Подставка оснащена разъемом microUSB для подключения источника тока. Подставка не имеет внутри электронных схем, только провода и самовосстанавливающийся предохранитель. Внимательному читателю выбор микросхемы max1879 в качестве контроллера заряда может показаться несколько несуразным, потому как при выбранной схеме заряда от USB совместимого источника тока логичнее было бы использовать контроллер со встроенным ограничением тока. Однако выбранная схема является надежной, не боится источников с плохой стабилизацией выходного напряжения, и единственным ее недостатком, по сути, является не полная совместимость со стандартом USB в виду отсутствия автоматического регулирования максимально разрешенного тока. Зато такая схема обеспечивает более быстрый заряд при использовании сетевого адаптера.

Опыт эксплуатации прибора



Весной был готов экземпляр версии два, и я взял его в поход по горному Крыму. Летом в поход по Белому морю и Ковдозеру, я взял уже следующий экземпляр версии 2M. Как и прежде, во время движения на байдарке я клал прибор на корпус байдарки перед собой, во время похода по Крыму я носил прибор на шее, во время остановок, стоянок и дневок я вешал прибор на дерево в тени, в продуваемом ветром месте.



Как и первая версия, прибор ощущается как дополнительный орган чувств, а использование его стало более удобным по сравнению с первой версией. При массе примерно 128г (по сравнению с 330г первой версии) прибор практически не ощущается на шее. Внешний вид прибора стал, на мой взгляд, более аккуратным по сравнению с первой версией. Сенсорные кнопки на второй версии более удобные благодаря расположению сбоку и отсутствию рядом металлических частей корпуса, хотя в виду не очень быстрого опроса не у всех получается ими пользоваться с первого раза. Необходимость включать экран, чтобы посмотреть показания прибора не доставляет каких либо неудобств. Экран легко включить даже на ощупь в полной темноте. Примененный на второй версии прибора способ отображения графиков, с разными масштабами и прокруткой назад оказывается очень практичным, позволяя легко анализировать погоду или пройденный профиль за последние дни.

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



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



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

Графики температуры и давления тоже интересны, однако их практический смысл не столь очевиден. Они позволяют определить тенденции изменения погоды, правильнее выбрать одежду, и оценить перспективность попытки просушить свое снаряжение. С измерением температуры, как и первой версии, есть особенности. Так, попадания солнечного света на прибор приводят к заметному его нагреву и ошибке измерения температуры. Кроме того, на температуру воздуха (и прибора) влияет температура окружающих предметов и лучистый нагрев. Так, даже в пасмурный день, прибор размещенный в тени над сушей показывает температуру на несколько градусов ниже, чем если его разместить на корпусе стоящей на воде байдарки. По видимому, это связанно с нагревом байдарки и воздуха над ней рассеянным светом и ИК излучением. Для изучения этого обстоятельства я даже провел следующий эксперимент. Как известно, для ускорения теплообмена можно применить обдув. Самый простой способ организовать обдув термометра в безветренную погоду это просто покрутить его на веревочке вокруг себя. Покрутив прибор над сушей в пасмурный день в тени, я убедился, что обдув не влияет на показания. Значит в тени показания, и так соответствуют температуре воздуха. Ведь если бы температура прибора отличалась от температуры воздуха, благодаря например лучистому нагреву, интенсификация теплообмена привела бы к изменениям условия равновесия и изменениям показаний в меньшую сторону. Если же покрутить прибор над поверхностью воды, показания температуры становятся меньше, чем, если прибор лежит на байдарке, причем эффект наблюдается даже при наличии небольшого ветра. Отсюда можно сделать вывод о существенности нагрева прибора от байдарки, и вероятно, от других освещенных подстилающих поверхностей.

Стоит упомянуть и о возможности отображения точки росы. Температура точки росы является функцией абсолютной влажности воздуха (массы водяного пара в единице объема), и позволяет судить о содержании воды в атмосфере. Если взять некоторый объем воздуха и нагреть его, температура возрастет, относительная влажность упадет, а температура точки росы не изменится. Соответственно, поскольку датчик всегда находится в равновесии с тонким слоем воздуха его окружающим, если нагреть датчик (или весь прибор), отображаемая температура возрастет, отображаемая влажность упадет, а отображаемая температура точки росы не изменится. В реальности все несколько сложнее, потому что погрешность и дискретность измерения температуры и особенно влажности сильно влияют на точность вычисления точки росы. Тем не менее, можно сказать, что расчетная точка росы, а не относительная влажность является информацией о количестве воды в атмосфере, причем на нее не влияют ошибки измерения температуры связанные с нагревом прибора солнцем. Как правило, температура точки росы меняется достаточно медленно, и ее суточные колебания могут составлять всего 2-5 градуса против 10-15 у температуры воздуха. Летом повышение точки росы примерно до 20 градусов является предвестником образования гроз.

Люксометр, оснащенный теперь двумя датчиками позволяет измерять освещенность, и получать достоверные результаты измерений в самых разных условиях: как в солнечный день, так и в безлунную ночь, и даже в очень темных помещениях. Его показания позволяют судить о толщине облачного покрова на небе или о глубине сумерек. Возможность построения графика освещенности в приборе не предусмотрена, потому что показания сильно зависят не только от освещенности, но и от пространственного положения окружающих предметов, и самого прибора, соответственно из такого графика было бы трудно извлечь информацию. Благодаря наличию двух датчиков один из которых RGB c ИК каналом, люксометр предоставляет достаточно много информации о освещенности, цветовой температуре, и уровне ИК излучения. Однако, на мой взгляд, этот функционал более полезен при оценке освещенности в помещениях, чем в походах.

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



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

Одним из возможных путей развития прибора является добавлений новых функций к программному обеспечению прибора. Тут можно предложить такие направления:
  • Добавить возможность разделять и отображать на графике изменения давления связанное с изменением состояния атмосферы и с изменением высоты на которой находится прибор. Для реализации этой возможности потребуются некоторые модельные предположения, чтобы апроксимировать поведение давления на опорной высоте, и результат будет не очень точным, но добавить такой режим отображения к доступным было бы интересно.
  • Сделать функцию обновления ПО прибора через SD карту.
  • Добавить настройки частоты записи данных на карту и режимы отображения быстрых изменений метеоданных (особенно актуально для давления) для расширения сферы применения прибора, например в городских условиях.
  • Добавить логгирование изменения настроек опорной высоты и показания каналов RGB датчика на SD карту.


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

Конструкция корпуса прибора второй версии тоже имеет некоторый запас для дальнейшего снижения веса и размера. За счет снижения толщины стенок, использования более мягкой прокладки и более тонкой крышки (например, из закаленного стекла), уменьшения размера аккумулятора корпус можно сделать несколько меньше и легче. Отдельно стоит сказать, что мне удалось найти ныне производимый трансфлективный экран размером 2.4” разрешением 320x240 точек. Поэтому третью версию прибора возможно будет сделать полностью из серийно выпускаемых компонентов. Однако при переходе на экран большего разрешения следует увеличить тактовую частоту процессора, для того, чтобы перерисовка не занимала слишком много времени, и увеличить объем ОЗУ, чтобы эффективно использовать возросшее количество пикселей на экране, уменьшив минимальное число градусов, метров и минут на пиксель. По этой причине третья версия прибора, вероятно, будет собрана на микроконтроллере серии AVR Xmega или STM32.

Исходный код программы, кривые для фрезеровки и разводка платы доступны по ссылке.

Комментарии (21)


  1. xirahai
    28.09.2015 23:01
    +3

    Хорошая разработка! Может быть имеет смысл добавить на задней стенке солнечную панель для подзарядки аккумулятора.


    1. Nick0las
      29.09.2015 12:13
      +2

      С солнечной батареей есть такая проблема, что для подзарядки ей надо быть на солнце, а в приборе термометр которому для правильных измерений следует быть в тени.
      Кроме того в нынешней реализации метеостанции заряда батареи хватит примерно на пол года, что на мой взгляд более чем достаточно. Если на задней стенке разместить солнечную батарею, даже уменьшив аккумулятор, станция не станет меньше и легче.
      Наконец можно провести несложную оценку:
      При эффективности 100Вт/м^2 (типичная для ныне доступных батарей) солнечная батарея размером с внутреннюю полость корпуса будет давать примерно 240мВт мощности на ярком солнце. Энергопотребление метеостанции чуть меньше 1мВт при выключенном экране и около 11мВт при включенном. В тени в солнечный день освещенность в 5-20 раз меньше чем на солнце, а в глубойой тени или в пасмурный день — еще меньше, примерно в 20-100 раз. Сравнивая эти цифры, видим Получается что солнечной батареи хватит для поддержания аккмумлятора заряженным при нынешнем режиме работы, а для поддержания постоянно включенного экрана (хотябы когда свет есть) хватит но, уже на пределе. Поэтому я и не ставил солнечную батарею в прибор.


  1. Syzd
    29.09.2015 07:51

    Как делали корпус? Печатали на своем 3D принтере или где то заказывали? Почему ATmega1284p а не ATmega168, ATmega328?


    1. MaksMS
      29.09.2015 09:46
      +1

      В ATmega1284 думаю и так еле влезло по ресурсам, а в ATmega168 и ATmega328 точно не влезет такой объем возможностей.


    1. Nick0las
      29.09.2015 12:17

      Корпус фрезеровал сам из капрадона на 3D ЧПУ фрезере моего друга. Выбор ATmega1284p обусловлен тем что нужно было побольше ОЗУ чтобы метеоданные хранить. Отсчет раз в 2 минуты за 4 дня получается 2880 отсчетов или 11520 байт памяти.


  1. masterkit
    29.09.2015 10:23
    +1

    Отличная DIY разработка! Если корпус напечатан на 3д принтере, то можете принять участие в нашем фотоконкурсе. Победитель конкурса получит в подарок 3D принтер-конструктор MC 5 с акриловым корпусом.


    1. Nick0las
      29.09.2015 12:17

      Увы, корпус фрезерованый.


      1. Aquahawk
        29.09.2015 13:00

        Не увы, а абсолютно правильно. Превосходное качество корпуса, против 3D печатных. Я тестировал три устройства с разными корпусами. Собственно станция из этого поста, экструзионная печать корпуса для raspberry pi и фотолитографически напечатанный корпус часов-пульсометра. Так вот фрезеровка выигрывает так что даже сравнивать невозможно. И точность и качество поверхности и прочность и водонепроницаемость…


        1. masterkit
          29.09.2015 14:08

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


          1. Nick0las
            29.09.2015 14:46

            Конкретно в этом корпусе резьба м3 нарезана прямо в пластике, а для этого далеко не всякий пластик подойдет (корпус из капралона). Кроме того, мне 3D фрезеровка доступнее в виду личных обстоятельств.


        1. Nick0las
          29.09.2015 14:39

          В нашем случае фрезеровка лучше чем 3D печать. И поверхность чище, и конструктивные особенности есть: в капралоне резьбу м3 нарезать можно, а в ABS сорвется, нужны саморезы. Но в конкурсе не поучаствуешь.


  1. KoGor
    29.09.2015 17:15

    Проект очень интересный, но интерфейс у вас явно не «причёсан». Нет выравнивания ни по какому краю, показания пляшут, меняется количество знаков после запятой (нули то показываются, то нет). Время и дата на 1,3 и 4 экранах внизу в одну строку, а на 2 экране почему-то в две строки и на другом месте. Вообще второй экран отличается в худщую сторону от остальных. Барометрическую высоту и влажность с точкой росы тоже на разных экранах по-разному показываете.

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


    1. Nick0las
      29.09.2015 18:42

      Интерфейс развивался постепенно, поэтому видимо и получилось такое разнообразие. В первой версии прибора экранов было два, первый с графиком планировался как основной, и там отображаются наиболее важные параметры, а второй для индикации статуса и параметров что не поместились на первый экран, и настройки часов. Там-же на первой версии прибора поселилась настройка опорного давления высотомера. Данные на втором экране групируются по происхождению. Первая строка — аккумулятор. Затем две — первичные данные с датчика давления — температура и давление. Затем — расчетные данные касающиесяя датчика давления, а именно барометрическая высота и соответствующее ей опорное давление. Дальше данные с датчика влажности — температура и влажность. Затем — расчетные данные касающиесяя датчика влажности, а именно точка росы. Дальше данные люксометра, затем часы, и строка статуса SD карты.

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

      Теперь о цифрах на первом экране. Там отображаются самые актуальные на мой взгляд данные, как первичные так и расчетные. Для каждого параметра отведена определенная область с фиксированым количеством знакомест, выравнивание в каждой области по правому краю. Например для температуры знакомест 8, (минус, 2цифры целой части, точка, две цифры дробной части, и 2 символа градусов цельсия). Для давления знакомест тоже восемь, но диапазон возможных давлений таков что все восемь знакомест задействованывсе время. Количество цифр после запятой фиксировано потому что датчики разрешают изменения температуры на сотую долю градуса и давления на сотую доль миллиметра ртутного столба на всем рабочем диапазоне.

      С люксами там система другая, потому что диапазон отображаемых значений меняется от 1милилюкс до сотен килолюкс (восемь порядков), абсолютная точность измерения сильно зависит от самой освещенности (при этом относительная погрешность измерения порядка процентов), и результат измерений надо уместить на как можно меньшем количестве знакомест. В данном случае знакоест семь, первые 4 места отведены на цифры, а последующие три на единицу измерения, и там показывается «mLx», «Lux» или «kLx» соответственно, и положение точки меняется. Это сделано специально чтобы с одной стороны не перегружать пользователя «лишними» цифрами и с другой стороны, всегда отображать хотябы три значащих цифры. Больше значащих цифр показывать смысла нет потому что max44009 отдает 8бит мантисы и 4 бита логарифма. А еще есть относительная погрешность измерений.

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

      Барометрическая высота выравнивается по правому краю и там может отображаться как положительное так и отрицательное число, все просто.
      С влажностью совсем просто, там просто две или три цифры и знак процента.
      Расположение я старался сделать логичным. Вначале самые важные метеоданные
      Вначале строка температуры и влажности с одного датчика (датчик влажности стоит так что точнее меряет температуру и быстрее ловит ее изменения).
      Затем строка с давлением, и это же давление пересчитанное в барометрическую высоту.
      Затем строка с люксами. и точка росы туда влезла потому что больше некуда.
      Ну и затем уже часы.

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


      1. KoGor
        29.09.2015 21:04

        Теперь стало понятнее, в том числе группировка по датчикам на 2-м экране. Скажите, а почему всё-таки у вас на 2-м экране два разных показания давления (с датчика и соответствующее высоте), разве высота рассчитывается не из показаний датчика, что там за алгоритм?


        1. Nick0las
          29.09.2015 21:27

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


          1. KoGor
            29.09.2015 23:17

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


            1. Nick0las
              30.09.2015 11:17

              Не совсем так. На третьем экране нажатия кнопок + и — меняют установку давления на нулевой отметке. Если мы находимся в месте с известной высотой, меняя это давление на третьем экране мы подгоняем высоту к известной.


  1. Meklon
    29.09.2015 19:34

    Отличный проект. Насчёт силикона и пузырьков. Проблема кроме как вакуумной камерой решается вибростоликом во время заливки.


  1. LongeryatKO
    29.09.2015 22:06

    Сколько держит аккумулятор?


    1. Nick0las
      29.09.2015 22:09

      По расчетам примерно пол года если подсветкой и включением экрана сильно не злоупотреблять.


  1. vvzvlad
    30.09.2015 13:12

    Кстати, пузырьки из силикона можно убирать, наливая его очень тонкой струйкой(или несколькими) с высоты около полуметра. Не в емкость, конечно, а в другую банку. Пузырьки получаются толще, чем диаметр струйки и лопаются.