Портативна похідна метеостанція MiniBTH

Портативна похідна метеостанція MiniBTH

Добрий день. У цій публікації розповім про портативну похідну метеостанцію, яку я давно задумав і нещодавно реалізував у залізі.

Я часто їжджу на природу, як у довгі походи, так і в короткі вилазки на вихідні. Інструментальне спостереження з одного боку просто дозволить задовольнити цікавість, відповівши на питання «Чи тепліше сьогодні чим вчора?», або «Наскільки холодно було вночі?», з іншого боку, наявність навіть примітивної метеорологічної інформації може допомогти передбачити поліпшення або погіршення погоди або випадання туману. Звідси виникає бажання створити автономний прилад для вимірювання, логгування та відображення метеоінформації, придатний для похідного використання, і задовольняє наступним вимогам:

  • Герметичне ударозищене виконання корпусу;
  • Постійне відображення реального часу і поточних метеоданих: тиску, температури, вологості, а також історії їх зміни протягом останніх кілька годин і декількох днів на екрані;
  • Читається на яскравому сонці екран;
  • Робота приладу протягом усього походу без підзарядки або заміни елементів живлення або підзарядки;
  • Бажано збереження історії метеоданих в енергонезалежній пам'яті.

Варто відзначити, що прилади подібного призначення у вигляді годинників, брелків та окремих пристроїв доступні на ринку, проте їх можливості з відображення історії зміни метеоінформації, на мій погляд, недостатні, а логгування, як правило, відсутнє зовсім. Тому я прийняв рішення розробці власного приладу.

Визначення вигляду майбутнього приладу

На початковому етапі проектування треба визначитися з вибором з безлічі доступних деталей, компонентів і технологій, і знайти оптимальне їх поєднання. Розглянемо основні компоненти майбутнього приладу і причини вибору тих чи інших рішень.

Екран

Для запропонованого приладу кольоровий екран, на мій погляд, краще, оскільки на кольоровому екрані зручно відображати кілька графіків на одній координатній сітці, в той час як на монохромному екрані така картина буде складна для сприйняття. Враховуючи вимоги видимості на сонці, постійної індикації, і помірного енергоспоживання вибір однозначно падає на трансфлективний TFT дисплей. Основна проблема тут дістати доступний дисплей. Пошук-утікач показав, що заявлені в інтернет магазинах трансфлективні екрани недоступні, доступні на alibaba варіанти мають незручний RGB інтерфейс, і єдиний доступний варіант - це екран від старого доброго телефону Siemens CX/M/S65. Звичайно, не дуже добре розраховувати на компонент з розбирання, але для дрібносерійного DIY проекту підійде. До достоїнств тут варто віднести той факт, що екран управляється по SPI (буде простіше розводити плату). Незважаючи на те, що екран від телефону, доступна інформація про керування цим екраном від Cristian Kranz (на момент написання статті сайт Крістіана вже півроку як лежить).

Датчики

Для початку варто визначитися з набором вимірюваних параметрів і датчиків для них. Три безумовно потрібних параметри - тиск, температура, і вологість. Можна ще додати датчик освітленості.

Тепер визначимо критерії вибору датчиків. Датчики повинні бути малого розміру, точними і по можливості не вимагати ускладнення схеми приладу на увазі особливостей обв'язки конкретного датчика. В ідеалі щоб всі датчики були цифрові і працювали від однієї напруги. Ще бажано, щоб датчики тиску і вологості, які мають безпосередній контакт з атмосферою, були захищені від бруду і пилу.

Датчик тиску. З досвіду роботи з квадрокоптерами я стикався з датчиками BPM085 і MS5611, обидва з інтерфейсом I2C, і вбудованою термокомпенсацією. З них другий виявився більш точним і стабільним, при невеликому усередненні дозволяє 1Па тиску, що відповідає приблизно 10см висоти. Його я спочатку і вибрав для приладу, а дещо пізніше вирішив використовувати захищену версію цього датчика, іменовану MS5803.

Датчик вологості. Тут є безліч варіантів, і аналогових, і цифрових. Мені сподобався I2C датчики сімейства SHT2x від sensiron. Маленький, точний, працює в тому ж діапазоні напружень, що і датчик тиску (1.8В-3.6В), і міряє не тільки вологість, але і температуру. До того ж, до нього випускається грязезахисний ковпачок.

Датчик температури. Два перерахованих вище датчики вже міряють температуру, окремий датчик не потрібен.

Датчик освітленості. Тут бажано поставити датчик з дуже широким діапазоном вимірювань. Щоб вимірював від освітленості прямим сонцем (100тис люкс) і вниз до глибоких сутінків і місячної ночі (0.2люкс), а краще ще менше. Причому датчик бажано з заводським калібруванням, тому що мені калібрувати нічим. Є варіанти з фотодіодами, але потребують додаткової обв'язки, хоча потенційно можуть мати великий діапазон вимірювань. Тому мою увагу привернула серія інтегрованих I2C датчиків max4400x. У серії кілька схожих сенсорів, деякі мультиспектральні, деякі мають ВК випромінювач і можуть працювати як датчик наближення. Моїм вимогам за діапазоном вимірювань задовольняє один, max44009. Втім, можливий варіант встановлення двох датчиків, монохромного max44009 для великої освітленості, і RGB датчика max44008 для малої. А застосування затемнюючого фільтра може розширити робочий діапазон max44008 до необхідних 100тис. люкс. Простий варіант з max44009 виберемо як основний, а max44008 розглянемо як можливе доповнення.

Процесор і обв'язка

З урахуванням того, що екран і всі датчики працюють від 3-3.3 вольт, та й SD карти працюють від 3.3в. доцільно використовувати процесор, що працює від 3-3.3в. Я вибрав звичний мені AVR. Зазначимо, що вибір AVR дозволяє застосовувати Arduino IDE для складання проекту і використовувати бібліотеки під Arduino. У цьому проекті особливо актуально використання бібліотеки для роботи з SD картою. Хоча в принципі ардуїновські бібліотеки можна застосовувати і в проектах, що збираються в AVR Studio, але це вимагає деяких хитрощів. Забігаючи вперед, скажу, що єдиним плюсом від використання Arduino виявилася заливка програми через UART.

За початковими оцінками для проекту цілком достатньо 32кб ПЗУ і 2кб ОЗУ (близько 600байт на роботу з SD, і практично все інше - історія вимірювань) і, тому я вибрав процесор ATmega328p. Напруга в 3в диктує тактову частоту не вище 8МГц. Проект я почав писати під Arduino IDE. При збиранні під цей процесор і напруга просто вибирається target Arduino Pro mini 3.3v. Оскільки для реалізації всіх функцій приладу потрібні години реального часу, а ЛІД-кварці як правило не дають достатньої стабільності частоти, необхідно або використовувати годинниковий кварц з процесором (на увазі особливостей, ATmega328p при цьому буде тактуватися від RC осцилятора) або використовувати окремий чіп годин реального часу. На увазі останньої обставини я вирішив використовувати окремий I2C чіп з годинника календарем DS1337. Додатковим аргументом на користь окремого чіпа з RTC була можливість реалізації зміни батарейок без втрати налаштувань годин. Однак згодом було обрано варіант вбудованих батарей пристрою.

Кнопки керування

Інтерфейс приладу хоч і планується простий, але кнопки для перемикання режимів індикації, встановлення часу і поправки по висоті все-таки потрібні. Оскільки механічні кнопки важко сховати в гермокорупс, (для цього в корпусі потрібно робити отвори і в них герметично ставити гнучкий ущільнювач, або вводити штовхач через ущільнювач) було прийнято рішення зробити ємнісні сенсорні кнопки управління. При площі сенсорного майданчика близько 1кв.см, товщині стінки 2-3мм з діелектричною проникністю близько 2-4 (типова для пластиків) необхідно зробити пристрій, надійно реєструє зміну ємності на частки пікофарад. Таке завдання має кілька рішень. Перший варіант - поставити спеціалізований чіп - сенсорний контролер. Другий - зробити сенсорні кнопки на парах процесорних ніг, просто вимірюючи час зарядки вхідної ємності вхідної лінії з контактним майданчиком через мегаомний резистор від вихідної лінії. Метод описано на декількох ресурсах, існують відповідні бібліотеки. Однак оскільки хочеться створити чутливий і помехозахищений сенсор, я вибрав третій варіант - сенсор на фазовому детекторі. Ідея проста. На вхід фазового детектора подаються два ^ сигналу. Один безпосередньо від джерела, а другий через RC ланцюг, в якому в якості ємності використовується сенсорний майданчик (і природно, паразитна ємність входу фазового детектора теж). Сигнал з виходу фазового детектора усереднюється і вимірюється за допомогою АЦП. Така схема буде куди менш чутлива до зовнішніх наводок, принаймні, на частотах відмінних від частоти пробного сигналу. Як джерело ^ сигналу можна взяти просто тактовий сигнал процесора. Для більшої перешкоди можна ще ввести фазо-кодову модуляцію цього сигналу, однак, судячи з досвіду експлуатації, це надмірність.

Конструкція корпусу

Одне з найскладніших питань для DIY проектів - створення герметичного корпусу. При цьому конструкція корпусу багато в чому визначається доступною технологічною базою. Єдиний легко доступний для мене засіб виготовлення гермокорпуса це 3-координатний фрезерний верстат з ЧПУ, придатний для фрезерування пластиків, дерева і м'яких металів. Виходить, що корпус необхідно зібрати з фрезерованих деталей з пластмас і алюмінію. Залишається питання вибору ущільнювачів. Спеціальні ущільнювальні гумки, та ще й необхідної довгості знайти не вдалося, але як герметизуючі ущільнення можна використовувати магнітофонні пасики. Ця технологія вже була випробувана раніше на інших корпусах. У підсумку корпус складатиметься з центрального блоку з канавками для ущільнень, і передньої і задньої пластикових кришок, що фіксуються притискними рамами. Залишається питання вибору матеріалів. Центральний блок доцільно виготовити з капралона. У цьому пластику можна надійно нарізати різьблення, як у металі, він не крихкий і зносостійкий. Передня кришка повинна бути прозорою, і бажано не крихкою. З доступних варіантів прозорих пластиків я вибрав полікарбонат. До недоліків цього матеріалу можна віднести не дуже високу прозорість порівняно з поліметилметакрилатом. Зате він пластичний і не схильний до розтріскування. До задньої стінки вимог щодо прозорості немає, в результаті я зупинився на варіанті склотекстоліту. Притискні рами повинні мати достатню жорсткість, щоб притискати гумку по всій довжині. Крім того саме на них буде припадає велика частина можливих ударів корпусу об навколишні предмети. Тому було прийнято рішення зробити їх з алюмінієвого сплаву.

Розташування датчиків

Датчики тиску температури і вологості повинні повідомлятися з атмосферою, мати з нею хороший тепловий контакт. Крім того, вони повинні бути відносно теплоізольованими від корпусу, щоб зменшити час реакції на зміну температури. При цьому бажано їх розмістити так, щоб захистити від можливих ударів і попадання бруду. Тому перспективною виглядає схема розміщення датчиків на T-подібному виступі в поглибленні корпусу.

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

Джерело живлення

Тут вибір невеликий, або літій-іонні акумулятори, або метал-гідридні. Метал гідридні трохи краще працюють при низьких температурах, і на цьому переваги закінчуються. За енергоємністю літієві - вигідніше. У підсумку я вибрав літій-іонні, хоча цей вибір був зроблений на досить пізній стадії реалізації проекту. Для себе я визначив такі вимоги за часом автономної роботи:

  • 9 днів (1 тиждень + 2дня) взимку (температура -10.. -20);
  • 15 днів влітку в горах (температура ненадовго падає нижче 0);
  • 25 днів у теплу пору року (температура не падає нижче 0).

Виходячи з цих вимог буде визначатися ємність акумулятора.

Розробка електронної частини

Згідно з описаними вище рішеннями була розроблена схема приладу.

Мікросхема 78HC03 стабілізує напругу харчування для контролера і датчиків. На мікросхемах 74AC00 і 74AC86 побудований контролер сенсорних кнопок. Перша призначена для включення/вимикання подачі 8мгц сигналу на сенсорні пластини, на другій зібрані 3 фазових детектора. Перетворювач напруги для підсвічування виконаний на мікросхемі DC/DC перетворювача c ШИМ керуванням LM2733x і живиться від батарей, минаючи стабілізатор, ОС виконана за струмом світлодіодів. Робоча напруга на виході становить близько 12в (у підсвічуванні екрану 4 світлодіоди, з'єднаних послідовно). Для захисту контролера в разі зняття екрану з плати в якості захисного навантаження працює стабілітрон на 15в. Струм підсвічування задається резистором R9, падіння напруги на якому дорівнює 1.25в. Контролер max1879 керує зарядом батарей, для вимірювання струму заряду використовується операційний підсилювач TS321 з обв'язкою. Годинник реального часу виконано на мікросхемі DS1337. При розробці схеми і плати була передбачена можливість для встановлення резервної батареї живлення для годинників. Однак при використанні незйомних акумуляторів батарея не потрібна.

Бездротова зарядка

Реалізація бездротової зарядки виявилася однією з найбільш недооцінених за складністю завдань у цьому приладі. З міркувань зручності компонування деталей в корпусі я вибрав Ш - образний сердечник Ш7х7. Серцевик більшого розміру призвів би до збільшення і без того не маленького корпусу, хоча розмір чим більший тим краще, щоб у двох половинок при 1.5мм зазорі (товщина задньої стінки) якомога менше розсіювався потік. Однак навіть при такому розмірі сердечника і товщині зазору розсіювання потоку істотно, тому для більш ефективної передачі енергії довелося використовувати явище резонансу. Зазначимо, що роз'ємний трансформатор може працювати в декількох режимах:

а) Прилад лежить на зарядній підставці, акумулятор заряджається, трансформатор навантажений навантаженням з крутою ВАХ.

б) Прилад лежить на зарядній підставці, акумулятор заряджений або заряджається в ШИМ режимі, трансформатор не навантажений.

в) Прилад знято з зарядної підставки, але первинна обмотка трансформатора підключена до свого джерела живлення.

г) Проміжне положення частин трансформатора, короткочасно в момент встановлення та зняття приладу.

Необхідно, щоб зарядний пристрій міг працювати у всіх чотирьох станах без перегріву обмоток і перевантаження ключів. Тут є два варіанти - або робити складний драйвер з автопідбудовою частоти і відключенням при відсутності навантаження або підбором параметрів елементів. Робити з вторинної обмотки резонансний контур недоцільно, оскільки в стані б), коли трансформатор не навантажений, на вторинній обмотці буде з'являтися велика напруга, яка легко може перевищити максимально допустиму напругу холостого ходу для max1879 і ключа. Тому обійдемося резонансом тільки в ланцюгу первинної обмотки. Мені вдалося досягти непоганих параметрів зарядки з використанням дуже простої схеми харчування.

Первинна обмотка підключена до джерела змінної напруги, що складається з генератора-драйвера IR2153 і двох ключів, що харчуються від 12В. Послідовно з первинною обмоткою включений конденсатор C7, вони утворюють коливальний контур. Паралельно первинній обмотці включена неонова лампа (в моєму випадку пара зустрічно-послідовно з'єднаних ламп) з напругою запалювання близько 160В для захисту від перевантажень. Частота генератора (близько 100кГц) задається побудовим резистором R1 і налаштована так, що в режимі a) контур працює дуже близько до резонансу. При цьому амплітудне значення напруги на первинній обмотці досягає 100-110в, а середній струм вторинної обмотки (струм заряду акумулятора - близько 600ма). У режимі б), коли навантаження відключається контур виходить з резонансу (резонансна частота контуру при ненавантаженій вторинній обмотці нижче частоти генератора), напруга на первинній обмотці падає нижче 60В, і відповідно марні втрати у ферриті теж падають, а амплітудне значення напруги вторинної обмотки не перевищує 14В. В режимі в) індуктивність «половинки» трансформатора менше, резонансна частота контуру виявляється вище частоти генератора, напруга на первинній обмотці падає, і втрати у ферриті невеликі. У режимі г) ненавантажений контур первинної обмотки може потрапити в резонанс, і для цього в якості «захисного» навантаження використовується неонова лампа. Первинна обмотка (в зарядному пристрої) містить 32 витка дроту ПЭВ-1 0.6 а вторинна обмотка (в приладі) 32 витка ПЭВ-1 0.3. Варто відзначити, що добротність контуру і, відповідно, максимальна передана в навантаження потужність обмежується втратами у ферриті. Паралельно вторинній обмотці включаються 15в сапресори p6ke15ca для захисту схеми заряду від викидів напруги. При вибраних параметрах схеми в робочих режимах сапресори не гріються.

Розробка програми

Для Arduino є безліч бібліотек по роботі з датчиками, та іншій периферією, проте багато з них незручні і громіздки. У процесі розробки я прийшов до висновку, що чужі дрібні бібліотеки варто використовувати по мінімуму, реалізуючи нескладний функціонал самостійно. Це дозволяє дещо економити ресурси контролера і обсяг використовуваної ПЗУ, хоча уповільнює розробку. Рідні бібліотеки Arduino виявилися громіздкими і незручними. У результаті єдиною сторонньою бібліотекою використовуваної на проекті виявилася SdFatLib by William Greiman. Модуль для роботи з i2c датчиками sht21 і max44009 і RTC був написана з нуля, робота з ms5611/5803 була запозичена з проекту multiwii і доопрацьована. Модуль роботи з екраном x65 by Christian Kranz був перероблений під потреби конкретного проекту. Екранів у siemens x65 буває 3 типи з різними контролерами: Epson L2F50, Sharp LS020, и Hitcah LPH88. Мені вдалося дістати тільки перші два зразки, так що поки мій проект підтримує тільки два типи контролерів дисплея. Конкретний тип буде визначено у налаштуваннях. Ще варто зазначити, що для роботи приладу необхідна нестандартна для Arduino конфігурація FUSES - включення лінії CLKO і налаштування brownout detector на 2.7вольту.

Робота з датчиками

Особливих складнощів з опитуванням датчиків не виникло, вони (і годинник теж) опитуються безперервно в головному циклі програми, тривалість головного циклу приблизно дорівнює приблизно 180мс. Варто відзначити одну особливість датчиків MS5611/5803. У них іноді «завмирають» свідчення після декількох тисяч вимірювань. Дана особливість була мною помічена ще при налагодженні multiwii, а тут я зіткнувся з нею знову. Вихід із ситуації тривіальний: раз на 256 опитувань я просто скидаю датчик, і проблем із завмиранням більше не виникає. Останні цифри в показаннях датчика тиску постійно флуктурують в межах 3-4Па (роздільна здатність датчика 1Па), але усереднення результатів останніх 16 вимірювань дозволяє прибрати флуктуації повністю. І це ще не всі особливості MS5611, він ще виявився світлочутливим, що потребувало установки світлозахисного ковпачка. Інші датчики працювали без сюрпризів.

Відображення інформації

Питання про те, як повинна виглядати інформація на екрані, спочатку здавалося непростим. Але на початковому етапі розробки була закладена простий принцип відображення, і далі він тільки вдосконалювався. Принцип простий - у приладу є два режими відображення. У першому показується графік з метеоінформацією, і основні дані, зчитані з датчиків у цифровому вигляді.

У другому режимі на екрані показується вся інформація про поточний стан приладу і датчиків: напруга і струм заряду батарей, температура з двох датчиків, вологість, тиск, розрахункові значення точки роси і барометричної висоти, тиск нульової позначки висоти, освітленість, час, дата. Так само в ньому доступне налаштування годинників і тиску на нульовій позначці альтиметра. При розмірі екрану 132x176 пікселів розмір графіка був зроблений 96x100, при цьому залишилося місце для підпису шкал шрифтом мінімально можливого розміру, і для розміщення 4ч рядків поточної інформації шрифтом 8x14. Крива температури вирівнюється до низу системи координат, крива тиску на верх. Масштаб по осях ординат підлаштовується під дані, що відображаються автоматично. Вологість відображається пропорційною заливкою тла графіка світло-блакитним кольором. Положення міток і ліній сітки осі ординат постійно, змінюються тільки підписи міток. Сітка і мітки по осі абсцис рухаються зі зміною часу, разом з графіком. Важливе питання - вибір доступних масштабів осі абсцис. З урахуванням доступних обсягів ОЗП було вирішено зупинитися на двох масштабах - швидкому 2хв/піксель (відображаються дані за останні 3 години і 10 хвилин), і повільному 30хв/піксель (відображаються дані за останні 48 годин). У повільному режимі відображаються усереднені дані за півгодинний інтервал. У режимі запам'ятовуються поточні дані раз на дві хвилини на 0 секунд. Це зроблено для того, щоб прибрати видиме «запізнювання» даних на швидкому графіку щодо поточних. На кожен режим відображення графіка зберігається 96 відліків тиску, вологості та температури. Пересування за графіком назад у часі не передбачено. На карту дані пишуться раз на хвилину, але з усередненням всіх показань.

Робота з сенсорними кнопками

Для опитування сенсорних кнопок, періодично (один раз за головний цикл) на них подається тестовий ^ сигнал (8мГц з виходу CLKO процесора) на 5мс, після чого зчитуються значення сигналу на виходах фазових детекторів. АЦП має 10 розрядів, значення на виході змінюються від 0 до 1023. При вибраних значеннях R1-R3 для вільних пластин сенсору розміром 8х10мм характерні значення 500-700, при піднесенні пальця до пластини, що знаходиться за шаром текстоліту товщиною 1.5мм значення змінюються на 70-150 відліків у більшу сторону. З одного боку це свідчить про велику вхідну ємність логічних елементів 74AC86, з іншого боку зміни сигналу більш ніж достатньо, щоб надійно визначити дотик і налаштувати поріг спрацювання, навіть якщо збільшити товщини діелектрика до 2-3 м. Для визначення логічного стану сенсорних кнопок порівнюється поточне зчитане значення з усередненим за останні кілька зчитувань. Якщо їх різність перевищує поріг спрацювання, стан сенсора фіксується як «натиснуто». Якщо різниця опускається нижче порога відпустки, стан фіксується як «відпущено». Пороги для кожного сенсора задаються окремо, це дозволяє легко зробити сенсори досить чутливими уникати помилкових спрацьовувань. Адаптивна схема порівняння гарантує надійну роботу сенсорних кнопок при мінливій температурі і можливому забрудненні корпусу.

Кнопки призначені як для виконання рутинних дій з перемикання режимів, так і критичних дій, таких як налаштування годинника. Для активації критичних дій треба вибрати особливу комбінацію кнопок, яку важко натиснути випадково. Оскільки кнопки розташовані в ряд, природним варіантом такої комбінації є утримання крайніх при відпущеній середній. При цьому інші дії виконуються натисканням і утриманням однієї кнопки. При натисканні пари сусідніх кнопок їх дія блокуються до відпустки обох. Ініціююча комбінація так само використовується для включення підсвічування. Причому якщо освітленість менше порогу в 100люкс, Ініціююча комбінація завжди включає підсвічування. Далі в залежності від режиму відображення повторне натискання такої комбінації або вимикає підсвічування, або включає режим встановлення годин. Для підтвердження введених часу і дати необхідно натиснути ініціюючу комбінацію ще раз. Для зручності пошуку кнопок в темряві на верхній кришці зроблені спеціальні виступи.

Заходи з енергозбереження

Після написання основної частини програми вимірювання показали, що в середньому при вимкненому підсвічуванні прилад споживає струм близько 7.5ма, з яких близько 3ма споживає дисплей. Решта споживання припадає в основному на процесор, на контролер сенсорних кнопок, microSD карту, і трохи - на датчики. Енергоспоживання можна дещо знизити, якщо у «вільний» час заганяти процесор у режим енергозбереження, та зменшити частоту опитування датчиків та оновлення інформації. Втім, значно знизити його не вийде, майже половину споживає постійно включений дисплей. Для подальшого зниження енергоспоживання стандартна ардуїнівська бібліотека роботи з АЦП була модифікована так, що в процесі вимірювання АЦП процесор переходить в режим ADC Noise reduction (див. модуль myadc). При цьому трохи зростає точність роботи АЦП, але, головне, сильно знижується енергоспоживання процесора під час вимірювань. Щоб помітно заощадити, прості затримки в головному циклі замінені багаторазовим виміром струму заряду. Це дозволило знизити споживаний струм до 6ма. Варто зазначити, що застосування більш економних sleep modes могло б знизити енергоспоживання ще трохи, приблизно до 5.5ма, проте це зниження не дуже значно, і вимагає зовнішніх джерел сигналу, щоб будити процесор, які не були передбачені спочатку. При цьому залишається ще помітний резерв для зниження енергоспоживання аж до 3.5ма за рахунок помітного зниження частоти опитування датчиків і темпу перерисування екрану. Однак такі зміни зроблені не були на догоду постійній оперативній індикації. Окремо варто зауважити, що енергоспоживання приладу залежить від використовуваної SD картки, струми спокою у різних карт можуть сильно відрізнятися і досягати 2ма.

Розробка корпусу

На початковому етапі розробки стало ясно, що корпус буде складатися з двох основних обсягів герметичного відсіку з електронною частиною, і вентильованого поглиблення для розміщення датчиків. Датчики невеликі і їх компонування не викликає проблем. З основною платою складніше. На ній повинен бути розташований екран, сенсорні майданчики (під праву руку - правіше екрану), датчик освітленості (вище екрану). Поглиблення з датчиками раціонально зробити зверху, тоді коли прилад стоїть на опорі (столі, землі, камені,...) - датчики будуть зверху. А кріплення для підвісу приладу на шию варто зробити знизу, тоді зручніше буде дивитися на екран підвішеного на лямку рюкзака або шию приладу.

Розмір корпусу буде вибиратися з міркувань компонування акумуляторів і зарядного трансформатора. Акумулятори вибираються виходячи з необхідного часу роботи. При струмі споживання не більше 6ма і озвучених вище термінах роботи ємність акумуляторної батареї варто вибирати близько 6000мА * год. При цьому бажано вибрати акумулятори таким чином, щоб якомога щільніше скомпонувати відсік приладу. Проаналізувавши доступні акумулятори, я зупинився на варіанті двох NCR18650B від Panasonic. При цьому розмір гермовідсеку корпусу і плати можна зробити 70х50мм. У свою чергу цей розмір визначає і довжину ущільнювальної гумки (напівпериметр 70 + 50 + запас = 125мм) і розмір корпусу. Оскільки ущільнювальна гумка з пасика жорстка, знадобиться досить багато притискних гвинтів. Необхідну кількість притискних гвинтів можна або розрахувати, вирішуючи завдання деформації гумки і корпусу методом кінцевих елементів, або визначити експериментально. Я вибрав другий варіант і експериментально визначив, що 8 гвинтів достатньо. З розміром корпусу сильно не економив, щоб зробити більш просту форму. Розмір ніш, що вміщують датчики, теж зроблений із запасом для кращої вентиляції. В результаті розмір центрального блоку вийшов 103х68мм, а притискних рам - ще більше. Далі я наведу фото елементів корпусу, а за посиланням в кінці статті можна завантажити архів з кресленнями плат, і кривими, і описом операцій для фрезерування корпусу.

Виготовлення корпусу та складання приладу

Центральний блок виготовлено з капралона шляхом фрезерування. Висота центрального блоку дорівнює 31мм. Розміри канавки для ущільнювальної гумки підбиралися попередньо методом проб і помилок. Фрезерувалася тестова канавка в м'якому матеріалі (аркуші спіненого ПВХ), до неї примірялася гумка, після чого вносилися поправки в розміри канавки. Всередині гермоотсека зроблено два виступи, до яких кріпиться основна плата приладу.

Блок датчиків кріпиться зверху двома гвинтами М3х10 з нержавіючої сталі. Доріжки, що йдуть до датчиків, і місце введення дротів в корпус ізольовано силіконовим герметиком. Між платою датчиків і корпусом прокладаються шайби товщиною 0 .5мм з нержавіючої сталі. Ці шайби задають товщину шару герметика, що покриває доріжки в момент заливки. Герметиком так само приклеюється ковпачок SF2 поверх датчика вологості. Згідно документації для монтажу ковпачка і герметизації датчика слід використовувати тільки герметики, випаровування які не викликають незворотних пошкоджень датчика. Одним з таких є кислотний силіконовий герметик DOW Conring 732. Саме його я і використовував для герметизації датчика. (Втім, швидше за все підійде будь-який інший силікон, але я вирішив перестрахуватися). Після висихання герметика датчик вологості слід дегазувати витримуючи при температурі 100-120 градусів Цельсія протягом 10-12 годин, для чого я використовував звичайний фен.

Передня панель фрезерується з 2мм полікарбонату. Задня панель з 1.5мм склотекстоліту. Притискні пластини фрезеруються з алюмінієвого сплаву (дюраль). Передня пластина відрізняється від задньої тим, що має виступи, що полегшують тактильний пошук сенсорних пластин. Акумулятори і зарядний трансформатор фіксуються на задній панелі за допомогою двох проставок, фрезерованих з капралону і карбонової притискної пластини. Друкована плата виготовлена за технологією ЛУТ, в перехідні отвори запаяні мідні зволікання.

Використовуваний датчик MS5803 є водо- і брудо захищеним, проте опромінення датчика яскравим світлом істотно впливає на показання. Тому було вирішено закрити датчик світлозахисним ковпачком. Ковпачок виготовлений з полістиролу методом склейки сольвентом. Внутрішня частина ковпачка зроблена чорною, світлопоглинаючою, а зовнішня білої світлорозсіюючою, щоб виключити нагрів на сонці. Ковпачок приклеєний до плати датчиків ціанакриловим клеєм. Надалі оказу

Image