Датчик направления ветра

Метеостанция 2.0 — подключение датчиков ветра к MegaD-2561

17/05/2018 17:21:25

В далеком уже 2011 году я подключил к домашней системе автоматизации китайскую метеостанцию WH-2080. Без особых проблем с помощью элементарного скрипта, написанного на python, я считывал с метеостанции все данные, выводил на сайт Умного Дома и использовал эту информацию для управления отоплением. А данных этих было не мало. Это температура, относительная влажность, атмосферное давление, количество выпавших осадков, направление и скорость ветра. Словом, полноценный прибор за небольшие деньги. Точность получаемых данных была, по всей видимости, весьма высокая. В этом я убедился позже, когда продублировал значения с помощью датчика температуры DS18B20 и датчика атмосферного давления BME280. Кривые графиков почти полностью совпадали. Однако у любого прибора, особенно любительского, есть свой срок службы и спустя 5-6 лет постоянной эксплуатации моя метеостанция начала «глючить». Ну, проблемы со связью возникали периодически давно. Не зависимо от свежести элементов питания в выносном блоке, время от времени связь между внутренним и наружним блоками неожиданно прерывалась, а потом также неожиданно восстанавливалась. Все же радиотехнологии особенно такого простейшего уровня не отличаются высокой надежностью. Однако с эпизодическими перебоями в беспроводной связи еще как-то можно было мириться. Все стало хуже, когда метеостанция начала отдавать некорректные значения. То сообщит о минусовой температуре в июле, то откажется фиксировать осадки в проливной дождь, то покажет 0 м/с в сильный шторм при бешено вращающемся анемометре, то напротив, в штиль запротоколирует порывы до 287 м/с… Словом, метеостанция полностью утратила к себе мое доверие…

Тогда я решил, что нужно найти что-то более надежное и обязательно проводное. Частично я уже закрыл этот вопрос с помощью влагозащищенного датчика DS18B20 Waterproof и датчика атмосферного давления, температуры и влажности BME280, которые подключил к системе через MegaD-2561. Контроллер поддерживает работу с этими сенсорами. Но как быть с датчиками скорости и направления ветра?

Для определения скорости и направления ветра, я заказал датчики также китайского производства, но теперь уже проводные и выглядевшие на первый взгляд существенно более качественно и надежно в сравнении с почти игрушечными датчиками моей старой метеостанции WH-2080. Вот они.


Датчики скорости и направления ветра. А зачем нужен компас расскажу.

Подобные датчики могут снабжаться разными интерфейсами для передачи данных. Так, например, датчик скорости ветра может по выбору производиться с одним из следующих выходных сигналов: 0-5В; 1-5В; 0-2,5В; 4-20мА; 0-20мА; RS485, RS232, импульсный выход. Стоит задуматься, ведь выходной сигнал определяет, каким образом датчик будет подключаться к контроллеру и как именно будет осуществляться считывание значений.

В качестве контроллера я, разумеется, решил использовать MegaD-2561. Какой выходной интерфейс выбрать, чтобы обеспечить максимальную простоту подключения при максимальной гибкости? Для датчика скорости ветра (Wind Sensor) я выбрал импульсный выход. В этом случае а) используется только один порт б) датчик может подключаться к любому «стандартному» входу. Никакого дополнительного согласования или изменения прошивки контроллера не требуется. Мне показалось, что это наиболее удобный и, что важно, точный интерфейс, не зависящий от колебаний опорного напряжения, которые вполне вероятны в случае чисто аналогового выхода (0-2,5В; 4-20мА и т.д.).
Но у датчика направления ветра (Wind vane) такого интерфейса нет, что логично, учитывая особенность измеряемой величины. Поэтому для данного датчика я выбрал аналоговый интерфейс 0-2,5В. Также используется один порт контроллера, но уже не «стандартный» вход, а порт с функцией АЦП. В данном случае небольшой дрейф опорного напряжения особого значения не имеет. В практической жизни погрешность в одну десятую долю градуса в направлении ветра абсолютно несущественна. Например, в отличие от нового датчика, который имеет шкалу от 0 до ~740, WH-2080 имел всего 16 делений , то есть вообще очень приблизительно.

Подключение датчика скорости ветра (Wind speed sensor)

Для наглядности подключения я использовал контроллер MegaD-2561 с исполнительным блоком MegaD-14-IN (14 настраиваемых входов). Датчик с выходным сигналом «Pulse signal» можно подключить к любому «стандартному» входу исполнительного модуля. К любому порту MegaD-14-IN (верхнее положение конфигурационного джампера), к портам P0-P6 исполнительных модулей MegaD-8I7O-R/S/SD. Важно! Нельзя подключать такой датчик к цифровым портам. Например, не следует подключать датчик к портам клеммы XT2 контроллера.


Подключение датчика скорости ветра к MegaD-2561 + MegaD-14-IN

Вот, собственно и вся интеграция… Черный провод (земля), красный (+12В), желтый на вход порта (правая клемма). Теперь при вращении крыльчатки датчика, значения счетчика порта будет увеличиваться.
Формула указана в документации.
Скорость ветра (м/с) = Частота сигнала * 0,0875 + 0,1

Таким образом, задача контроллера подсчитывать импульсы, которые генерирует датчик. Задача сервера запрашивать полученное значение счетчика с определенной периодичностью и интерпретировать это значение в понятные человеку метры в секунду (или километры в час). Считывать данные можно раз в секунду или раз в минуту. Это зависит от задачи. Если нам нужно фиксировать среднюю скорость ветра, то достаточно считывать данные раз в минуту. Если же нам интересно получать не только некие усредненные данные, но также скорость порывов ветра, то частота опроса может составить раз в 5 секунд или раз в секунду.


Настройка порта тривиальная. Тип: IN, Режим: P, желательно поставить флажок Raw, так как дребезга контактов в данном случае нет.
Кстати, при каждом импульсе будет вспыхивать светодиод порта, к которому подключен датчик, на лицевой панели исполнительного модуля.

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

<? $last_cnt = 0; while(true) { $state = explode(«/», file_get_contents(«http://192.168.0.14/sec/?pt=7&cmd=get»)); $cnt = $state; if ( $last_cnt != $cnt ) $wind_speed = ($cnt — $last_cnt) * 0.0875 + 0.1; else $wind_speed = 0; echo $cnt.» — $wind_speed m/s»; $last_cnt = $cnt; if ( $cnt > 1000 ) { $state = explode(«/», file_get_contents(«http://192.168.0.14/sec/?pt=7&cnt=0»)); $last_cnt = 0; } sleep(1); } ?>

Чтобы не было переполнения счетчика в скрипте предусмотрена процедура его сброса при превышении значения в 1000 импульсов.
Вообще же счетчик порта 16-битный, а максимальное его значение 65535. После достижения этого порога счетчик автоматически обнуляется.

Подключение датчика направления ветра (Wind vane)

И снова для наглядности я оставил MegaD-14-IN, чтобы только продемонстрировать, что датчик запитывается от +12В, но в данном случае модуль MegaD-14-IN не нужен! Дело в том, что выходной сигнал датчика аналоговый 0-2,5В. Напряжение на выходе меняется пропорционально положению флюгера. Принцип предельно простой. Если флюгер смотрит четко на север, датчик выдает сигнал 0В. Если флюгер будет постепенно поворачивать на восток, напряжение начнет расти. При направлении строго на восток датчик выдает сигнал 1/4 от максимального, то есть, 0,625В. Далее на юге он покажет половину — 1,25В, а на западе 3/4 — 1,875В. Максимальное напряжение 2,5В будет также почти на севере, в области 359 градуса.
Данный датчик я подключил к одному из двух АЦП портов, которые выведены на вилки XP5/XP6 в модуле контроллера. Порты P36/P37. Функция АЦП есть и на портах P0-P5 контроллера, но подключать к этим портам датчик можно только напрямую (без использования какого-либо исполнительного модуля). Можно в принципе использовать с портами P0-P5 и MegaD-14-IN в режиме цифрового входа, но в этом режиме сигнал искажается цифровой подтяжкой, его сложнее интерпретировать, так как диапазон рабочих значений существенно сужается. Поэтому проще всего использовать один из портов, выведенных на клеммы XP5/XP6 (P36/P37), как показано на фотографии. Хотя в следующих аппаратных ревизиях MegaD-14-IN планируется сделать цифровую подтяжку отключаемой. Как раз для таких случаев.


Подключение датчика направления ветра к АЦП порту контроллера MegaD-2561

Здесь черный провод (земля), красный (+12В), а желтый на вход АЦП порта. Ничего сложного.
Красный провод (+12В) можно подключить непосредственно к блоку питания.
Черный провод (земля) можно либо также подключить к блоку питания, либо к контакту GND вилки АЦП порта.


Распиновка вилок АЦП-портов контроллера MegaD-2561

На всякий случай привожу распиновку вилок АЦП портов. На фотографии выше желтый провод (выходной сигнал) подключен через кабель Dupont к вилке АЦП-порта XP5 и порту P36.
Центральный контакт +3,3В использовать с датчиком нельзя. Это слишком низкое для него напряжение. Поэтому красный провод (питание) от датчика всегда следует подключать к +12В.


После установки в Web-интерфейсе контроллера типа порта ADC (АЦП) мы увидим значение, которое соответствует направлению ветра.
Интерпретация значений в некотором смысле даже проще, чем для датчика скорости ветра.
Опорное напряжение контроллера 3,3-3,4В. А значит при выходном напряжении 0-2,5В диапазон значений составляет от 0 до ~740.
Если «Север» — это 0 градусов и значение АЦП равное 0, то, юг — это 180 градусов и значени АЦП равно 370.
На скриншоте значение порта 346 — это порядка 169 градусов или, иначе говоря, южный ветер с легким отклонением в сторону востока.
Соответственно в серверном ПО можно прописать, что южный ветер — это, скажем от 158 до 202 градусов (или от 324 до 415 в значениях АЦП), юго-западный ветер — это от 203 до 247 градусов (или от 417 до 508 в значениях АЦП) и т.д. Грубо говоря, если поделить полученное значение АЦП-порта примерно на 2,055, мы получим градус окружности, на который отклонился флюгер относительно севера.

Команда для считывания значения АЦП порта проще некуда.

http://192.168.0.14/sec/?pt=36&cmd=get

А для чего же нужен компас в комплекте с датчиком направления ветра? А нужен он для правильной ориентации датчика относительно полюсов земли. Только в этом случае флюгер будет выдавать корректный результат.


Метка «S» должна указывать на юг!

Правда, в моем случае метка была приклеена не совсем точно. Юг — это значение напряжения 1,25В. А такое напряжение датчик выдавал в районе вертикальной надписи «Power supply», но на практике абсолютно точное позиционирование особой роли играть не будет. Думаю, можно довериться и китайской метке и китайскому компасу.

Время покажет, насколько надежными окажутся описанные датчики и сколько времени они проработают, а пока на домашнем сайте в разделе «Погода» я снова получил адекватные и правдивые результаты по скорости и направлению ветра.
Да, некоторое время назад я рассказывал, что использую корпуса DSen-Box и дисплей SSD1306 для вывода информации о температуре на улице. Так как контроллер MegaD-2561 позволяет достаточно просто выводить на дисплей любой текст, я попробовал отображать среднюю и максимальную скорость ветра, а также его направление.


А для людей с дальнозоркостью можно рядом на веревочке повесить лупу

Выводить такие данные очень просто.

http://192.168.0.14/sec/?pt=33&text=».iconv(«utf-8», «cp866», «Ветер:_0.45_м/с,_Сев»).»&col=0&row=0

Более подробно о выводе различной информации на дисплей рассказывается в описании контроллера MegaD-2561.

Таким образом, MegaD-2561 можно использовать для интеграции различных метеорологических датчиков в общую информационную систему Умного Дома. Кстати, контроллер, который у меня установлен в саду в сарайчике для лопат и граблей, также используется для управления садовым освещением. К нему же подключен и влагозащищенный датчик DS18B20, измеряющий температуру наружного воздуха. Между прочим, «садовый» MegaD-2561 с исполнительным модулем благополучно и без единого сбоя пережили зиму с температурами ниже -25 градусов.

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

Сортировка комментариев: Последние сверху | Первые сверху

2018-05-19 10:06:53 | Ruslan
Провода — это всегда хорошо в плане надежности поступления сигнала. Но в данном случае они выходят на улицу и тут возникает один вопрос. Помню на моей предыдущей работе у сисадмина много чего из компьютерного оборудования выгорало в грозу, пока он не поставил грозозащиту (а в последствии перешел на оптоволокно). До этого у него было много участков локальной сети на UTP, проложенных на улице «по воздуху».
Есть ли вероятность аналогичных проблем с грозовыми разрядами при подключении уличных датчиков по проводам?

2018-05-19 11:28:49 | Andrey_B
Ruslan, я живу в доме уже 10 лет. И лишь один раз сталкивался с выходом из строя техники в следствие грозы. Год назад у меня вышли из строя 2 сетевых коммутатора из 3-х, а также блок питания на DIN-рейку. Причем коммутаторы были заземлены. Ситуацию не анализировал, что конкретно привело к выходу из строя указанной техники, сказать не берусь. Однако с улицей у меня сообщается и считыватель калитки и уличное освещение и датчик температуры и датчик освещенности и камера наблюдения. Может быть, что-то еще. Это все несколько различных контроллеров и сервер. Так вот ни один из этих контроллеров и ни один из блоков питания этих контроллеров (они запитаны от своих БП) не пострадали. Сервер тоже пережил все благополучно.
Вероятнее всего, причина сбоя была в скачке напряжения в электросети, а не в наличие какого-либо датчика на улице.
Тем не менее, я не против применения специальных мер по грозозащите и отводу наведенных импульсов в заземление. Такие устройства продаются и их легко интегрировать.
Кстати, возможно по фотографиям не очень видно, но описанные датчики имеют пластиковые корпуса.

2018-05-21 16:40:54 | Павел Прудников
Как всегда все прекрасно описано, у вас просто шикарный умный дом, вы для меня как эталон )

2019-02-08 10:13:39 | Vladimir
А что за модели датчиков? Где купить такие-же?

2019-02-08 18:35:16 | Andrey_B
Vladimir, такие есть, например, в известном народном китайском магазине.

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

Как работает метеостанция?

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

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

Функции метеостанций

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

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

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

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

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

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

Точка росы. Многие метеостанции могут измерять точку росы. Это температура, при которой водяной пар, с учетом атмосферного давления, конденсируется, например, чтобы сформировать туман.

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

Основные выводы

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

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

Желаем вам наиболее точных измерений и прекрасной погоды!

Датчики скорости и направления ветра

О продукции завода «Гидрометприбор»

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

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

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